-1

私は3番目のAPIを使用してユーザーの現在地を特定し、latinを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

を試してみてください? – e666

+1

'$ .get'は非同期です。コールバック関数で返されたデータを使用する必要があります。 – geocodezip

答えて

2

あなたがinitMapを呼び出すないとき我々は表示されません。このコード

<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

ありがとう!できます –

関連する問題