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

ในชุดคำสั่งที่ 10.11 ในส่วนของคำสั่งที่แสดงเป็นตัวหนานั้น มีคำอธิบายประกอบ ดังนี้<br />

269<br />

m mOverlays ถูกสร้างขึ้นเพื่อจัดเก็บข้อมูลของไอเทมทั้งหมด และส่งผ่านค่าดังกล่าวไปยัง<br />

Overlay<br />

m เราจะต้องกำหนดจุดเชื่อมต่อของแต่ละไอเทมที่จะนำไปวางบนแผนที่ก่อนที่จะวาดจุดจาก<br />

ไอเทมดังกล่าว การอ้างอิงถึงตำแหน่งตรงกลางด้านล่างของแผนที่นั้น เราจะใช้คำสั่ง<br />

boundCenterBottom ใส่ไว้ในคลาสหลักของแอพ<br />

m เมธอดที่ต้องโอเวอร์ไรด์คือ addOverlay(), createItem(), size() และ onTap()<br />

ซึ่งคำสั่ง onTap() จะใช้แสดงข้อความไดอะล็อกบ็อกซ์เมื่อมีการคลิกที่จุด<br />

m เมธอด populate() และคำสั่ง addOverlay() ที่เพิ่มในช่วงท้ายของเป็นการแจ้งให้<br />

คลาส MyMarkerLayer เตรียมอีลีเมนต์ OverlayItem ทั้งหมด และวาดจุดแต่ละจุดลง<br />

บนแผนที่<br />

หลังจากนี้เราก็สามารถนำ ItemizedOverlay ไปเพิ่มใน MapActivity ที่สร้างไว้ในตัวอย่าง<br />

ก่อนหน้านี้ได้เลย ซึ่งในชุดคำสั่งที่ 10.11 ในส่วนของคำสั่งที่แสดงเป็นตัวหนานั้น มีคำอธิบายประกอบ<br />

ดังนี้<br />

1. เราจะใช้คำสั่ง getOverlays() ของคลาส MapView ในการตรวจสอบหา Overlay ที่มี<br />

การใช้อยู่แล้วบนแผนที่ โดยที่เราจะเพิ่มเลย์เยอร์ของการวางจุดไว้ในคอนเทนเนอร์นี้<br />

ในส่วนท้ายของฟังก์ชั่น<br />

2. อินสแตนซ์ MyMarkerLayer ใช้เก็บข้อมูลของ OverlayItem<br />

3. การอ่านค่าละติจูดและลองติจูดของข้อมูลที่อยู่นั้น เราจะใช้คลาส GeoPoint ซึ่งค่าที่ได้<br />

จะมีหน่วยเป็นไมโครดีกรี ดังนั้นค่าละติดจูดและลองติจูดที่ได้จะต้องนำไปหารด้วยค่า<br />

1,000,000 ก่อนเสมอ<br />

4. ผู้ใช้งานสามารถใช้ตัวควบคุมแผนที่ในการย่อและขยายวิว ซึ่งทำได้โดยใช้คำสั่ง<br />

setBuiltInZoomControls() เพื่อควบคุมการย่อและขยายวิว<br />

5. กำหนด OverlayItem ชนิดข้อความเพิ่มเติมให้แก่ GeoPoint เพื่อความน่าสนใจของ<br />

แอพ<br />

6. เพิ่มไอเทมลงใน MyMarkerLayer โดยใช้เมธอด addOverlayItem() และเพิ่ม<br />

MyMarkerLayer นี้ลงไปใน Overlay ที่มีอยู่แล้ว ซึ่งใช้คำสั่ง getOverlay() ในการ<br />

ตรวจสอบ<br />

ชุดคำสั่งที่ 10.12 src/com/cookbook/adding_markers/MyLocation.java<br />

package com.cookbook.adding_markers;<br />

import java.io.IOException;<br />

import java.util.List;<br />

import android.content.Context;<br />

import android.graphics.drawable.Drawable;

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

Saved successfully!

Ooh no, something went wrong!