从谷歌地图的点击事件中获取纬度和经度

27

我已经成功地实现了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>` 

提前感谢!

2个回答

57

您可以像添加加载处理程序一样添加点击处理程序:

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

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

});

好的,但我如何从对象(e)中检索经纬度? - Anil Sharma
26
e.latlng通过getter函数公开了单独的lat和lng,因此您可以执行e.latlng.lat()和e.latlng.lng()。 - danwellman
6
我尝试着理解这个问题,发现对象的名字是“latLng”,而不是“latlng”。希望能对你有所帮助 :) - Jubayer Arefin
1
当我点击路线(从A到B的路径)时,我无法得到纬度和经度。但在其他地方点击时,我可以获取坐标。 - user5319825

9
    <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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接