我想根据路线的中心点居中谷歌地图,但我不能使用fitbounds
,因为它不允许我使用自定义缩放(它缩放到界限的路线)。
以下是我目前的尝试。我想知道是否可以使用map.setCenter?我已经评论了我认为需要帮助的那条线。
google.maps.event.addListener(dr, 'directions_changed', function() {
var route = dr.getDirections().routes[0];
var path = route.overview_path;
es.getElevationAlongPath({
path: path,
samples: Math.max(50, path.length * 2)
}, function(result, status) {
if (status == google.maps.ElevationStatus.OK) {
drawElevation(result);
recalcHeight();
if (fitBounds) {
map.setZoom(route.bounds);
//map.setCenter();
fitBounds = false;
}
}
else {
$('#error').text(status).show();
}
recalcHeight();
});
});
更新:这个简单的更改解决了我的问题 - 自定义缩放后跟正确的居中:
map.setZoom(13);
map.setCenter(route.bounds.getCenter());
第二次更新:请删除投票结果。这是一个很容易回答的合理问题。
答案 0 :(得分:2)
DirectionsRoute有bounds
- 属性(LatLngBounds
- 对象)。 LatLngBounds
有一个center
- 属性,因此您需要做的就是将地图的center
设置为center
bounds
的{{1}} 1}}:
route
答案 1 :(得分:0)
如果您使用Google JS API在您的网站上显示Google Map,则可以根据其包含的标记,将其自动居中和自动缩放。
添加标记之前:
bounds = new google.maps.LatLngBounds();
每次添加新标记:
loc = new google.maps.LatLng(marker.position.lat(),marker.position.lng());
bounds.extend(loc);
添加所有标记后:
map.fitBounds(bounds); # auto-zoom
map.panToBounds(bounds); # auto-center
就这样,加油。
我从这里找到它:Link