मैप और स्टाइल डेटासेट में डेटासेट जोड़ें

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

इस पेज पर, मैप में डेटासेट जोड़ने और स्टाइल लागू करने का तरीका बताया गया है.

अलग-अलग स्टाइल में पॉलीगॉन डेटा दिखाने वाला स्क्रीनशॉट.

ज़रूरी शर्तें

आगे बढ़ने से पहले, आपके पास एक मैप आईडी, मैप स्टाइल, और एक डेटासेट आईडी होना चाहिए.

डेटासेट आईडी को मैप की स्टाइल से जोड़ना

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

अपने डेटासेट को मैप की स्टाइल से जोड़ने के लिए:

  1. Google Cloud Console में, डेटासेट पेज पर जाएं.
  2. डेटासेट के नाम पर क्लिक करें. डेटासेट की जानकारी वाला पेज दिखेगा.
  3. झलक देखें टैब पर क्लिक करें.
  4. मिलती-जुलती मैप स्टाइल सेक्शन में, मैप स्टाइल जोड़ें.
    मैप जोड़ें शैली बटन का स्क्रीनशॉट.
  5. मैप की शैली असोसिएट करने के लिए चेकबॉक्स पर क्लिक करें और फिर क्लिक करें सेव करें पर टैप करें.

डेटासेट में स्टाइल लागू करना

किसी डेटासेट में स्टाइल लागू करने के लिए:

  1. ऐसी स्टाइल फ़ैक्ट्री फ़ंक्शन बनाएं जो FeatureLayer.StyleFactory इंटरफ़ेस पर कॉपी करने की सुविधा मिलती है. यह फ़ंक्शन किसी डेटासेट की स्टाइल के बारे में बताता है.

  2. कॉल करें FeatureLayer.setFeatureStyle() का इस्तेमाल करें.

स्टाइल फ़ैक्ट्री फ़ंक्शन बनाएं

डेटासेट में मौजूद हर सुविधा पर स्टाइल फ़ैक्ट्री फ़ंक्शन लागू किया जाता है लेयर होती है जब आप सुविधा लेयर पर फ़ंक्शन सेट करते हैं. इस फ़ंक्शन को FeatureStyle वापस करो वह ऑब्जेक्ट जो पॉलीगॉन को स्टाइल करने का तरीका बताता है.

अगर स्टाइल फ़ैक्ट्री null दिखाता है, तो दी गई सुविधा रेंडर नहीं की जाती है. ज़्यादा के लिए जानकारी के लिए, लेयर से स्टाइल हटाएं देखें.

Android के लिए Maps SDK टूल Feature स्टाइल फ़ैक्ट्री फ़ंक्शन का इस्तेमाल करें. Feature इंस्टेंस, सुविधा का मेटाडेटा, जिससे आपको स्टाइल फ़ैक्ट्री में मेटाडेटा का ऐक्सेस मिलता है फ़ंक्शन का इस्तेमाल करना होगा.

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

यह फ़ंक्शन किसी लेयर में मौजूद हर सुविधा पर काम करता है, इसलिए ऑप्टिमाइज़ेशन अहम है. रेंडरिंग के समय पर असर न पड़े, इसके लिए कॉल करें FeatureLayer.setFeatureStyle(null) जब किसी फ़ीचर लेयर का इस्तेमाल बंद किया जा रहा हो.

डेटासेट का आईडी पाने के लिए, FeatureLayer.getDatasetId() पर कॉल भी किया जा सकता है.

स्ट्रोक, फ़िल, और पॉइंट रेडियस सेट करना

स्टाइल फ़ैक्ट्री फ़ंक्शन में किसी सुविधा को स्टाइल करते समय, इन्हें सेट किया जा सकता है:

  • बॉर्डर का स्ट्रोक का रंग और ओपैसिटी Color क्लास. डिफ़ॉल्ट वैल्यू पारदर्शी होती है (Color.TRANSPARENT).

  • स्क्रीन पिक्सल में बॉर्डर की स्ट्रोक की चौड़ाई. डिफ़ॉल्ट वैल्यू दो है.

  • रंग और अपारदर्शिता को Color क्लास. डिफ़ॉल्ट वैल्यू पारदर्शी होती है (Color.TRANSPARENT).

  • किसी पॉइंट की सुविधा के पॉइंट रेडियस 0 से 128 पिक्सल के बीच होता है.

स्टाइल के आसान नियमों का इस्तेमाल करें

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

डिक्लेरेटिव स्टाइल के नियमों का इस्तेमाल करना

आपके पास सुविधा एट्रिब्यूट के आधार पर, स्टाइल के नियम तय करने का विकल्प है. और उन्हें अपने पूरे डेटासेट में लागू करें. आप यहां से null वापस कर सकते हैं: सुविधा शैली फ़ंक्शन का इस्तेमाल किया जा सकता है. उदाहरण के लिए, अगर आपको कुछ सुविधाओं के सबसेट को बनाए रखना है, तो दिखाई नहीं दे रहे.

उदाहरण के लिए, DatasetFeature.getDatasetAttributes() तरीके का इस्तेमाल करके किसी सुविधा के लिए, डेटासेट के Map<String,String> एट्रिब्यूट. इसके बाद आप विशेषता के आधार पर सुविधा की शैली को कस्टमाइज़ कर सकता है.

यह उदाहरण "highlightColor" वैल्यू तय करता है हर एट्रिब्यूट डेटासेट की सुविधा का इस्तेमाल करके स्टाइलिंग को कंट्रोल करें:

Kotlin

// Get the dataset feature, so we can work with all of its attributes.
val datasetFeature: DatasetFeature = feature as DatasetFeature
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. val attributeColor: MutableMap<String, String> = datasetFeature.getDatasetAttributes() when (attributeColor["highlightColor"]) { "Black" -> { ... } "Red" -> { ... } else -> { ... } }

Java

// Get the dataset feature, so we can work with all of its attributes.
DatasetFeature datasetFeature = (DatasetFeature) feature;
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. Map<String, String> attributeColor = datasetFeature.getDatasetAttributes(); switch(attributeColor.get("highlightColor")) { case "Black": ... break; case "Red": ... break; default: // Color not defined. ... break; }

डेटासेट की सुविधा की लेयर में स्टाइल लागू करें

यह उदाहरण डेटासेट में मौजूद पॉलीगॉन पर स्टाइल फ़ैक्ट्री फ़ंक्शन लागू करता है फ़ीचर लेयर. स्टाइल फ़ैक्ट्री फ़ंक्शन, पसंद के मुताबिक फ़िल और स्ट्रोक स्टाइल लागू करता है तक:

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

  2. मैप शुरू होने पर, डेटासेट की सुविधा वाली लेयर का रेफ़रंस पाएं.

    Kotlin

    private var datasetLayer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the DATASET feature layer. datasetLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build())
    // Apply style factory function to DATASET layer. styleDatasetsLayer() }

    Java

    private FeatureLayer datasetLayer;
    @Override public void onMapReady(GoogleMap map) { // Get the DATASET feature layer. datasetLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build());
    // Apply style factory function to DATASET layer. styleDatasetsLayer(); }

  3. एक स्टाइल फ़ैक्ट्री फ़ंक्शन बनाएं और उसे डेटासेट पर लागू करें फ़ीचर लेयर.

    इस उदाहरण में, सभी सुविधाओं के लिए एक ही फ़िल और स्ट्रोक को लागू किया गया है डेटासेट में शामिल है.

    Kotlin

    private fun styleDatasetsLayer() {
    // Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
    // Check if the feature is an instance of DatasetFeature. if (feature is DatasetFeature) {
    return@StyleFactory FeatureStyle.Builder() // Define a style with green fill at 50% opacity and // solid green border. .fillColor(0x8000ff00.toInt()) .strokeColor(0xff00ff00.toInt()) .strokeWidth(2F) .build() } return@StyleFactory null }
    // Apply the style factory function to the feature layer. datasetLayer?.setFeatureStyle(styleFactory) }

    Java

    private void styleDatasetsLayer() {
    // Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
    // Check if the feature is an instance of DatasetFeature. if (feature instanceof DatasetFeature) {
    return new FeatureStyle.Builder() // Define a style with green fill at 50% opacity and solid green border. .fillColor(0x8000ff00) .strokeColor(0xff00ff00) .strokeWidth(2F) .build(); } return null; };
    // Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }

परत से शैली हटाएं

परत से शैली निकालने के लिए, FeatureLayer.setFeatureStyle(null) को कॉल करें.

आप अपनी स्टाइल फ़ैक्ट्री से भी null वापस कर सकते हैं. उदाहरण के लिए, अगर सुविधाओं का एक सबसेट छुपे रहना चाहते हैं.