Maps SDK สําหรับไลบรารียูทิลิตีของ Android

เลือกแพลตฟอร์ม: Android iOS

หากกำลังมองหาฟีเจอร์ขั้นสูงเพื่อเพิ่มลงในแผนที่ ไลบรารีของยูทิลิตี Maps SDK สำหรับ Android เป็นไลบรารีโอเพนซอร์สของคลาสที่มีประโยชน์สำหรับแอปพลิเคชันต่างๆ ที่เก็บ GitHub มีคลาสยูทิลิตีและแอปสาธิตที่แสดงการใช้แต่ละคลาส

ในวิดีโอนี้ Chris Broadfoot จะพูดถึงไลบรารียูทิลิตี โดยเน้นที่การถอดรหัสเส้นประกอบ เรขาคณิตทรงกลม และไอคอนบับเบิล

การตั้งค่าอย่างรวดเร็ว

หากต้องการติดตั้งไลบรารีของยูทิลิตี Maps SDK สำหรับ Android ให้ทำตามคู่มือการตั้งค่า

ยูทิลิตี

แผนที่ที่มีเลเยอร์ GeoJSON

นำเข้า GeoJSON ไปยังแผนที่

คุณสามารถจัดเก็บองค์ประกอบในรูปแบบ GeoJSON และใช้ยูทิลิตีนี้เพื่อแสดงผลเป็นเลเยอร์ที่ด้านบนของแผนที่ เรียกใช้ addLayer() เพื่อเพิ่มข้อมูล GeoJSON ลงในแผนที่ นอกจากนี้ คุณยังเพิ่มฟีเจอร์แต่ละรายการได้โดยเรียกใช้ addFeature() และส่งออบเจ็กต์ GeoJsonFeature

โปรดดูรายละเอียดในเอกสารประกอบเกี่ยวกับยูทิลิตี GeoJSON ของ Google Maps Android

แผนที่ที่มีเลเยอร์ KML

นำเข้า KML ไปยังแผนที่

เมื่อใช้ยูทิลิตีนี้ คุณจะแปลงออบเจ็กต์ KML เป็นรูปร่างทางภูมิศาสตร์และแสดงผลเป็นเลเยอร์ที่ด้านบนของแผนที่ได้ เรียก addLayerToMap() เพื่อเพิ่มเลเยอร์ลงในแผนที่ คุณเข้าถึงพร็อพเพอร์ตี้ในออบเจ็กต์ KML ได้โดยเรียกใช้ getProperties() ใน Placemark, GroundOverlay, Document หรือ Folder

โปรดดูรายละเอียดในเอกสารประกอบเกี่ยวกับยูทิลิตี KML ของ Google Maps Android

แผนที่พร้อมแผนที่ความหนาแน่น

เพิ่มแผนที่ความหนาแน่นลงในแผนที่

แผนที่ความหนาแน่นช่วยให้ผู้ชมเข้าใจการกระจายและความเข้มสัมพัทธ์ของจุดข้อมูลบนแผนที่ แผนที่ความหนาแน่นจะใช้สีและรูปร่างเพื่อแสดงการกระจายของข้อมูลแทนการวางเครื่องหมายที่แต่ละตำแหน่ง สร้าง HeatmapTileProvider โดยส่งคอลเล็กชันของออบเจ็กต์ LatLng ที่แสดงจุดที่น่าสนใจบนแผนที่ จากนั้นสร้าง TileOverlay ใหม่ โดยส่งผู้ให้บริการการวางซ้อนแผนที่ความหนาแน่น และเพิ่มการวางซ้อนแผนที่ลงในแผนที่

โปรดดูรายละเอียดในเอกสารประกอบเกี่ยวกับยูทิลิตีแผนที่ความหนาแน่นของ Google Maps สำหรับ Android

แผนที่ที่มีไอคอนลูกโป่ง

ปรับแต่งเครื่องหมายด้วยไอคอนลูกโป่ง

เพิ่ม IconGenerator เพื่อแสดงตัวอย่างข้อมูลในเครื่องหมาย ยูทิลิตีนี้ช่วยให้ไอคอนเครื่องหมายดูคล้ายกับหน้าต่างข้อมูล โดยที่ตัวเครื่องหมายเองสามารถมีข้อความและเนื้อหาอื่นๆ ได้ ข้อดีคือคุณสามารถเปิดเครื่องหมายไว้ได้มากกว่า 1 รายการพร้อมกัน ขณะที่หน้าต่างข้อมูลจะเปิดได้ครั้งละ 1 หน้าต่างเท่านั้น นอกจากนี้ คุณยังจัดรูปแบบเครื่องหมาย เปลี่ยนการวางแนวของเครื่องหมายและ/หรือเนื้อหา และเปลี่ยนภาพพื้นหลัง/Nine-Patch ของเครื่องหมายได้ด้วย

แผนที่พร้อมเครื่องหมาย

สร้างภาพเคลื่อนไหวของเครื่องหมาย

คุณสามารถทำให้เครื่องหมายเคลื่อนไหวเพื่อให้เคลื่อนที่จากตำแหน่งปัจจุบันไปยังตำแหน่งใหม่ได้อย่างราบรื่น คลาส AnimationUtil มีความสามารถนี้ ดูตัวอย่างวิธีใช้ได้ที่ AnimationUtilDemoActivity ในที่เก็บ GitHub ของไลบรารียูทิลิตี

แผนที่ที่มีเครื่องหมายแบบคลัสเตอร์

จัดการคลัสเตอร์เครื่องหมาย

ClusterManager ช่วยให้คุณจัดการเครื่องหมายหลายรายการที่ระดับการซูมต่างๆ ได้ ซึ่งหมายความว่าคุณสามารถวางเครื่องหมายจำนวนมากบนแผนที่ได้โดยไม่ทำให้แผนที่อ่านยาก เมื่อผู้ใช้ดูแผนที่ที่ระดับการซูมสูง เครื่องหมายแต่ละรายการจะแสดงบนแผนที่ เมื่อผู้ใช้ซูมออกเป็นระดับการซูมที่ต่ำลง เครื่องหมายจะรวมกันเป็นคลัสเตอร์เพื่อให้ดูแผนที่ได้ง่ายขึ้น

โปรดดูรายละเอียดในเอกสารประกอบเกี่ยวกับยูทิลิตีการคลัสเตอร์เครื่องหมาย Android ของ Google Maps

แผนที่ที่มีหลายเลเยอร์

เพิ่มหลายเลเยอร์ลงในแผนที่เดียวกัน

คุณสามารถแสดงสถานที่จาก GeoJSON, KML และคลัสเตอร์ รวมถึงเครื่องหมาย เส้นประกอบ และรูปหลายเหลี่ยมของคุณเองทั้งหมดในแผนที่เดียวกัน นอกจากนี้ คุณยังทำให้เลเยอร์เหล่านี้เป็นแบบอินเทอร์แอกทีฟได้โดยเพิ่มฟังก์ชันรอคลิกในแต่ละเลเยอร์ โดยสร้างอินสแตนซ์คลาส MarkerManager, GroundOverlayManager, PolygonManager และ PolylineManager แล้วส่งไปยังคอนสตรัคเตอร์ของ GeoJsonLayer, KmlLayer และ ClusterManager เมื่อตั้งค่า จากนั้นคุณจะใช้คลาส Manager เหล่านี้ได้โดยตรงเพื่อเพิ่มเครื่องหมาย เส้นประกอบ และรูปหลายเหลี่ยมของคุณเองลงในแผนที่

ดูรายละเอียดได้ในเอกสารประกอบเกี่ยวกับการสาธิตหลายเลเยอร์ของ Google Maps Android

แผนที่ที่มีเส้นประกอบที่เข้ารหัส

เข้ารหัสและถอดรหัสเส้นประกอบ

คลาส PolyUtil จะแปลงเส้นประกอบและรูปหลายเหลี่ยมที่เข้ารหัสเป็นพิกัดละติจูด/ลองจิจูด และแปลงพิกัดเป็นเส้นประกอบและรูปหลายเหลี่ยมที่เข้ารหัส

ใน Google Maps ระบบจะจัดเก็บพิกัดละติจูดและลองจิจูดที่กำหนดเส้นประกอบหรือรูปหลายเหลี่ยมเป็นสตริงที่เข้ารหัส ดูคำอธิบายโดยละเอียดเกี่ยวกับการเข้ารหัสเส้นประกอบ คุณอาจได้รับสตริงที่เข้ารหัสนี้ในการตอบกลับจาก Google API เช่น Directions API (เดิม)

คุณสามารถใช้ PolyUtil ในไลบรารีของยูทิลิตี Maps SDK สำหรับ Android เพื่อเข้ารหัสลำดับพิกัดละติจูด/ลองจิจูด ("LatLng") เป็นสตริงเส้นทางที่เข้ารหัส และถอดรหัสสตริงเส้นทางที่เข้ารหัสเป็นลำดับ LatLng ซึ่งจะช่วยให้มั่นใจได้ว่าสามารถทำงานร่วมกับบริการบนเว็บของ Google Maps API ได้

คำนวณระยะทางระหว่างจุด 2 จุดบนแผนที่

คำนวณระยะทาง พื้นที่ และทิศทางด้วยเรขาคณิตทรงกลม

เมื่อใช้ยูทิลิตีเรขาคณิตทรงกลมใน SphericalUtil คุณจะสามารถคำนวณระยะทาง พื้นที่ และทิศทางตามละติจูดและลองจิจูดได้ ตัวอย่างวิธีการที่ใช้ได้ในยูทิลิตีมีดังนี้

  • computeDistanceBetween() – แสดงผลระยะทางเป็นเมตรระหว่างพิกัดละติจูด/ลองจิจูด 2 พิกัด
  • computeHeading() – แสดงผลทิศทางเป็นองศาระหว่างพิกัดละติจูด/ลองจิจูด 2 พิกัด
  • computeArea() - แสดงผลพื้นที่ในหน่วยตารางเมตรของเส้นทางปิดบนโลก
  • interpolate() – แสดงผลพิกัดละติจูด/ลองจิจูดของจุดที่อยู่ห่างจากระยะทางระหว่างจุด 2 จุดที่กำหนดเป็นเศษส่วนที่กำหนด เช่น คุณสามารถใช้ตัวเลือกนี้เพื่อทำให้เครื่องหมายเคลื่อนไหวระหว่างจุด 2 จุดได้

ดูรายการเมธอดทั้งหมดในยูทิลิตีได้ในเอกสารอ้างอิง

ตรวจสอบว่า Street View รองรับสถานที่หรือไม่

ตรวจสอบว่า Street View รองรับสถานที่หรือไม่

คลาส StreetViewUtil มีฟังก์ชันการทำงานเพื่อตรวจสอบว่า Street View รองรับสถานที่ตั้งหรือไม่ คุณสามารถหลีกเลี่ยงข้อผิดพลาดเมื่อเพิ่มพาโนรามาใน Street View ลงในแอป Android ได้โดยเรียกใช้ยูทิลิตีข้อมูลเมตานี้ และเพิ่มพาโนรามาใน Street View เฉพาะในกรณีที่การตอบกลับเป็น OK

ดูรายละเอียดได้ในเอกสารประกอบเกี่ยวกับยูทิลิตีข้อมูลเมตาของ Street View ใน GitHub