ANDROID APP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
การใช้ Google Maps<br />
267<br />
กรรมวิธี: การเพิ่มจุดลงบนแผนที่<br />
คลาส ItemizedOverlay ใช้เพื่อเพิ่มจุดต่างๆ ลงไปบนแผนที่ ซึ่งจะจัดการจุดต่างๆ เหล่านี้<br />
ด้วยอีลีเมนต์ OverlayItem ในหัวข้อนี้เราจะสร้างคลาส ItemizedOverlay และทำการโอเวอร์ไรด์<br />
เมธอดดังนี้<br />
m addOverlay() – ใช้เพื่อเพิ่ม OverlayItem แก่ ArrayList ซึ่งจะเรียกใช้คำสั่ง<br />
populate() ที่ใช้ในการอ่านค่าไอเทมเพื่อใช้วาดบนแผนที่<br />
m createItem() – จะถูกเรียกใช้โดยคำสั่ง populate() เพื่อสร้างจุดจาก OverlayItem<br />
m size() – จะส่งค่ากลับเป็นจำนวนของอีลีเมนต์ OverlayItem ใน ArrayList<br />
m onTap() – จะถูกเรียกใช้เมื่อมีการคลิกที่จุด<br />
ชุดคำสั่งที่ 10.10 จะแสดงการสร้างคลาส ItemizedOverlay ซึ่งจะได้ผลลัพธ์ดังรูปที่ 10.5<br />
ชุดคำสั่งที่ 10.11 src/com/cookbook/adding_markers/MyMarkerLayer.java<br />
package com.cookbook.adding_markers;<br />
import java.util.ArrayList;<br />
import android.app.AlertDialog;<br />
import android.content.DialogInterface;<br />
import android.graphics.drawable.Drawable;<br />
import com.google.android.maps.ItemizedOverlay;<br />
import com.google.android.maps.OverlayItem;<br />
public class MyMarkerLayer extends ItemizedOverlay {<br />
private ArrayList mOverlays =<br />
new ArrayList();<br />
public MyMarkerLayer(Drawable defaultMarker) {<br />
super(boundCenterBottom(defaultMarker));<br />
populate();<br />
}<br />
public void addOverlayItem(OverlayItem overlay) {<br />
mOverlays.add(overlay);<br />
populate();<br />
}<br />
@Override<br />
protected OverlayItem createItem(int i) {<br />
return mOverlays.get(i);<br />
}<br />
@Override<br />
public int size() {<br />
return mOverlays.size();<br />
}