Pythonまたはjavascriptを使用してgeojsonオブジェクトの境界ボックスを計算する方法は?


14

フロントエンドにリーフレット付きのdjangoアプリがあり、座標を渡すことができるようにgeojsonオブジェクトのbboxを計算する必要があります map.fitBounds()

私はいくつかのライブラリを試し、getBoundsリーフレットの特定のオブジェクトのメソッドを試しましたが、などFeatureGroup、境界が定義されていないことを訴えました。

誰も私にこれの簡単な解決策を教えてくれますか?


1
一般に、FeatureGroupにデータが含まれている限り、map.fitBounds(featureGroupName.getBounds())は機能するはずです。FeatureGroupを調べて、境界を取得しようとしているときの外観を確認しましたか?
ネイサンスナイダー

回答:


26

GeoJSONレイヤーの境界を計算する場合、次のことができます。

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リクエストjsfiddle.net/fxxguv0v/22
sidonaldsonの

2

geojson-bboxを使用して、任意のgeojsonのbboxを計算します

使用法:

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

geojson-bboxにはnpmモジュールがあります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.