[英]Zoom to search (marker) position Google Maps API
当我搜索地址时,我希望地图缩放到搜索(标记)位置。 我一直在浏览论坛并找到建议,但无法正常工作。
代码样例
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: {lat: 52.0, lng: 1.0}
});
var geocoder = new google.maps.Geocoder();
document.getElementById('submit').addEventListener('click', function() {
geocodeAddress(geocoder, map);
});
}
function geocodeAddress(geocoder, resultsMap) {
var address = document.getElementById('address').value;
geocoder.geocode({'address': address}, function(results, status) {
if (status === 'OK') {
resultsMap.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: resultsMap,
position: results[0].geometry.location
});
map.setZoom(14);
map.panTo(Marker.position);
}
else {
alert('clever text here: ' + status);
}
});
任何想法将不胜感激。
geocodeAddress()函数内部的setZoom(14)无法正常工作,因为您是从错误的地图对象引用中调用的。 您应该调用resultsMap.setZoom(14)而不是map.setZoom(14)。
"map"
变量在函数initMap()中声明,并在调用geocodeAddress()函数时作为参数传递: geocodeAddress(geocoder, map)
。
现在,在geocodeAddress()的方法定义中,将地图对象引用更改为"resultsMap"
参数名称: function geocodeAddress(geocoder, resultsMap){...}
。 这就是为什么您必须在geocodeAddress()函数内使用resultsMap.setZoom( resultsMap.setZoom(14)
的原因。
这是JSFiddle中的一个工作示例。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.