[英]Google Maps API using jQuery Plugin: How to get a marker's latitude and longitude on click?
我正在使用Google Maps API V3的插件。 我用它在地图上放置一个标记,并允许用户将标记拖动到地图上的某个位置。 我想点击标记的lat,lng。
goMap插件页面: http ://www.pittss.lv/jquery/gomap/index.php
此功能首先设置标记。
$("#map").goMap({
zoom: 16,
maptype: 'ROADMAP',
navigationControl: false,
mapTypeControl: false,
scrollwheel: true,
disableDoubleClickZoom: false,
markers: [{
draggable:true,
latitude: data.lat,
longitude: data.lng,
icon:'./images/pink.png'
}]
});
我尝试在goMap()上调用本机getLat()方法,但我不认为我这样做了。 任何帮助深表感谢。
经过一番调查后,看起来它使用jQuery的data()
函数将数据绑定到地图上。 您可以通过$('#map').data()
获取$('#map').data()
,其中包含有关标记的信息。
每个标记都有一个id,您可以通过数组$.goMap.markers
获取标记的id。 请注意, $.goMap.markers
只包含ID而不是标记本身的字符串。
您需要使用该数组来查找所需的ID(或者您可能提前知道它),然后调用$('#map').data()['MARKER_ID']
来获取标记对象。 标记具有一些属性,包括title
, visible
, icon
, id
和position
。
我们关心position
,它有两个属性, wa
和ya
。 wa
似乎是纬度,而ya
似乎是经度。 所以$('#map').data()['MARKER_ID'].position.wa
将为你提供纬度。 似乎有些标记具有latitude
和longitude
属性,不确定为什么它不总是存在(至少从我的简短测试),但你可以尝试$('#map').data()['MARKER_ID'].latitude
而不是。
希望这可以帮助。
我不知道为什么,但道具名称经常随时间变化......似乎最好的解决方案是获取关键名称并使用知道lat&lng。
所以,例如,如果你想在拖动后获得坐标,你将使用:
$.goMap.createListener({type:'marker', marker:'MARKER_ID'}, 'dragend', function() {
var i_prop = 2;
var map_data_marker = $('#map').data()['MARKER_ID'].position;
var map_data_marker_keys = [];
for (var key in map_data_marker)
{
if (i_prop--)
{
if (map_data_marker.hasOwnProperty(key))
{
map_data_marker_keys.push(key);
}
}
else
{
break;
}
}
var lat_lng = map_data_marker[map_data_marker_keys[0]] + ', ' + map_data_marker[map_data_marker_keys[1]];
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.