20.11.2016 Views

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 />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!