[英]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.