Bagaimana cara menghitung kotak pembatas dari objek geojson menggunakan python atau javascript?

14

Saya punya aplikasi Django dengan leaflet di frontend dan saya perlu menghitung bbox dari objek geojson sehingga saya bisa meneruskan koordinat ke map.fitBounds()

Saya telah mencoba beberapa lib serta mencoba getBoundsmetode objek tertentu di Leaflet, seperti FeatureGroup, tetapi mengeluh bahwa batas-batasnya tidak ditentukan.

Adakah yang bisa mengarahkan saya ke solusi sederhana untuk ini?

fccoelho
sumber
1
Secara umum, map.fitBounds (featureGroupName.getBounds ()) harus berfungsi, selama FeatureGroup berisi data. Sudahkah Anda memeriksa FeatureGroup untuk melihat bagaimana kelihatannya pada saat Anda mencoba untuk mendapatkan batas?
nathansnider

Jawaban:

26

Jika Anda ingin menghitung batas-batas GeoJSON-Layer Anda dapat melakukannya:

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

Contoh: http://jsfiddle.net/expedio/qgkbrjwt/

(Peta memperbesar ke Tingkat lapisan setelah Lapisan sepenuhnya dimuat).

Jika Anda ingin menghitung Batas dari setiap fitur, Anda dapat melakukan hal berikut:

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

Contoh: http://jsfiddle.net/expedio/fxxguv0v/

(Zoom ke fitur fitur di setiap popup)

Thomas B
sumber
1
Memperbaiki demo untuk menghapus dep pada permintaan ajax jsfiddle.net/fxxguv0v/22
sidonaldson
2

Gunakan geojson-bbox untuk menghitung bbox geojson apa pun

Pemakaian:

<script src="path/to/geojson-bbox.min.js"></script>
var extent = bbox(geojson);
//extent is an array [left, bottom, right, top]

Ada modul npm untuk geojson-bbox

Gagan
sumber