两次单击并通过不同的标记获得两个坐标

时间:2013-10-12 17:04:22

标签: javascript google-maps-api-3

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

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

我该怎么做?

 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
            }); 
     });   

1 个答案:

答案 0 :(得分:0)

点击时,您已经在创建标记了。您可以通过查看pointa轻松告诉他们何时再次点击。 pointa将以值undefined开头。该值是“假的”,但是当您在Marker中存储Google地图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.)
    }
});