पायथन या जावास्क्रिप्ट का उपयोग करके एक जियोजोन ऑब्जेक्ट की बाउंडिंग बॉक्स की गणना कैसे करें?


14

मेरे पास फ्रंटएंड पर लीफलेट के साथ django ऐप है और मुझे एक जियोजोन ऑब्जेक्ट के बॉक्स की गणना करने की आवश्यकता है ताकि मैं निर्देशांक पास कर सकूं map.fitBounds()

मैंने कुछ कामों की कोशिश की है और साथ ही साथ कैटलॉग में getBoundsकुछ वस्तुओं के तरीकों को भी आजमाया है FeatureGroup, लेकिन यह शिकायत है कि सीमा को परिभाषित नहीं किया गया था।

क्या कोई मुझे इसके सरल समाधान की ओर इशारा कर सकता है?


1
सामान्य तौर पर, Map.fitBounds (featureGroupName.getBounds ()) तब तक काम करना चाहिए, जब तक फ़ीचरग्रुप में डेटा न हो। क्या आपने फ़ीचरग्रुप की जांच की है कि यह उस समय कैसा दिखता है, जब आप सीमा पाने की कोशिश कर रहे हैं?
नथानस्निडर

जवाबों:


26

यदि आप जियोन्सन-लेयर की सीमा की गणना करना चाहते हैं, तो आप कर सकते हैं:

var geojsonLayer = L.geoJson(your_data).addTo(map);
map.fitBounds(geojsonLayer.getBounds());

उदाहरण: http://jsfiddle.net/expedio/qgkbrjwt/

(लेयर पूरी तरह से लोड होने के बाद मैप लेयर से लेयर हद तक जाता है)।

यदि आप प्रत्येक एकल सुविधा की सीमा की गणना करना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:

var myGeoJSON = L.geoJson(data, {
    onEachFeature: function (feature, layer) {
        // assign bounds to feature
        feature.properties.bounds_calculated = layer.getBounds();
    }
}).addTo(map);

// do whatever you want with
// feature.properties.bounds_calculated

उदाहरण: http://jsfiddle.net/expedio/fxxguv0v/

(प्रत्येक पॉपअप में सुविधा को ज़ूम करें)


1
Ajax अनुरोध पर dep को हटाने के लिए डेमो फिक्स्ड jsfiddle.net/fxxguv0v/22
sidonaldson

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.