برای استفاده از سبکبندی دادهمحور برای مرزها، باید شناسه نقشه ایجاد کنید. سپس باید سبک نقشه جدیدی ایجاد کنید، لایههای عارضه مرز موردنیاز را انتخاب کنید، و سبک را با شناسه نقشه مرتبط کنید.
ایجاد شناسه نقشه
mapID شناسه یکتایی است که نمونه واحدی از Google Map را نشان میدهد. هرزمان بخواهید میتوانید در کنسول Google Cloud شناسه نقشه ایجاد کنید و سبک مرتبط با شناسه نقشه را بهروز کنید.

ایجاد سبک نقشه جدید
برای ایجاد سبک نقشه جدید، دستورالعملهای مدیریت سبکهای نقشه را برای ایجاد سبک دنبال کنید. پساز تکمیل، سبک را با شناسه نقشه جدیداً ایجادشده مرتبط کنید.
انتخاب لایههای عارضه
در کنسول Google Cloud میتوانید انتخاب کنید کدام لایههای عارضه نمایش داده شود. این تعیین میکند که چه نوع مرزهایی روی نقشه ظاهر شود (برای مثال، محلها، ایالتها، و غیره).
مدیریت لایههای عارضه
در کنسول Google Cloud، به صفحه «سبکهای نقشه» بروید
اگر درخواست شد، پروژهای را انتخاب کنید.
سبک نقشه را انتخاب کنید.
روی منو کرکرهای لایههای عارضه کلیک کنید تا لایهها را اضافه یا حذف کنید.
روی ذخیره کلیک کنید تا تغییراتتان ذخیره شود و در نقشههایتان دردسترس قرار گیرد.
کد مقداردهی اولیه نقشه را بهروز کنید
این مرحله مستلزم آن است که شناسه نقشه با سبکی مرتبط باشد که یک یا چند لایه عارضه در آن فعال باشد. برای تأیید اینکه شناسه نقشه شما بهدرستی در کنسول Cloud راهاندازی شده است، نحوه پیکربندی آن را در بخش مدیریت نقشهها بررسی کنید.
Swift
// A map ID using a style with one or more feature layers enabled let mapID = GMSMapID(identifier: "YOUR_MAP_ID") let camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7) let options = GMSMapViewOptions() options.camera = camera options.mapID = mapID let mapView = GMSMapView(options: options)
آبجکتیو-سی
// A map ID using a style with one or more feature layers enabled GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; options.mapID = mapID; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
افزودن لایههای عارضه به نقشه
برای دریافت مرجع لایه عارضه در نقشه،
mapView.featureLayer(of:)
را هنگام مقداردهی اولیه نقشه فراخوانی کنید:
Swift
let layer = mapView.featureLayer(of: .locality)
آبجکتیو-سی
GMSFeatureLayer*layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];
بررسی قابلیتهای نقشه
سبکبندی دادهمحور برای مرزها به قابلیتهایی نیاز دارد که در کنسول Google Cloud فعال شدهاند و با شناسه نقشه مرتبط هستند. چون شناسههای نقشه ممکن است تغییر کنند، میتوانید
mapView.mapCapabilities
را در GMSMapView فراخوانی کنید تا قبلاز فراخوانی یک قابلیت خاص (مثلاً سبکبندی دادهمحور)، دردسترس بودن آن را درستیسنجی کنید.
همچنین میتوانید با مشترک شدن در
GMSViewDelegate، تغییرات در قابلیتهای نقشه را شناسایی کنید. این مثال نحوه استفاده از پروتکل
را برای بررسی الزامات سبکبندی دادهمحور نشان میدهد.
Swift
class SampleViewController: UIViewController { private lazy var mapView: GMSMapView = { let options = GMSMapViewOptions() options.mapID = GMSMapID(identifier: "YOUR_MAP_ID") options.camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7) return GMSMapView(options: options) }() 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. } } }
آبجکتیو-سی
@interface SampleViewController: UIViewController <GMSMapViewDelegate> @end @implementation SampleViewController - (void)loadView { GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; options.mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; mapView.delegate = 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