繁体   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