谷歌地图v3缩放以适应所有标记(路径)功能



我在js fiddle上放了一个小片段,这样你就可以看到我在做什么。

基本上,我正在尝试连接一个"缩放"按钮,以便在创建路径后,您可以单击缩放按钮,地图会缩放以适应路径。 我找到的所有答案都通过拥有一系列我没有的标记来工作。 任何建议将不胜感激。

http://jsfiddle.net/A3NBZ/

好吧,事实上你确实有一系列标记!它存储在用户单击地图时创建的Polyline中。要检索用户单击的点,只需使用 Polyline.getPath() 。然后,您可以将这些点(如 geocodezip 所述)添加到LatLngBounds对象,并使用google.maps.Map.fitBounds()将地图视图调整到给定边界。

下面是基于您提供的代码示例的 zoom 方法的简单实现(您可以在此处看到它的工作原理)。

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

类似于你看到的标记示例,将路径中的所有google.maps.LatLngs添加到google.maps.LatLngBounds对象(使用bounds.extend()),然后在生成的bounds对象上调用map.fitBounds。

更新的JSFIDDLE

最新更新