20.11.2016 Views

ANDROID APP

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

258 บทที่ 10 การระบุตำาแหน่ง<br />

รูปที่ 10.1 ตัวอย่างการใช้ Location Provider เพื่อแสดงตำาแหน่งล่าสุด<br />

ซึ่งใช้งานบนอุปกรณ์แอนดรอยด์โดยตรง<br />

กรรมวิธี: การแปลงข้อมูลพิกัดที่อยู่เป็นข้อมูลที่อยู่<br />

คลาส Geocoder จะมีเมธอดที่ใช้แปลงข้อมูลจากข้อมูลที่อยู่ไปเป็นข้อมูลแบบลองติจูด ละติจูด<br />

(Geocoding) และแปลงข้อมูลแบบลองติจูด ละติจูด กลับไปเป็นข้อมูลที่อยู่ (Reverse Geocoding)<br />

สำหรับการแปลงข้อมูลในแบบหลังนี้จะทำให้ได้ข้อมูลบางส่วน เช่น ชื่อเมือง หรือรหัสไปรษณีย์<br />

ซึ่งรายละเอียดของข้อมูลจะขึ้นอยู่กับ Location Provider<br />

ในงานของเรานี้จะใช้ Reverse Geocoding เพื่อหาที่อยู่จากตำแหน่งปัจจุบันของอุปกรณ์<br />

และแสดงผลลัพธ์บนจอภาพดังรูปที่ 10.2 ซึ่งอินสแตนซ์ของ Geocoder จะเริ่มทำงานด้วยค่าภาษา<br />

ท้องถิ่นในกรณีที่ค่านั้นไม่ตรงกับค่าของระบบ ในที่นี้เราจะกำหนดค่าเป็น Locale.ENGLISH แล้ว<br />

เมธอด getFromLocation() ก็จะแสดงรายการของที่อยู่ที่ใกล้เคียงกับพิกัดในขณะนั้น และค่าสูงสุด<br />

ของจำนวนรายการที่จะนำมาแสดงนั้น จะถูกกำหนดให้มีค่าเป็น 1 เพื่อให้ได้ที่อยู่ที่ใกล้เคียงที่สุดเพียง<br />

อันเดียว<br />

คำสั่ง Geocoder จะส่งค่ากลับเป็นรายการของออบเจ็กต์ android.location.Address<br />

การแปลงค่าที่อยู่นี้จะขึ้นอยู่กับเซอร์วิสที่ใช้งาน ซึ่งไม่ได้รวมไว้ในเฟรมเวิร์คของแอนดรอยด์ Google<br />

Map มีการเปิดใช้เซอร์วิส Geocoder ด้วย ซึ่งเราสามารถนำเอาเซอร์วิสนี้มาใช้งานในแอพของเราได้<br />

สำหรับในชุดคำสั่งที่ 10.6 จะแสดงขั้นตอนการทำงานของแอคทิวิตี้หลัก

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

Saved successfully!

Ooh no, something went wrong!