Làm cách nào để tính hộp giới hạn của đối tượng Geojson bằng python hoặc javascript?


14

Tôi có ứng dụng django với tờ rơi trên frontend và tôi cần tính toán hộp thư của đối tượng Geojson để tôi có thể truyền tọa độ cho map.fitBounds()

Tôi đã thử một số lib cũng như thử các getBoundsphương thức của một số đối tượng trong Leaflet, chẳng hạn như FeatureGroup, nhưng nó phàn nàn rằng giới hạn không được xác định.

Bất cứ ai có thể chỉ cho tôi một giải pháp đơn giản cho việc này?


1
Nói chung, map.fitBound (FeaturegroupName.getBound ()) sẽ hoạt động, miễn là Featuregroup chứa dữ liệu. Bạn đã kiểm tra Featuregroup để xem nó trông như thế nào tại thời điểm bạn đang cố gắng để có được giới hạn chưa?
nathansnider

Câu trả lời:


26

Nếu bạn muốn tính các giới hạn của Lớp GeoJSON, bạn có thể thực hiện:

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

Ví dụ: http://jsfiddle.net/expedio/qgkbrjwt/

(Bản đồ thu phóng đến phạm vi Lớp sau khi Lớp được tải hoàn toàn).

Nếu bạn muốn tính Bound của từng tính năng, bạn có thể làm như sau:

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

Ví dụ: http://jsfiddle.net/expedio/fxxguv0v/

(Thu phóng đến chức năng tính năng trong mỗi cửa sổ bật lên)


1
Đã sửa bản demo để xóa dep trên ajax yêu cầu jsfiddle.net/fxxguv0v/22
sidonaldson

2

Sử dụng Geojson-bbox để tính bbox của bất kỳ Geojson nào

Sử dụng:

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

Có mô-đun npm cho Geojson-bbox

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.