बॉर्डर के पॉलीगॉन को स्टाइल करें

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

किसी फ़ीचर लेयर में, स्ट्रोक के लिए स्टाइल लागू करने और बाउंड्री पॉलीगॉन को भरने के लिए:

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

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

निम्न उदाहरण मैप में मोहल्ला सुविधा लेयर में एक क्षेत्र.

हवाई के हना पॉलीगॉन को दिखाने वाला स्क्रीनशॉट.

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

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

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

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

यह फ़ंक्शन, लेयर में मौजूद हर फ़ीचर पर काम करता है. इसलिए, ऑप्टिमाइज़ेशन ज़रूरी है. रेंडरिंग में लगने वाले समय पर असर न पड़े, इसके लिए:

  • सिर्फ़ अपनी ज़रूरत के हिसाब से सुविधाएं लेयर चालू करें.

  • जब कोई फ़ीचर लेयर इस्तेमाल में न हो, तब FeatureLayer.setFeatureStyle(null) को कॉल करें.

पॉलीगॉन का स्ट्रोक और भरने का रंग सेट करना

स्टाइल फ़ैक्ट्री फ़ंक्शन में, बॉर्डर पॉलीगॉन को स्टाइल करते समय, ये सेट किए जा सकते हैं:

  • ARGB कलर फ़ॉर्मैट में पॉलीगॉन बॉर्डर का स्ट्रोक कलर और ओपैसिटी, जैसा कि Color क्लास में बताया गया है. डिफ़ॉल्ट वैल्यू पारदर्शी होती है (0x00000000).

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

  • ARGB रंग फ़ॉर्मैट में पॉलीगॉन का रंग और अपारदर्शिता भरें, जैसे कि के अनुसार तय किया गया Color क्लास. डिफ़ॉल्ट वैल्यू पारदर्शी होती है (0x00000000).

सुविधाओं को टारगेट करने के लिए जगह के आईडी देखना

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

जगह के आईडी, Google Places डेटाबेस और Google पर किसी जगह की खास तौर पर पहचान करते हैं मैप. जगह का आईडी पाने के लिए:

कवरेज, देश/इलाके के हिसाब से अलग-अलग होती है. यहां जाएं: Google की सीमाओं का कवरेज देखें.

भौगोलिक नाम कई स्रोतों से उपलब्ध हैं, जैसे भौगोलिक नामों पर यूएसजीएस बोर्ड, और अमेरिका Gazetteer की फ़ाइलें.

जगह का आईडी पाने के लिए PlacesFeature का इस्तेमाल करना

PlaceFeature क्लास, Feature क्लास की सब-क्लास है. यह जगह की जानकारी (जगह का आईडी वाली जानकारी) दिखाती है. इसमें ADMINISTRATIVE_AREA_LEVEL_1, ADMINISTRATIVE_AREA_LEVEL_2, COUNTRY, LOCALITY, POSTAL_CODE, और SCHOOL_DISTRICT टाइप की जानकारी शामिल होती है.

जगह का आईडी उपलब्ध होने पर, Android के लिए Maps SDK, स्टाइल फ़ैक्ट्री में PlaceFeature का इंस्टेंस पास करता है ताकि आप विशेषता के स्थान का पता लगा सकें.

स्टाइल फ़ैक्ट्री का उदाहरण

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

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

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

    Java

    private FeatureLayer localityLayer;
    @Override public void onMapReady(GoogleMap map) { // Get the LOCALITY feature layer. localityLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.LOCALITY) .build());
    // Apply style factory function to LOCALITY layer. styleLocalityLayer(); }

    Kotlin

    private var localityLayer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the LOCALITY feature layer. localityLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.LOCALITY) .build())
    // Apply style factory function to LOCALITY layer. styleLocalityLayer() }

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

    नीचे दिया गया उदाहरण सिर्फ़ तब लागू होता है, जब जगह की जानकारी का आईडी, हवाई के हना ("ChIJ0zQtYiWsVHkRk8lRoB1RNPo") के लिए हो. अगर दिया गया प्लेस आईडी, हवाई के हना के लिए नहीं है, तो स्टाइल लागू नहीं किया जाएगा.

    Java

    private void styleLocalityLayer() {
    // Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
    // Check if the feature is an instance of PlaceFeature, // which contains a place ID. if (feature instanceof PlaceFeature) { PlaceFeature placeFeature = (PlaceFeature) feature;
    // Determine if the place ID is for Hana, HI. if (placeFeature.getPlaceId().equals("ChIJ0zQtYiWsVHkRk8lRoB1RNPo")) {
    // Use FeatureStyle.Builder to configure the FeatureStyle object // returned by the style factory function. return new FeatureStyle.Builder() // Define a style with purple fill at 50% opacity and solid purple border. .fillColor(0x80810FCB) .strokeColor(0xFF810FCB) .build(); } } return null; };
    // Apply the style factory function to the feature layer. localityLayer.setFeatureStyle(styleFactory); }

    Kotlin

    private fun styleLocalityLayer() {
    // Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
    // Check if the feature is an instance of PlaceFeature, // which contains a place ID. if (feature is PlaceFeature) { val placeFeature: PlaceFeature = feature as PlaceFeature
    // Determine if the place ID is for Hana, HI. if (placeFeature.getPlaceId().equals("ChIJ0zQtYiWsVHkRk8lRoB1RNPo")) {
    // Use FeatureStyle.Builder to configure the FeatureStyle object // returned by the style factory function. return@StyleFactory FeatureStyle.Builder() // Define a style with purple fill at 50% opacity and // solid purple border. .fillColor(0x80810FCB.toInt()) .strokeColor(0xFF810FCB.toInt()) .build() } } return@StyleFactory null }
    // Apply the style factory function to the feature layer. localityLayer?.setFeatureStyle(styleFactory) }

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

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