繁体   English   中英

缩放以搜索(标记)位置Google Maps API

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM