ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าการจัดรูปแบบตามข้อมูลสำหรับขอบเขต
เปิดใช้ตัวแสดงผลแผนที่ใหม่
ตัวแสดงผลแผนที่ที่อัปเกรดพร้อมใช้งาน Maps SDK สำหรับ Android ตั้งแต่เวอร์ชัน 18.0.0 โปรแกรมแสดงผลนี้มีการปรับปรุงหลายอย่าง รวมถึงการรองรับการจัดรูปแบบแผนที่ในระบบคลาวด์ใน Maps SDK สำหรับ Android
ด้วยการเปิดตัว Maps SDK เวอร์ชัน 18.2.0 สำหรับ Android ทาง Google ได้เปลี่ยนโหมดแสดงภาพเริ่มต้นจากโหมดแสดงภาพเดิมไปเป็นโหมดแสดงภาพแผนที่ที่อัปเกรด การเปลี่ยนแปลงนี้หมายความว่าตอนนี้แอปของคุณจะใช้โปรแกรมแสดงผลแผนที่ที่อัปเกรดแล้วโดยค่าเริ่มต้นเมื่อคุณสร้างแอปใหม่หรือสร้างแอปที่มีอยู่อีกครั้ง
สร้างรหัสแผนที่
หากต้องการสร้างรหัสแผนที่ใหม่ ให้ทำตามขั้นตอนในหัวข้อสร้างรหัสแผนที่ ตรวจดูว่าได้ตั้งค่าประเภทแผนที่เป็น Android
สร้างรูปแบบแผนที่ใหม่
หากต้องการสร้างรูปแบบแผนที่ใหม่ ให้ทําตามวิธีการในจัดการรูปแบบแผนที่เพื่อสร้างรูปแบบ และเชื่อมโยงรูปแบบกับรหัสแผนที่ที่เพิ่งสร้างขึ้น
เลือกเลเยอร์สถานที่ในรูปแบบแผนที่ใหม่ของคุณ
ในคอนโซล Google API คุณสามารถเลือกเลเยอร์ฟีเจอร์ที่จะแสดงสำหรับสไตล์แผนที่ใหม่ เลเยอร์องค์ประกอบจะกำหนดประเภทของขอบเขตที่จะปรากฏบนแผนที่ (เช่น ย่าน รัฐ และอื่นๆ)
- ในคอนโซล Google API ให้ไปที่หน้าสไตล์แผนที่
- เลือกโปรเจ็กต์เมื่อได้รับแจ้ง
- เลือกรูปแบบแผนที่
- คลิกเมนูแบบเลื่อนลงเลเยอร์องค์ประกอบเพื่อเพิ่มหรือนำเลเยอร์ออก
- คลิกบันทึกเพื่อบันทึกการเปลี่ยนแปลงและทำให้แผนที่พร้อมใช้งาน
อัปเดตโค้ดการเริ่มต้นแผนที่
ขั้นตอนนี้ต้องใช้รหัสแผนที่ที่คุณเพิ่งสร้าง ซึ่งอยู่ในหน้าการจัดการ Maps
หากต้องการเพิ่มรหัสแผนที่ลงในโค้ดการเริ่มต้น ให้ดูหัวข้อเพิ่มรหัสแผนที่ลงในแอป
รับสิทธิ์เข้าถึงเลเยอร์องค์ประกอบของแผนที่
คุณใช้ออบเจ็กต์ FeatureLayer
เพื่อแสดงเลเยอร์ฟีเจอร์แต่ละเลเยอร์ของแผนที่ เช่น เลเยอร์ฟีเจอร์รหัสไปรษณีย์หรือย่าน หากต้องการเข้าถึงออบเจ็กต์เลเยอร์ฟีเจอร์ ให้เรียก GoogleMap.getFeatureLayer()
เมื่อแผนที่เริ่มต้น:
Java
private FeatureLayer postalCodeLayer;
@Override public void onMapReady(GoogleMap map) { // Get the POSTAL_CODE feature layer. postalCodeLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()); ... }
Kotlin
private var postalCodeLayer: FeatureLayer? = null
override fun onMapReady(googleMap: GoogleMap) { // Get the POSTAL_CODE feature layer. postalCodeLayer = googleMap.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()) ... }
ส่งออบเจ็กต์ FeatureLayerOptions
ไปยัง getFeatureLayer()
เพื่อระบุประเภทของเลเยอร์ฟีเจอร์ ในตัวอย่างนี้ คุณต้องการเข้าถึงเลเยอร์ POSTAL_CODE
สร้างออบเจ็กต์ FeatureLayer
ที่แตกต่างกันสำหรับแต่ละเลเยอร์ที่ต้องการจัดรูปแบบ
เมื่อมีออบเจ็กต์ FeatureLayer
แล้ว คุณจะใช้การจัดรูปแบบกับรูปหลายเหลี่ยมที่เป็นขอบเขตในฟีเจอร์นั้นได้
ตรวจสอบความสามารถของแผนที่ (จำเป็น)
การจัดรูปแบบตามข้อมูลสำหรับขอบเขตต้องใช้รหัสแผนที่ หากไม่มีรหัสแผนที่หรือส่งรหัสแผนที่ที่ไม่ถูกต้อง ระบบจะโหลดการจัดสไตล์ตามข้อมูลที่ขับเคลื่อนขอบเขตไม่ได้ ในขั้นตอนการแก้ปัญหา คุณสามารถใช้ MapCapabilities
เพื่อตรวจสอบว่าระบบรองรับการจัดรูปแบบตามข้อมูลที่ขับเคลื่อนโดยขอบเขตหรือไม่
Kotlin
val capabilities: MapCapabilities = googleMap.getMapCapabilities() System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable())
Java
MapCapabilities capabilities = googleMap.getMapCapabilities(); System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable());