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

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

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

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

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

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

สาธารณูปโภค

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

นําเข้า GeoJSON บนแผนที่ของคุณ

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

ดูรายละเอียดในเอกสารประกอบได้ที่ Google Maps Android GeoJSON Utility

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

นําเข้า KML บนแผนที่ของคุณ

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

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

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

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

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

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

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

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

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

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

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

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

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

แผนที่ที่มีหลายชั้น

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

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

โปรดดูรายละเอียดในเอกสารประกอบในการสาธิตหลายชั้นของ Google Maps

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

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

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

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

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

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

คํานวณระยะทาง พื้นที่ และส่วนหัวผ่านเรขาคณิต 360 องศา

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

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

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