2017-11-24 33 views
-2

私はこのコードを使用してgoogle maps apiを介してユーザーの現在地を取得しています。私は緯度と経度の形式で位置を取得しており、LatLng変数でその場所を取得しています。経度と緯度から現地名を取得するには?

その後、私は緯度と経度をアドレスに変換していますが、動作していません。

if(navigator.geolocation) { 
navigator.geolocation.getCurrentPosition(function (p){ 
var LatLng = new google.maps.LatLng(p.coords.latitude,p.coords.longitude); 
    alert(LatLng); 
    alert(p.coords.latitude); 
    alert(p.coords.longitude); 
    var mapOptions = { 
     center: LatLng, 
     zoom: 13, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var geocoder = new google.maps.Geocoder(); 
    geocoder.geocode({ 'LatLng': LatLng }, function (results, status){ 
     alert(geocoder); 
     if (status == google.maps.GeocoderStatus.OK){ 
      if (results[1]){ 
       alert("Location: " + results[1].formatted_address); 
      } 
     } 
}); 
+4

** javascript!= java ** – ParkerHalo

+1

タグを削除すると、JavaとJavaのjavascriptが異なる – Raddix

答えて

0

最初に、パーカーがコメントしたように、jspタグとjavaタグはあなたの投稿とは無関係です。私はそれを削除した。

逆ジオコーディングを実行する必要があります。 逆の処理(マップ上の位置を人間が判読可能なアドレスに変換する処理)は、逆ジオコーディングと呼ばれます。

Reverse GeocodingのGoogleマップのURLを参照してください。

var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])}; 
geocoder.geocode({'location': latlng}, function(results, status) { 
    if (status === 'OK') { 
     if (results[0]) { 
     map.setZoom(11); 
     var marker = new google.maps.Marker({ 
     position: latlng, 
     map: map 
     }); 
     infowindow.setContent(results[0].formatted_address); 
     infowindow.open(map, marker); 
     } else { 
     window.alert('No results found'); 
     } 
    } else { 
     window.alert('Geocoder failed due to: ' + status); 
    } 

はそれが助け場合、私に教えてください、場所に& LAN LATマッピングの以下のスニペットを参照してください。

関連する問題