获取使用jquery贴图在谷歌地图中点击的点的地理位置

时间:2013-01-14 07:31:04

标签: jquery google-maps

我使用的是谷歌地图jquery google maps。 我打算做的是,要求用户点击地图上的位置,然后获取他的 地理定位,基于他点击的地图上的点的数据。

我尝试以下代码段:

$('#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);
}); 

但这不起作用,有人可以告诉我有什么问题吗? A fiddle can be found here.

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

click中的google.maps.Map事件触发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的更多信息