谷歌地图 V3 缩放以适应所有标记(路径)函数

3
我在jsfiddle上放了一个小片段,你可以看到我正在处理什么。基本上,我正在尝试连接一个“缩放”按钮,这样一旦创建了路径,就可以单击缩放按钮,地图就会缩放以适应路径。我找到的所有答案都是通过拥有标记数组来实现的,而我没有。如有建议,将不胜感激。 http://jsfiddle.net/A3NBZ/
2个回答

8
实际上,您确实有一个标记数组!它存储在用户单击地图时创建的Polyline中。要检索用户单击的点,请简单地使用Polyline.getPath()。然后,您可以将这些点(如geocodezip所提到的)添加到LatLngBounds对象中,并使用google.maps.Map.fitBounds()来调整地图视图以适应给定范围。

这是一个基于您提供的代码示例的缩放方法的简单实现(您可以在此处看到它正在工作)。

function zoom() {
  var bounds = new google.maps.LatLngBounds();
  geodesic.getPath().forEach(function(latLng) {
    bounds.extend(latLng);
  });
  map.fitBounds(bounds);                    
}

0
与您在标记示例中看到的类似,将路径中的所有google.maps.LatLngs添加到google.maps.LatLngBounds对象中(使用bounds.extend()),然后调用map.fitBounds以获取结果边界对象。

更新的jsfiddle


抱歉,您能稍微详细解释一下吗?我对JS和API还不太熟悉。 - Shane
添加了一个 jsfiddle,它会在每个点上扩展边界,并使用 map.fitBounds(bounds)。 - geocodezip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接