2010-12-22 42 views
3

我正在使用Google Maps API V3的插件。我用它在地圖上放置一個標記,並允許用戶將標記拖動到地圖上的一個點上。我想要點擊標記的緯度,經度。使用jQuery插件的Google Maps API:如何在點擊時獲取標記的經緯度?

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()方法,但我認爲我沒有這樣做。任何幫助深表感謝。

+1

我一直在尋找像goMap插件這個問題我指向正確的方向。謝謝。 – 2012-03-10 02:39:21

回答

4

經過一番探索之後,它看起來像使用jQuery的data()函數將數據綁定到地圖。您可以通過$('#map').data()獲取數據,其中包含標記信息。

每個標記都有一個ID,您可以通過數組$.goMap.markers獲得標記的ID。請注意,$.goMap.markers只包含ID爲字符串而不是標記本身。

您需要使用該數組來找到您想要的標識(或者您可能會提前知道該標識),然後致電$('#map').data()['MARKER_ID']以獲取標記對象。標記具有一些屬性,包括title,visibleicon,idposition

我們關心position,它有兩個屬性,wayawa似乎是緯度,而ya似乎是經度。例如,$('#map').data()['MARKER_ID'].position.wa會爲您提供緯度。看起來有些標記具有latitudelongitude屬性,不知道爲什麼這並不總是存在(至少從我的簡短測試中),但您可以嘗試使用$('#map').data()['MARKER_ID'].latitude

希望這會有所幫助。

+0

哈哈沒問題,很高興我能幫上忙。 – munchybunch 2010-12-22 21:13:16

1

我不知道爲什麼,但道具名稱經常隨時間變化...似乎最好的解決方案是獲取關鍵名稱和用途來了解經緯度& lng。

所以,如果你想有一個阻力後獲得COORDS,例如,您將使用:

$.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]]; 

}); 
相關問題