我觉得这里有点蠢......
我在地图区域有几个标记,需要找到一种平移和缩放到此区域的方法。目标是能够一次查看所有标记。
我用这段代码插入标记:
function plotMarkers(MarkerItems) {
if (MarkerItems) {
MarkerItems.success(function (data) {
var len = data.length;
for (var i = 0; i < len; i++) {
m = data[i];
var XX = parseFloat(m.X.replace(",", "."));
var YY = parseFloat(m.Y.replace(",", "."));
var marker = L.marker(new L.LatLng(XX, YY), { icon: blueFlagIcon }).bindPopup("test");
markers.addLayer(marker);
}
});// success
}
}
var markers = new L.featureGroup();
plotMarkers(myMarkers);
map.addLayer(markers);
应该是真的很简单,我只是不理解它。
请帮忙
答案 0 :(得分:8)
查看L.Map.fitBounds
和L.FeatureGroup.getBounds
。所以你的代码可能看起来像:
map.fitBounds(markers.getBounds());
但如果您的MarkerItems.success
是异步的(ajax等),则在向图层添加标记后会调用此代码。
答案 1 :(得分:1)
非常简单....
只需要添加
map.fitBounds(markers.getBounds());
<。> .success()内部。
完整的工作代码:
function plotMarkers(MarkerItems) {
if (MarkerItems) {
MarkerItems.success(function (data) {
var len = data.length;
for (var i = 0; i < len; i++) {
m = data[i];
var XX = parseFloat(m.X.replace(",", "."));
var YY = parseFloat(m.Y.replace(",", "."));
var marker = L.marker(new L.LatLng(XX, YY), { icon: blueFlagIcon }).bindPopup("test");
markers.addLayer(marker);
}
map.addLayer(markers);
map.fitBounds(markers.getBounds());
});// success
}}