我使用的是谷歌地图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.
谢谢!
答案 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的更多信息