برای راهاندازی استایل مبتنی بر داده برای مجموعههای داده، این مراحل را دنبال کنید.
یک کلید API دریافت کنید و API ها را فعال کنید
قبل از استفاده از سبکهای مبتنی بر داده برای مجموعههای داده، به این موارد نیاز دارید: پروژه Cloud با حساب صورتحساب، و هم Maps SDK برای iOS و هم Maps Datasets API فعال باشد. برای کسب اطلاعات بیشتر، نگاه کنید به:
یک شناسه نقشه ایجاد کنید
MapID یک شناسه منحصر به فرد است که یک نمونه از نقشه گوگل را نشان می دهد. میتوانید شناسههای نقشه ایجاد کنید و سبک مرتبط با شناسه نقشه را در هر زمان در Google Cloud Console بهروزرسانی کنید.
یک سبک نقشه جدید ایجاد کنید
برای ایجاد یک سبک نقشه جدید، دستورالعمل های موجود در Manage map styles را برای ایجاد سبک دنبال کنید. پس از تکمیل استایل را با شناسه نقشه جدید ایجاد شده مرتبط کنید.
کد اولیه نقشه خود را به روز کنید
این مرحله نیازمند شناسه نقشه است که با یک سبک با یک یا چند لایه ویژگی فعال باشد. برای تأیید اینکه شناسه نقشه شما به درستی در Cloud Console تنظیم شده است، نحوه پیکربندی آن را در مدیریت Maps مرور کنید.
سویفت
// 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))
هدف-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
تغییرات در قابلیتهای نقشه را شناسایی کنید. این مثال نحوه استفاده از پروتکل را برای بررسی الزامات استایل مبتنی بر داده نشان می دهد.
سویفت
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. } } }
هدف-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