在我的网站上,我有一个Google地图自动填充字段,用户可以选择一个位置(例如城市或街道)。
一旦用户选择了地址,我就会自动将地图的边界设置为该位置的边界。例如,如果位置是一个大城市,边界将被缩小很多,而如果用户输入一条小街道,它们将被放大。
我想要在界限范围内覆盖整个位置 - 所以如果它是一条长街,那么整个街道应该在地图范围内。
以下是我使用的代码:
google.maps.event.addListener(autocomplete, 'place_changed', function () {
var address = autocomplete.getPlace();
if (address && address.geometry && address.geometry.location) {
centerCoord = address.geometry.location;
map.setCenter(new google.maps.LatLng(centerCoord.lat(), centerCoord.lng()));
if (address.geometry.viewport) {
map.fitBounds(address.geometry.viewport);
} else {
//this happens when inputting a street - no viewport or bounds are returned. How do I get the entire bounds of the street?
}
}
});
问题在于API在输入街道时显然不会返回视口或边界。在这种情况下如何获得界限?
将缩放级别设置为静态值(例如16)不起作用,因为用户可以键入短街或长街。
根据要求,这是一个展示我的问题的JsFiddle:https://jsfiddle.net/cy1o228e/5/。
尝试进入当地街道,例如 Rolighedsvej,Frederiksberg,Denmark ,您将看到没有返回任何边界和视口。