- शुरुआती जानकारी
- किसी इमेज के लिए आपके मैप पर GeoJsonlayer
- कॉन्टेंट मैनेजमेंट सिस्टम की मदद से GeoJsonLayer
- किसी इमेज के लिए, GeoJsonFeature
- GeoJsonFeatures और उनकी प्रॉपर्टी
- GeoJsonlayer के स्टाइल में बदलाव करें और GeoJsonFeatures
- डेमो ऐप्लिकेशन देखें
परिचय
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 में, आप किसी भी पाइंट, लाइनस्ट्रिंग के लिए डिफ़ॉल्ट स्टाइल सेट कर सकते हैं और लेयर में जोड़े गए पॉलीगॉन. डिफ़ॉल्ट स्टाइल सिर्फ़ तब लागू होते हैं, जब सुविधा में इसकी किसी भी ज्यामितीय के लिए शैली सेट नहीं है. कोई भी डिफ़ॉल्ट स्टाइल में किए गए बदलाव, सभी सुविधाओं में भी दिखेंगे जो डिफ़ॉल्ट स्टाइल का इस्तेमाल कर रहे हैं.
डिफ़ॉल्ट स्टाइल लागू करने का तरीका यहां दिया गया है
- प्रासंगिक डिफ़ॉल्ट स्टाइल ऑब्जेक्ट वापस पाएं, यह इनमें से कोई एक हो सकता है
GeoJsonPointStyle
,GeoJsonLineStringStyle
याGeoJsonPolygonStyle
. - स्टाइल में अपने हिसाब से विकल्प लागू करें.
उदाहरण के लिए, नीचे दिया गया कोड सैंपल, डिफ़ॉल्ट पॉइंट में बदलाव करने का तरीका बताता है स्टाइल सेट करें, जिससे टाइटल और स्निपेट के साथ पॉइंट खींचे जा सकते हैं.
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
पर स्टाइल लागू करने के बारे में यहां बताया गया है.
- प्रासंगिक स्टाइल ऑब्जेक्ट बनाएं, जो कि
GeoJsonPointStyle
,GeoJsonLineStringStyle
याGeoJsonPolygonStyle
. - स्टाइल में अपने हिसाब से विकल्प लागू करें.
- शैली ऑब्जेक्ट को पास करें
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
को देखें
यूटिलिटी लाइब्रेरी के साथ भेजा जाता है. सेटअप गाइड में बताया गया है कि
का इस्तेमाल करें.