我已经尝试过从SE中提出的问题中解决问题但是无法通过阅读这些问题解决问题所以,将其作为单独的问题发布。
我正在使用以下代码
创建marker
图层
mLayer = new OpenLayers.Layer.Vector(layerName, {
projection: map.displayProjection,
extractAttributes: true,
styleMap: new OpenLayers.StyleMap({'default' : Lstyle}),
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: getURL,
format: new OpenLayers.Format.GeoJSON()
})
});
我的任务是计算marker
坐标的平均值并将其设置为地图的中心,因为我想从mLayer
对象获取坐标。标记在地图上显示正常,但当我在控制台中打印mLayer.features.length
时显示0
,但features
的大小为10,我可以在{{1通过打印firebug console
,this是我的JSON文件。
答案 0 :(得分:1)
Openlayers提供此功能:
然后使用map.getZoomForExtent
和map.panTo
。
答案 1 :(得分:0)
要将地图中心设置为markers mid point
,Christophe Roussy
中建议的comments
在某种程度上是正确的,但是他的代码存在问题,代码将在layer
之前执行完成下载到浏览器,所以我们必须检查图层是否完成如下
layer.events.register('loadend', layer, function(evt){map.zoomToExtent(layer.getDataExtent() )} )
它对我来说很好。