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

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

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

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

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

หากต้องการติดตั้ง Maps SDK สำหรับ Android Utility Library ให้ทำตามคู่มือการตั้งค่า

ยูทิลิตี

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

แผนที่พร้อมด้วยเครื่องหมายที่จัดกลุ่มไว้

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

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

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

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

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

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

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

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

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

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

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

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