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

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

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

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

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

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

ยูทิลิตี

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

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

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

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

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

นำเข้า KML ลงในแผนที่ของคุณ

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

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

แผนที่ที่มีแผนที่ความหนาแน่น

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

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

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

แผนที่ที่มีไอคอนฟองอากาศ

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

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

แผนที่ที่มีเครื่องหมายจัดเป็นกลุ่ม

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

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

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

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

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

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

โปรดดูรายละเอียดในเอกสารประกอบเกี่ยวกับการสาธิต Google Maps สำหรับ Android แบบหลายเลเยอร์

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

เข้ารหัสและถอดรหัส โพลีไลน์

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

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

คุณสามารถใช้ PolyUtil ในไลบรารียูทิลิตีของ Maps SDK สำหรับ Android เพื่อเข้ารหัสลำดับพิกัดละติจูด/ลองจิจูด ("LatLngs") เป็นสตริงเส้นทางที่เข้ารหัส และเพื่อถอดรหัสสตริงเส้นทางที่เข้ารหัสเป็นลำดับละติจูด/ลองจิจูด การดำเนินการนี้จะช่วยให้มั่นใจได้ว่าบริการบนเว็บของ 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