我在 js fiddle 上整理了一个小片段,这样你就可以看到我正在使用什么。
基本上我正在尝试连接一个“缩放”按钮,这样一旦创建了路径,您就可以单击缩放按钮并且地图会缩放以适应路径。我找到的所有答案都是通过拥有一组我没有的标记来工作的。任何建议将不胜感激。
我在 js fiddle 上整理了一个小片段,这样你就可以看到我正在使用什么。
基本上我正在尝试连接一个“缩放”按钮,这样一旦创建了路径,您就可以单击缩放按钮并且地图会缩放以适应路径。我找到的所有答案都是通过拥有一组我没有的标记来工作的。任何建议将不胜感激。
好吧,实际上您确实有一系列标记!它存储在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。