2011-11-03 29 views
2

私のアプリケーションでGoogleマップからlat/lngを取得するにはいくつかの問題があります。
「lat()」または「lng()」という警告メッセージを表示すると、マップがまったくレンダリングされません。
私はマップの上に蛇を置くコードでは、私は '未定義'のメッセージで警告を取得します。
ユーザーがマップを移動すると、ページ上のテキストフィールドにlatとlngを保存したいところです(ここではクリックしてみてください)が、ここでは動作しません。Googleマップから現在の緯度と経度を取得する方法

function initialize() { 
     var latlng = new google.maps.LatLng(44.012, 20.921); 
     var myOptions = { 
      zoom: 13, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

     google.maps.event.addListener(map, "click", function (latlng) { 
      if (latlng) { 
       alert(latlng.lat); 
      } 
     }); 
    } 

答えて

1

latlngに渡されたevent対象にする必要がありますので、それを抽出するために、あなたはこのような何かをするでしょう:。

google.maps.event.addDomListener(map, 'click', function(event) { 
    var myLatLng = event.latLng; 
    var lat = myLatLng.lat(); 
    var lng = myLatLng.lng(); 
    alert('lat '+ lat + ' lng ' + lng); 

} 
+0

あなたは 'addDomListener'で試しましたか?使用しているAPIのバージョンがわかりません。また、コンソールに何かエラーがありますか?それはいくつかの手がかりを提供するかもしれません。 –

+0

Googleマップのように現在地の自動位置情報を取得するにはどうすればいいですか? – 151291

0

あなたはまたのインスタンスによってlatlngを得ることができますGoogleマップ:

var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); // map instance 

google.maps.event.addListener(map, "click", function() { 
    var lat = map.data.map.center.lat(); 
    var lng = map.data.map.center.lng(); 
}); 
関連する問題