如何获取地图上的所有标记,以便用户可以看到所有标记?
我有一些记号笔。我把它们显示在地图上。通过取所有标记中最高和最低数字的平均值,我得到了中心LonLat。
因此,我使用以下命令将地图设置为所有标记的中心点:
map.setCenter(centerLonLat, 8);8只是一个随机的缩放级别。有没有办法计算出完美的缩放级别,这样所有的标记都会显示在地图上?
发布于 2013-04-10 03:58:11
使用zoomToExtent()使其正常工作
var newBound = OpenLayers.Bounds();对于每个标记lonlat:
newBound.extend(lonLat);然后将其传递给函数:
map.zoomToExtent(newBound);发布于 2013-04-10 14:14:18
OpenLayers getDataExtent() function here给出了一种类似的方法,即避免循环。您需要将其应用于包含您的标记的图层:
var newBound = map.myLayer.getDataExtent();
map.zoomToExtent(newBound);发布于 2017-12-29 04:12:29
这是一个旧的线程,但随着对OpenLayers的更改,我想我应该发布一个新的解决方案。如果您使用ol.source.Vector作为层源,那么您可以调用以下代码行来适应数据周围的地图视图。
map.getView().fit(vectorSource.getExtent());这会同时将地图居中并设置缩放,以便所有数据一次都可见。
https://stackoverflow.com/questions/15910968
复制相似问题