特定标记的中心地图和其他标记上的fitToBounds

时间:2013-12-03 07:36:23

标签: javascript google-maps google-maps-api-3

我有一张标记很少的地图,其中一个是“主要”,应该位于地图的中心。我想要实现的是

  1. 将“Major”标记放在地图的中心。
  2. 以最佳缩放级别显示所有其他标记。
  3. Fittobounds将使地图居中而不考虑“主要”标记。无论如何我能同时实现#1和#2?

2 个答案:

答案 0 :(得分:1)

  1. 使用.extend将所有标记添加到空的google.maps.LatLngBounds对象
  2. 在结果边界上调用google.maps.Map.fitBounds(将居中并缩放地图以显示所有标记)
  3. 一旦边界发生了变化(在bounds_changed事件监听器中),将地图置于“主要”标记的中心
  4. 一旦边界第二次更改(在bounds_changed事件侦听器中),获取视口的更新边界(google.maps.getBounds)(检查是否有任何标记移出可见地图)
  5. 遍历所有标记,如果任何标记的bounds.contains(markers [i] .getPosition())为false,则将边界减1(缩小一次)。

答案 1 :(得分:0)

是的,只需声明新的边界对象。

 var bounds = new google.maps.LatLngBounds();

然后对于每个标记,扩展您的边界对象:

bounds.extend(myLatLng);
map.fitBounds(bounds);

API:google.maps.LatLngBounds