我已经用drupal实现了一个带有几个标记的openlayer地图。当我点击标记时,我想获得标记的经度和纬度。我刚刚编写了一个代码,显示了点击地图时的经度和纬度。相反,我只想在我点击我在地图上绘制的标记时提醒位置。如何获得标记的经度和纬度?
jQuery(function ($) {
var ol_data = $('.openlayers-map').data('openlayers');
var map = ol_data.openlayers;
map.events.register("click", map, function (e) {
var lonlat = map.getLonLatFromPixel(e.xy);
alert("You clicked near " + lonlat.lat + " N, " + +lonlat.lon + " E");
});
答案 0 :(得分:1)
这可能对您有所帮助
var markerslayer = map.getLayer('Markers');//get marker layer
var marker = markerslayer.markers[0];//get marker
var lonlat = marker.lonlat;//get marker latlon(position)
答案 1 :(得分:0)
我还没有找到在图层范围内执行此操作的方法,但您可以对图层中的每个标记执行此操作:
marker.events.register('click', marker, function (evt) {
alert("lon: "+evt.object.lonlat.lon+" , lat: "+evt.object.lonlat.lon);
});
jsFiddle:http://jsfiddle.net/Kenny806/SmMxW/1/
这种态度的问题在于,通过许多标记,您将获得大量注册事件和可能的性能问题。