gpt4 book ai didi

javascript - 在 Leaflet 中显示来自 geojson 的 map 时设置缩放

转载 作者:行者123 更新时间:2023-11-30 07:34:49 25 4
gpt4 key购买 nike

我正在使用 Leaflet.js在 map 中显示 geojson 文件,我有以下代码:

// Set the map and the geojson as pointed in the tutorials
var geojsonLayer = new L.GeoJSON(null, {
onEachFeature: function (feature, layer) {
if (feature.properties) {
var popupString = '<div class="popup">';
for (var k in feature.properties) {
var v = feature.properties[k];
popupString += k + ': ' + v + '<br />';
}
popupString += '</div>';
layer.bindPopup(popupString, {
maxHeight: 200
});
}
}
});
map.addLayer(geojsonLayer);

L.control.layers({'Road': road_layer, 'Satellite': satellite_layer}, {'GeoJSON': geojsonLayer}).addTo(map);
//...
// Load file and get its content in the data var
//...
geojsonLayer.addData(JSON.parse(data));
map.fitBounds(geojsonLayer.getBounds());

但是当 geojson 文件只有一个点时, map 会放大很多。我想手动设置缩放,但不知道如何设置。

提前致谢

最佳答案

geojsonLayer 是一个 LayerGroup这样您就可以将其图层作为数组获取。

geojsonLayer.addData(JSON.parse(data));
if(geojsonLayer.getLayers() && geojsonLayer.getLayers().length > 1) {
map.fitBounds(geojsonLayer.getBounds());
}
else {
map.setZoom(defaultZoomValue);
}

编辑:正如@ghybs 所提到的,您还可以/应该将 map 居中放置在标记上(如果是单独的)。否则,您将冒着将标记置于 map 外部的风险,具体取决于您的缩放级别。这是一个 example .

关于javascript - 在 Leaflet 中显示来自 geojson 的 map 时设置缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37599051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com