सीमाओं के लिए डेटा-ड्रिवन स्टाइलिंग का इस्तेमाल करने के लिए, आपको मैप आईडी बनाना होगा. इसके बाद, आपको मैप की एक नई स्टाइल बनानी होगी, सीमा के हिसाब से लेयर चुनने होंगे, और स्टाइल को अपने मैप आईडी से जोड़ना होगा.
मैप आईडी बनाएं
mapID एक यूनीक आइडेंटिफ़ायर होता है, जो Google Maps के एक इंस्टेंस को दिखाता है. Google Cloud Console में आप किसी भी समय मैप आईडी बना सकते हैं और मैप आईडी से जुड़ी स्टाइल अपडेट कर सकते हैं.
मैप की नई स्टाइल बनाएं
मैप की नई स्टाइल बनाने के लिए, मैप की स्टाइल मैनेज करें में दिए गए निर्देशों का पालन करके स्टाइल बनाएं. पूरा होने के बाद, स्टाइल को नए बनाए गए मैप आईडी के साथ जोड़ें.
सुविधा लेयर चुनें
Google Cloud Console में, आपके पास यह चुनने का विकल्प होता है कि किस सुविधा वाली लेयर को दिखाना है. इससे तय होता है कि मैप पर किस तरह की सीमाएं दिखेंगी (जैसे, शहर, राज्य वगैरह).
सुविधा लेयर मैनेज करें
Google Cloud Console में, मैप की स्टाइल वाले पेज पर जाएं
अनुरोध किए जाने पर प्रोजेक्ट चुनें.
मैप की स्टाइल चुनें.
लेयर जोड़ने या हटाने के लिए, सुविधा लेयर ड्रॉप-डाउन पर क्लिक करें.
अपने बदलावों को सेव करने और उन्हें अपने मैप पर उपलब्ध कराने के लिए, सेव करें पर क्लिक करें.
अपना मैप इनिशलाइज़ेशन कोड अपडेट करना
इस चरण के लिए ज़रूरी है कि कोई मैप आईडी किसी ऐसी स्टाइल से जुड़ा हो जिसमें एक या ज़्यादा सुविधा लेयर चालू हों. यह पुष्टि करने के लिए कि Cloud Console में आपका मैप आईडी सही तरीके से सेट अप है, मैप मैनेजमेंट में देखें कि इसे कैसे कॉन्फ़िगर किया गया है.
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