0

我有一个功能,我可以通过点击地图将坐标输入。

我想通过在地图上单击两次来获取地图上两点的两个坐标以获取它们之间的方向。

我怎样才能做到这一点?

 var pointa;
        var pointb;
     google.maps.event.addListener(map,'click',function(event){
          var point=new google.maps.LatLng(event.latLng.lat(),event.latLng.lng());
          document.path.lat1.value=event.latLng.lat();
          document.path.lon1.value=event.latLng.lng();

            pointa=new google.maps.Marker({
                map: map,
                position: point,
                icon:'http://google.com/mapfiles/kml/paddle/A.png ',
                draggable:true
            }); 
     });   
4

1 回答 1

0

当他们点击时,您已经创建了一个标记。通过查看 ,您可以很容易地判断他们第二次单击的时间pointapointa将具有undefined开始的价值。该值是“错误的”,但是当您在其中存储 Google 地图Marker参考时,pointa它不再是错误的。所以你可以使用“ if (!pointa)”来知道你正在处理第一次点击:

var pointa;
var pointb;
google.maps.event.addListener(map, 'click', function (event) {
    var point = new google.maps.LatLng(event.latLng.lat(), event.latLng.lng());
    document.path.lat1.value = event.latLng.lat();
    document.path.lon1.value = event.latLng.lng();

    if (!pointa) {
        // This is the first click
        pointa = new google.maps.Marker({
            map: map,
            position: point,
            icon: 'http://google.com/mapfiles/kml/paddle/A.png ',
            draggable: true
         });
    }
    else {
        // This is a subsequent click (the second, third, etc.)
    }
});
于 2013-10-12T17:08:21.517 回答