2012-02-12 14 views
18

Googleマップを正常に実装しました。しかしもう1つのことが残っています。ユーザーが地図(任意の座標)をクリックすると、経度と緯度のデータを取得する必要があります。私のコード全体は次のようになります:Googleマップのクリックイベントで緯度と経度を取得

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    var map; 
    function initialize() { 
     var myLatlng = new google.maps.LatLng(<?=$decimalValueLon?>,<?=$decimalValueLat?>); 
     var myOptions = { 
     zoom: 17, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.SATELLITE 
    }; 


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

    // marker STARTS  
    var marker = new google.maps.Marker({ 
    position: myLatlng, 
    title:"Click to view info!" 
}); 
    marker.setMap(map); 
    // marker ENDS 

    // info-window STARTS 
    var infowindow = new google.maps.InfoWindow({ content: "<div class='map_bg_logo'><span style='color:#1270a2;'><b><?=$row->bridge_name?></b> (<?=$row->bridge_no?>)</span><div style='border-top:1px dotted #ccc; height:1px; margin:5px 0;'></div><span style='color:#555;font-size:11px;'><b>Length: </b><?=$row->bridge_length?> meters</span></div>" }); 
    google.maps.event.addListener(marker, 'click', function() { 
     infowindow.open(map,marker); 
    }); 
    // info-window ENDS 
} 

    google.maps.event.addDomListener(window, 'load', initialize); 
</script>` 

ありがとうございます!

答えて

44

ロード・ハンドラ持っているようにあなたは、クリックハンドラを追加することができます。

google.maps.event.addListener(map, "click", function (e) { 

    //lat and lng is available in e object 
    var latLng = e.latLng; 

}); 
+0

[OK]を、どのように私は、オブジェクト(E)から経度と緯度を取得するのでしょうか? –

+17

e.latlngはゲッター関数を使って個々のlatとlngを公開するので、e.latlng.lat()とe.latlng.lng()を実行することができます – danwellman

+6

私はこれを追跡しようとしていて、オブジェクトの名前が'latLng'ではなく 'latLng'。それが助けてくれると期待しています:) –

8
<script> 
     var map; 
     function init_map() { 
      var opts = { 'center': new google.maps.LatLng(35.567980458012094,51.4599609375), 'zoom': 5, 'mapTypeId': google.maps.MapTypeId.ROADMAP } 
       map = new google.maps.Map(document.getElementById('mapdiv'), opts); 

      google.maps.event.addListener(map,'click',function(event) { 
       document.getElementById('latlongclicked').value = event.latLng.lat() 
       document.getElementById('lotlongclicked').value = event.latLng.lng() 
      }); 

      google.maps.event.addListener(map,'mousemove',function(event) { 
       document.getElementById('latspan').innerHTML = event.latLng.lat() 
       document.getElementById('lngspan').innerHTML = event.latLng.lng() 
      }); 

     } 
     google.maps.event.addDomListener(window, 'load', init_map); 
    </script> 
関連する問題