-1

我使用第三个API来定位用户的当前位置,然后将latlng提供给initMap函数,但除了灰色地图应该显示之外什么也没有显示。我也检查了控制台的错误,但没有。 Console.log还会返回latlng对象,其中包含正确的值。下面是代码:(Google map javascript api) - 将不会显示用户的当前位置

<script> 
    var mapDiv = document.getElementById('map'); 
    var pos; 
    $.get("http://ip-api.com/json", function(data) { 
     pos = new google.maps.LatLng(data.lat, data.lon); 
    }); 
    function initMap() { 
     var map = new google.maps.Map(mapDiv, { 
     zoom: 14, 
     center: pos, 
     mapTypeControl: false 
     }); 
     var marker = new google.maps.Marker({ 
     position: pos, 
     map: map, 
     draggable: false, 
     animation: google.maps.Animation.DROP, 
     title: 'Gotcha!' 
     }); 
     marker.setMap(map); 
    } 
</script> 
+0

我们没有看到你什么时候打电话initMap? – e666

+1

'$ .get'是异步的。你需要在回调函数中使用返回的数据。 – geocodezip

回答

2

试试这个代码

<script type="text/javascript"> 
     window.onload = function(){ 
     var mapDiv = document.getElementById('map'); 
     var pos; 
     $.get("http://ip-api.com/json", function(data) { 
      pos = new google.maps.LatLng(data.lat, data.lon); 
      initMap(); 
     }); 

     function initMap() { 
      var map = new google.maps.Map(mapDiv, { 
      zoom: 10, 
      center: pos 

      }); 
      var marker = new google.maps.Marker({ 
      position: pos, 
      map: map, 
      draggable: false, 
      animation: google.maps.Animation.DROP, 
      title: 'Gotcha!' 
      }); 
     } 
     } 

    </script> 
+0

谢谢!有用 –

相关问题