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

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

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

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

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

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

ยูทิลิตี

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

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

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

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

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

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

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

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

แผนที่ที่มีฮีตแมป

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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