-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

謝謝!有用 –

相關問題