Python veya javascript kullanarak bir geojson nesnesinin sınırlayıcı kutusunu nasıl hesaplayabilirim?


14

Ben ön ucunda broşür ile django uygulaması var ve ben koordinatları geçmek böylece bir geojson nesnenin bbox hesaplamak gerekir map.fitBounds()

Bazı libs denedim yanı sıra getBounds, Leaflet bazı nesnelerin yöntemlerini denedim FeatureGroup, ama sınırların tanımlanmadı şikayet etti.

Biri bana bunun basit bir çözümüne işaret edebilir mi?


1
Genel olarak, FeatureGroup veri içerdiği sürece map.fitBounds (featureGroupName.getBounds ()) çalışmalıdır. Sınırları almaya çalıştığınız sırada nasıl göründüğünü görmek için FeatureGroup'u incelediniz mi?
nathansnider

Yanıtlar:


26

Bir GeoJSON-Katmanının sınırlarını hesaplamak istiyorsanız şunları yapabilirsiniz:

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

Örnek: http://jsfiddle.net/expedio/qgkbrjwt/

(Katman tamamen yüklendikten sonra harita Katman kapsamına yakınlaşır).

Her bir özelliğin Sınırlarını hesaplamak istiyorsanız aşağıdakileri yapabilirsiniz:

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

Örnek: http://jsfiddle.net/expedio/fxxguv0v/

(Her açılır pencerede özellik işlevine yakınlaştırma)


1
Demo ajax isteği dep kaldırmak için düzeltildi jsfiddle.net/fxxguv0v/22
sidonaldson

2

Herhangi bir geojson'un bbox'ını hesaplamak için geojson-bbox kullanın

Kullanımı:

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

Geojson-bbox için npm modülü var

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.