我正在使用OpenLayers。我正在使用Javascript和PHP来实现相同的目标。
我从数据库中获取标记位置(在地图上)。我返回了所有标记位置的JSON对象,并在我的javascript文件中循环所有这些对象。
标记定位正常,但最后当我希望地图缩放到所有标记的边界时,地图会无限缩放。任何人都可以通过一些示例代码为我提供一些帮助。
我的代码段就是这样:
$.getJSON('contactDB.php', function(items)
{
for (var i = 0; i < items.length; i++)
{
(function(item)
{
var lonlat = new OpenLayers.LonLat(item.lon, item.lat).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject());
markers.addMarker(new OpenLayers.Marker(lonlat, icon.clone()));
})(items[i]);
}
});
map.addLayer(markers);
var newBounds = markers.getDataExtent();
alert(newBounds);
map.zoomToExtent(newBounds);
答案 0 :(得分:0)
尝试这样的事情:
layer.events.register("loadend", layer, function() {
map.zoomToExtent(layer.getDataExtent());
});