शुरू करना

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript

सीमाओं के लिए डेटा-ड्रिवन स्टाइल का इस्तेमाल करने के लिए, आपको मैप आईडी बनाना होगा. इसके बाद, आपको एक नया मैप स्टाइल बनाना होगा, ज़रूरी सीमा वाली फ़ीचर लेयर चुननी होंगी, और स्टाइल को अपने मैप आईडी से जोड़ना होगा.

मैप आईडी बनाना

mapID एक यूनीक आइडेंटिफ़ायर है, जो Google Maps के किसी एक इंस्टेंस को दिखाता है. Google Cloud Console में किसी भी समय मैप आईडी बनाए जा सकते हैं और मैप आईडी से जुड़ी स्टाइल को अपडेट किया जा सकता है.

Google Cloud Console का स्क्रीनशॉट

मैप का नया स्टाइल बनाना

मैप की नई स्टाइल बनाने के लिए, मैप की स्टाइल मैनेज करें में दिए गए निर्देशों का पालन करें. इसके बाद, स्टाइल को नए बनाए गए मैप आईडी से जोड़ें.

फ़ीचर लेयर चुनना

Google Cloud कंसोल में, यह चुना जा सकता है कि कौनसी सुविधा लेयर दिखानी हैं. इससे यह तय होता है कि मैप पर किस तरह की सीमाएं दिखेंगी. उदाहरण के लिए, इलाके, राज्य वगैरह.

फीचर लेयर मैनेज करना

  1. Google Cloud Console में, मैप स्टाइल पेज पर जाएं

  2. अगर कहा जाए, तो कोई प्रोजेक्ट चुनें.

  3. मैप का कोई स्टाइल चुनें.

  4. लेयर जोड़ने या हटाने के लिए, सुविधा लेयर ड्रॉप-डाउन पर क्लिक करें.

  5. अपने बदलावों को सेव करने और उन्हें अपने मैप पर उपलब्ध कराने के लिए, सेव करें पर क्लिक करें.

ड्रॉप-डाउन दिखाने वाला स्क्रीनशॉट.

मैप को शुरू करने के लिए कोड अपडेट करना

इस चरण के लिए, ज़रूरी है कि मैप आईडी को ऐसी स्टाइल से जोड़ा गया हो जिसमें एक या उससे ज़्यादा फ़ीचर लेयर चालू हों. यह पुष्टि करने के लिए कि आपका मैप आईडी, 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 camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)
let options = GMSMapViewOptions()
options.camera = camera
options.mapID = mapID
let mapView = GMSMapView(options: options)

Objective-C

// 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)

Objective-C

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

मैप की सुविधाओं के बारे में जानकारी

सीमाओं के लिए डेटा-ड्रिवन स्टाइलिंग की सुविधाओं के लिए, ऐसी सुविधाओं की ज़रूरत होती है जो Google Cloud Console में चालू होती हैं और किसी मैप आईडी से जुड़ी होती हैं. मैप आईडी में बदलाव हो सकता है. इसलिए, GMSMapView पर mapView.mapCapabilities कॉल करके, यह पुष्टि की जा सकती है कि किसी सुविधा (उदाहरण के लिए, डेटा-ड्रिवन स्टाइल) को कॉल करने से पहले वह उपलब्ध है या नहीं.

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.
    }
  }
}

Objective-C

@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