| การทำ Map Activity ในแอป แอนดรอยด์ |
|
สำหรับเพื่อนๆ ที่กำลังจะทำ แอป แอนดรอยด์ ที่เกี่ยวกับ Location Base จะต้องมีการทำ Map Activity สิ่งที่ต้องมี ในการทำ Map Activity
เดี๋ยวเราจะมาเรียนรู้ การทำ Map Activity จากการทำ Workshop ไปพร้อมๆกันนะครับ New Android Projectทำการ File > New > Android Project จะได้หน้าต่างแบบนี้ผมตั้งชื่อ Project name ว่า LearnGoogleMap
Build Targetตรงนี้สำคัญนะครับ เราต้องเลือกอันที่เป็น Google APIs นะครับ ไม่งั้นแผนที่ไม่ขึ้นไม่รู้นะ
Properties
เสร็จแล้ว eclipse จะ gen ตัว ไฟล์ และ โฟวเดอร์ ต่างๆให้แบบนี้
ปรับ Permission ให้สามารถใช้เน็ตได้การที่เราทำแอปมา แล้วจะให้แอปเราสามรถใช้ Internet ได้ต้อง Permission ที่ AndroidManifest.xml ให้สามารถใช้ Internet ได้ก่อน เปิด AndroidManifest.xml แล้วไปที่ Permission แบบนี้
ทำการ Add
เลือก user permission
เลือก andrid permission INTERNET แล้ว save
คลิกที่ AndroidManifest.xml เพื่อดูโค้ด
โค้ด AndroidManifest.xmlจะได้ บรรทัดนี้เพิ่มขึ้นมา
เพิ่ม user library ของ google maps ด้วยบรรทัดนี้
เปิด main.xml ออกมาครับ
แก้ไขเป็นอย่างนี้ สำคัญตรง android:apiKey ไม่ต้องใช้เหมือนผมนะ ไม่งั้น google maps ของแอปคุณจะไม่ขึ้น ให้ใช้ค่า google maps API Key ที่คุณมี (จำตอนทำ google maps API Key ได้นะ)
ต่อมาโค้ดที่ MainActivityเปิดไฟล์ LearnGoogleMap.java ออกมา
แก้ Activity เป็น MapActivityจะเกิด Error แบบนี้ไม่ต้องตกใจนะครับ
Import MapActivityเวลามี Error ที่ eclipse ให้คลิกที่ Error แล้ว eclipse จะเสนอแนวทางการแก้ไขให้ แบบในตัวอย่าง eclipse เสนอให้ Import MapActivity ดับเปิลคลิกไป
Add unimplemented methodsสังเกตุว่าจะมีการ import com.google.android.maps.MapActivity มาให้ แต่ Error ยังไม่หมด eclipse ขอ Add unimplement methods ดับเปิลคลิกไปครับ
ไม่ Error ละ
เพิ่มโค้ดพวกนี้เข้าไป
Attribute ต่างๆ
กำหนด MapController ไปที่พิกัดที่กำหนด ด้วยคำสั่ง animationTo ไปที่ Latijute , Longtijute ที่กำหนด ส่วน setZoom เป็นการกำหนด การซูมของแผนที่ โดยจะมีค่าตั่งแต่ 1 - 21 ครับ
แล้วไปเอาค่า Latijute กับ Longtijute จากไหน ?เปิด google map ออกมาแล้วคลิกขวาใน สถานที่ที่ต้องการรู้ Latijute , Longtijute เลือก What's this หรือ นี้คืออะไร แต่ค่าที่ได้ต้องนำมาคุณ 1E6 ด้วยนะครับ
ลองทดสอบบน AVD ครับสังเกตุว่าจะให้จุดศูนย์กลางของ พิกัดที่เรากำหนดมาที่ตรงกลาง และ ซูมตามค่าที่กำหนด
|