簡體   English   中英

使用jQuery插件的Google Maps API:如何在點擊時獲取標記的緯度和經度?

[英]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']來獲取標記對象。 標記具有一些屬性,包括titlevisibleiconidposition

我們關心position ,它有兩個屬性, waya wa似乎是緯度,而ya似乎是經度。 所以$('#map').data()['MARKER_ID'].position.wa將為你提供緯度。 似乎有些標記具有latitudelongitude屬性,不確定為什么它不總是存在(至少從我的簡短測試),但你可以嘗試$('#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM