【问题标题】:Google maps API - not accepting values from geocode谷歌地图 API - 不接受来自地理编码的值
【发布时间】:2017-11-04 00:48:26
【问题描述】:

我正在尝试在我的 javascript 中实现 Google API 映射。根据地址,我想获取相应的纬度/经度并在该位置显示地图。当我对位置进行硬编码时,它可以工作。当我使用地理编码器中的值时,地图是空的。代码如下:

<script>
     function initMap() {
         var loc = [];
         var geocoder = new google.maps.Geocoder();
         var address = "New York"; 

         geocoder.geocode({ 'address': address }, function (results, status) {
             if (status == google.maps.GeocoderStatus.OK) {
                 loc[0] = results[0].geometry.location.lat();
                 loc[1] = results[0].geometry.location.lng();
                 alert(loc); 

             } else {
                 alert("Geocode was not successful for the following reason: " + status);
             }
         });


         // Create a map object and specify the DOM element for display.
    var map = new google.maps.Map(document.getElementById('map'), {
        center: { lat: loc[0], lng: loc[1] },
        scrollwheel: false,
        zoom: 8
    });
}

              </script>

alert(loc) 函数显示正确的纬度和经度值,但地图似乎仍然是空的。知道为什么吗?

【问题讨论】:

    标签: javascript google-maps-api-3 google-api google-geocoder


    【解决方案1】:

    geocoder.geocode() 异步工作。这意味着您应该将地图初始化放在回调函数中。目前您在地理编码器回调被触发之前初始化地图。

    function initMap() {
         var map;
         var loc = [];
         var geocoder = new google.maps.Geocoder();
         var address = "New York"; 
    
         geocoder.geocode({ 'address': address }, function (results, status) {
             if (status == google.maps.GeocoderStatus.OK) {
                 loc[0] = results[0].geometry.location.lat();
                 loc[1] = results[0].geometry.location.lng();
                 //alert(loc); 
    
                 // Create a map object and specify the DOM element for display.
                 map = new google.maps.Map(document.getElementById('map'), 
                   {
                       center: { lat: loc[0], lng: loc[1] },
                       scrollwheel: false,
                       zoom: 8
                   });
    
             } else {
                 alert("Geocode was not successful for the following reason: " + status);
             }
         });
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      Geocode API 最近改变了一些东西。他们不接受地址中的#

      【讨论】:

        猜你喜欢
        • 2011-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 2011-09-10
        • 1970-01-01
        • 2012-07-30
        • 1970-01-01
        相关资源
        最近更新 更多