OpenLayers - 2.13。 getDataExtent()返回null

时间:2013-12-06 19:13:20

标签: json openlayers markers

我正在使用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);

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

layer.events.register("loadend", layer, function() { 
    map.zoomToExtent(layer.getDataExtent()); 
});