शुरू करना

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

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

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

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

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

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

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

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

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

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

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

  2. पूछे जाने पर, कोई प्रोजेक्ट चुनें.

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

  4. लेयर जोड़ने या हटाने के लिए, फ़ीचर लेयर ड्रॉप-डाउन पर क्लिक करें.

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

इस स्क्रीनशॉट में, ड्रॉप-डाउन दिखाया गया है.

मैप को शुरू करने के लिए इस्तेमाल किया जाने वाला कोड अपडेट करना

इसके लिए, मैप आईडी को ऐसी स्टाइल से जोड़ना ज़रूरी है जिसमें एक या उससे ज़्यादा फ़ीचर लेयर चालू हों. यह देखने के लिए कि Cloud Console में आपका मैप आईडी सही तरीके से सेट अप किया गया है या नहीं, Maps Management में जाकर देखें कि इसे कैसे कॉन्फ़िगर किया गया है.

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]];

मैप में फ़ीचर लेयर जोड़ना

अपने मैप पर किसी फ़ीचर लेयर का रेफ़रंस पाने के लिए, मैप शुरू होने पर mapView.featureLayer(of:) को कॉल करें:

Swift

let layer = mapView.featureLayer(of: .locality)

Objective-C

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

मैप की सुविधाएं देखना

सीमाओं के लिए, डेटा के आधार पर स्टाइलिंग की सुविधा के लिए, कुछ ज़रूरी सुविधाएं होती हैं. ये सुविधाएं, 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