1

我正在使用谷歌地图jquery 谷歌地图。我打算做的是,要求用户点击地图上的一个位置,然后根据他点击的地图上的点获取他的地理位置和数据。

我尝试以下代码段:

$('#mapCanvas').gmap('click', function(overlay, latlng){
  if (latlng) {
    alert("here");
    marker = new GMarker(latlng, {draggable:true});
    var latlng = marker.getLatLng();
    var lat = latlng.lat();
    var lng = latlng.lng();
    //send these lat and lng to server side save location method through ajax
    console.log(latlng);
  }
  map.addOverlay(marker);
}); 

但这不起作用,有人可以告诉我有什么问题吗? 可以在这里找到小提琴。

谢谢!

4

1 回答 1

2

捕获事件,google.maps.event.addListener通常使用。例如,要捕获用户单击地图的时间,您可以执行以下操作:

google.maps.event.addListener(map, 'click', function(event) {
  alert(event.latLng);
});

中的click事件google.maps.Map触发 a MouseEvent,它有一个latLng属性。这会告诉您用户在地图上单击的位置。同样,google.maps.Marker行为方式相同,它会告诉您单击的标记在地图上的位置。

结合这两件事,我们可以创建一个应用程序,其中可以通过单击地图添加标记,并且可以通过单击标记获得它们的位置:

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

  // add a marker where the mouse clicked
  var marker = new google.maps.Marker({
    position: event.latLng,
    map: map
  });

  // when the marker is clicked, alert its location
  google.maps.event.addListener(marker, 'click', function(event) {
    alert('This marker is at: ' + event.latLng);
  });

});

工作示例:http: //jsfiddle.net/aLEjR/1/


顺便说一句,如果您已经有一个实例google.maps.Marker(例如,如果您自己创建了该标记),您可以通过调用该getPosition()方法来获取它的位置。您可以在此处阅读有关该方法和许多其他方法的 API 文档:

您可以通过阅读开发者指南了解更多关于如何使用 Google Maps API 的信息:

于 2013-01-14T10:49:10.397 回答