ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าการจัดรูปแบบตามข้อมูลสำหรับชุดข้อมูล
รับคีย์ API และเปิดใช้ API
ก่อนที่จะใช้การจัดรูปแบบโดยอิงตามข้อมูลสำหรับชุดข้อมูล คุณต้องมีสิ่งต่อไปนี้ โปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่มีบัญชีสำหรับการเรียกเก็บเงิน และทั้ง Maps SDK สำหรับ iOS และ Maps Datasets API เปิดอยู่ ดูข้อมูลเพิ่มเติมได้ที่
สร้างรหัสแผนที่
mapID คือตัวระบุที่ไม่ซ้ำซึ่งแสดงถึง ตำแหน่งเดียวของ Google Maps คุณสร้างรหัสแผนที่และอัปเดตรูปแบบได้ เชื่อมโยงกับรหัสแผนที่ได้ทุกเมื่อใน Google Cloud Console
สร้างรูปแบบแผนที่ใหม่
ถ้าต้องการสร้างแผนที่รูปแบบใหม่ ให้ทำตามวิธีการในจัดการแผนที่ รูปแบบในการสร้าง สไตล์ เมื่อเสร็จแล้ว ให้เชื่อมโยงรูปแบบกับรหัสแผนที่ที่สร้างใหม่
อัปเดตรหัสการเริ่มต้นแผนที่
ขั้นตอนนี้กำหนดให้เชื่อมโยงรหัสแผนที่กับสไตล์ที่มีอย่างน้อย 1 องค์ประกอบ เปิดใช้งานเลเยอร์แล้ว เพื่อยืนยันการตั้งค่ารหัสแผนที่ของคุณอย่างถูกต้องใน Cloud Console โปรดศึกษาวิธีกำหนดค่าใน Maps การจัดการ
Swift
// A map ID using a style with one or more feature layers enabled let mapID = GMSMapID(identifier: "YOUR_MAP_ID") let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7))
Objective-C
// A map ID using a style with one or more feature layers enabled GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]];
ตรวจสอบความสามารถของแผนที่
การจัดรูปแบบตามข้อมูลสำหรับชุดข้อมูลต้องใช้ความสามารถที่เปิดใช้ใน
Google Cloud Console และเชื่อมโยงกับรหัสแผนที่แล้ว เนื่องจากรหัสแผนที่อยู่ภายใต้
เปลี่ยน คุณสามารถโทรหา
mapView.mapCapabilities
ใน
GMSMapView
เพื่อยืนยันว่าความสามารถบางอย่าง (เช่น การจัดรูปแบบตามข้อมูล)
ได้ก่อนที่จะเรียกใช้
นอกจากนี้คุณยังสามารถตรวจหาการเปลี่ยนแปลงความสามารถบนแผนที่โดยสมัครรับข้อมูล
GMSViewDelegate
ตัวอย่างนี้แสดงวิธีใช้โปรโตคอลเพื่อตรวจสอบการจัดรูปแบบตามข้อมูล
Swift
class SampleViewController: UIViewController { private lazy var mapView: GMSMapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)) override func loadView() { self.view = mapView mapView.delegate = self } } extension SampleViewController: GMSMapViewDelegate { func mapView(_ mapView: GMSMapView, didChange mapCapabilities: GMSMapCapabilityFlags) { if (!mapCapabilities.contains(.dataDrivenStyling)) { // Data-driven styling is *not* available, add a fallback. // Existing feature layers are also unavailable. } } }
Objective-C
@interface SampleViewController: UIViewController <GMSMapViewDelegate> @end @implementation SampleViewController - (void)loadView { GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]]; mapView.delegete = self; self.view = mapView; } - (void)mapView:(GMSMapView *)mapView didChangeMapCapabilities:(GMSMapCapabilityFlags)mapCapabilities { if (!(mapCapabilities & GMSMapCapabilityFlagsDataDrivenStyling)) { // Data-driven styling is *not* available, add a fallback. // Existing feature layers are also unavailable. } } @end