Google Maps Android GeoJSON सुविधा

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript
  1. शुरुआती जानकारी
  2. किसी इमेज के लिए आपके मैप पर GeoJsonlayer
  3. कॉन्टेंट मैनेजमेंट सिस्टम की मदद से GeoJsonLayer
  4. किसी इमेज के लिए, GeoJsonFeature
  5. GeoJsonFeatures और उनकी प्रॉपर्टी
  6. GeoJsonlayer के स्टाइल में बदलाव करें और GeoJsonFeatures
  7. डेमो ऐप्लिकेशन देखें

परिचय

GeoJSON, JSON डेटा का एक्सटेंशन है फ़ॉर्मैट और भौगोलिक डेटा को दिखाता है. इस उपयोगिता का उपयोग करके, आप और उन्हें एक लेयर के तौर पर रेंडर करेगा, ताकि आपको GeoJSON फ़ॉर्मैट में मैप. मैप में अपना GeoJSON डेटा जोड़ने और हटाने के लिए, कॉल करें addLayerToMap() और removeLayerFromMap(). इसी तरह अलग-अलग सुविधाओं को जोड़ने और हटाने के लिए, addFeature() और removeFeature() और पास हो रहा है GeoJsonFeature ऑब्जेक्ट. अगर आपको सुविधाएं ऐक्सेस करनी हैं, तो लेयर में जोड़े गए सभी GeoJsonFeature ऑब्जेक्ट का बार-बार पता लगाने के लिए, getFeatures() को कॉल कर सकता है.

आपके पास सुविधाओं पर लागू होने के लिए डिफ़ॉल्ट स्टाइल सेट करने का विकल्प भी है. getDefaultPointStyle() को कॉल करके लेयर में जोड़ा गया, हर एक के लिए getDefaultLineStringStyle() या getDefaultPolygonStyle() और स्टाइल के विकल्प सेट करना. इसके अलावा, आपके पास किसी व्यक्ति के लिए स्टाइल सेट करने का भी विकल्प है setPointStyle() पर कॉल करके GeoJsonFeature, setLineStringStyle() या setPolygonStyle() सुविधा और संबंधित शैली ऑब्जेक्ट में पास होना.

अपने मैप पर GeoJsonlayer जोड़ें

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

JSONObject से इंपोर्ट करने के लिए, आपको इनकी ज़रूरत होगी:

  • GoogleMap ऑब्जेक्ट जहां लेयर को रेंडर करना है
  • JSONObject में में जोड़ा जाने वाला GeoJSON डेटा शामिल है लेयर

Kotlin



val geoJsonData: JSONObject? = // JSONObject containing the GeoJSON data
val layer = GeoJsonLayer(map, geoJsonData)

      

Java


JSONObject geoJsonData = // JSONObject containing the GeoJSON data
GeoJsonLayer layer = new GeoJsonLayer(map, geoJsonData);

      

स्थानीय GeoJSON फ़ाइल से इंपोर्ट करने के लिए आपको इनकी ज़रूरत होगी:

  • GoogleMap ऑब्जेक्ट जहां लेयर को रेंडर करना है
  • GeoJSON डेटा वाली स्थानीय संसाधन फ़ाइल
  • Context ऑब्जेक्ट, जो किसी लोकल रिसॉर्स को खोलने के लिए ज़रूरी है फ़ाइल

Kotlin



val layer = GeoJsonLayer(map, R.raw.geojson_file, context)

      

Java


GeoJsonLayer layer = new GeoJsonLayer(map, R.raw.geojson_file, context);

      

GeoJsonLayer बनाने के बाद, इस नंबर पर कॉल करें मैप पर इंपोर्ट किए गए डेटा को जोड़ने के लिए addLayerToMap():

Kotlin



layer.addLayerToMap()

      

Java


layer.addLayerToMap();

      

GeoJsonlayer हटाएं

मान लें कि आपने यह लेयर जोड़ी है

Kotlin



val geoJsonData: JSONObject? = // JSONObject containing the GeoJSON data
val layer = GeoJsonLayer(map, geoJsonData)

      

Java


JSONObject geoJsonData = // JSONObject containing the GeoJSON data
GeoJsonLayer layer = new GeoJsonLayer(map, geoJsonData);

      

GeoJsonlayer को साफ़ करने के लिए, removeLayerFromMap() को कॉल करें

Kotlin



layer.removeLayerFromMap()

      

Java


layer.removeLayerFromMap();

      

GeoJsonFeature जोड़ें और हटाएं

GeoJSON में एक सुविधा का टाइप "feature" है. इसमें ज्यामिति शामिल है, प्रॉपर्टी सदस्य के साथ-साथ एक बाउंडिंग बॉक्स या आईडी भी हो सकता है.

आपके पास अलग-अलग GeoJsonFeature ऑब्जेक्ट बनाने और उन्हें जोड़ने का विकल्प है GeoJsonLayer तक.

मान लें कि आपने एक ऐसी सुविधा बनाई है जिसमें 0, 0 पर एक बिंदु है इसकी प्रॉपर्टी में एक एंट्री और कोई बाउंडिंग बॉक्स नहीं है.

Kotlin



val point = GeoJsonPoint(LatLng(0.0, 0.0))
val properties = hashMapOf("Ocean" to "South Atlantic")
val pointFeature = GeoJsonFeature(point, "Origin", properties, null)

      

Java


GeoJsonPoint point = new GeoJsonPoint(new LatLng(0, 0));
HashMap<String, String> properties = new HashMap<>();
properties.put("Ocean", "South Atlantic");
GeoJsonFeature pointFeature = new GeoJsonFeature(point, "Origin", properties, null);

      

परत में सुविधा जोड़ने के लिए, addFeature() को कॉल करें और पास करें जोड़ी जाने वाली सुविधा.

Kotlin



layer.addFeature(pointFeature)

      

Java


layer.addFeature(pointFeature);

      

परत में जोड़ने के बाद सुविधा को निकालने के लिए, कॉल करें removeFeature() और इस सुविधा को पास करें.

Kotlin



layer.removeFeature(pointFeature)

      

Java


layer.removeFeature(pointFeature);

      

GeoJsonFeatures और उनकी प्रॉपर्टी ऐक्सेस करें

लेयर में जोड़ी गई सभी GeoJsonFeatures की सुविधा ऐक्सेस करने के लिए, आप getFeatures() को GeoJsonLayer पर कॉल करो ने बनाया है. इससे GeoJsonFeatures का बार-बार इस्तेमाल किया जा सकेगा हैं, जिन्हें आप हर लूप के लिए इस्तेमाल करके ऐक्सेस कर सकते हैं, जैसा कि नीचे दिखाया गया है.

Kotlin



for (feature in layer.features) {
    // Do something to the feature
}

      

Java


for (GeoJsonFeature feature : layer.getFeatures()) {
    // Do something to the feature
}

      

इसमें hasProperty() और getProperty() तरीकों का इस्तेमाल करें getFeatures() तरीके के साथ जोड़कर देखें कि हर वैल्यू सेव की गई है या नहीं सुविधा में कोई खास प्रॉपर्टी होती है और मौजूद होने पर उसे ऐक्सेस करती है.

Kotlin



if (feature.hasProperty("Ocean")) {
    val oceanProperty = feature.getProperty("Ocean")
}

      

Java


if (feature.hasProperty("Ocean")) {
    String oceanProperty = feature.getProperty("Ocean");
}

      

GeoJSON ज्यामिति क्लिक इवेंट

GeoJsonLayer.OnFeatureClickListener() का इस्तेमाल करके, मैप पर ज्यामिति सुविधाएं हैं. नीचे दिया गया उदाहरण तब किसी सुविधा के टाइटल को लॉग करता है, जब उपयोगकर्ता सुविधा पर क्लिक करता है:

Kotlin



// Set a listener for geometry clicked events.
layer.setOnFeatureClickListener { feature ->
    Log.i("GeoJsonClick", "Feature clicked: ${feature.getProperty("title")}")
}

      

Java


// Set a listener for geometry clicked events.
layer.setOnFeatureClickListener(new Layer.OnFeatureClickListener() {
    @Override
    public void onFeatureClick(Feature feature) {
        Log.i("GeoJsonClick", "Feature clicked: " + feature.getProperty("title"));
    }
});

      

GeoJsonlayer और GeoJsonFeatures की शैली तय करें

आप GeoJsonlayer के लिए डिफ़ॉल्ट स्टाइल सेट कर सकते हैं या अलग-अलग सुविधाओं को स्टाइल कर सकते हैं लेयर में.

डिफ़ॉल्ट स्टाइल

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

डिफ़ॉल्ट स्टाइल लागू करने का तरीका यहां दिया गया है

  1. प्रासंगिक डिफ़ॉल्ट स्टाइल ऑब्जेक्ट वापस पाएं, यह इनमें से कोई एक हो सकता है GeoJsonPointStyle, GeoJsonLineStringStyle या GeoJsonPolygonStyle.
  2. स्टाइल में अपने हिसाब से विकल्प लागू करें.

उदाहरण के लिए, नीचे दिया गया कोड सैंपल, डिफ़ॉल्ट पॉइंट में बदलाव करने का तरीका बताता है स्टाइल सेट करें, जिससे टाइटल और स्निपेट के साथ पॉइंट खींचे जा सकते हैं.

Kotlin



val pointStyle = layer.defaultPointStyle
pointStyle.isDraggable = true
pointStyle.title = "Hello, World!"
pointStyle.snippet = "I am a draggable marker"

      

Java


GeoJsonPointStyle pointStyle = layer.getDefaultPointStyle();
pointStyle.setDraggable(true);
pointStyle.setTitle("Hello, World!");
pointStyle.setSnippet("I am a draggable marker");

      

किसी GeoJsonFeature के लिए खास स्टाइल

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

  1. प्रासंगिक स्टाइल ऑब्जेक्ट बनाएं, जो कि GeoJsonPointStyle, GeoJsonLineStringStyle या GeoJsonPolygonStyle.
  2. स्टाइल में अपने हिसाब से विकल्प लागू करें.
  3. शैली ऑब्जेक्ट को पास करें GeoJsonFeature पर लागू किया गया तरीका है, जो setPointStyle(), setLineStringStyle() या setPolygonStyle().

उदाहरण के लिए, GeoJsonFeature ताकि इसका रंग लाल हो जाए.

Kotlin



// Create a new feature containing a linestring
val lineStringArray: MutableList<LatLng> = ArrayList()
lineStringArray.add(LatLng(0.0, 0.0))
lineStringArray.add(LatLng(50.0, 50.0))
val lineString = GeoJsonLineString(lineStringArray)
val lineStringFeature = GeoJsonFeature(lineString, null, null, null)

// Set the color of the linestring to red
val lineStringStyle = GeoJsonLineStringStyle()
lineStringStyle.color = Color.RED

// Set the style of the feature
lineStringFeature.lineStringStyle = lineStringStyle

      

Java


// Create a new feature containing a linestring
List<LatLng> lineStringArray = new ArrayList<LatLng>();
lineStringArray.add(new LatLng(0, 0));
lineStringArray.add(new LatLng(50, 50));
GeoJsonLineString lineString = new GeoJsonLineString(lineStringArray);
GeoJsonFeature lineStringFeature = new GeoJsonFeature(lineString, null, null, null);

// Set the color of the linestring to red
GeoJsonLineStringStyle lineStringStyle = new GeoJsonLineStringStyle();
lineStringStyle.setColor(Color.RED);

// Set the style of the feature
lineStringFeature.setLineStringStyle(lineStringStyle);

      

डेमो ऐप्लिकेशन देखें

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