2013-08-29 3 views
3

Я внедрил карту открывателя с несколькими маркерами с 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

Я не нашел способ сделать это в рамках слоя, но вы можете сделать это для каждого маркера в слое:

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/

Проблема с этим отношение состоит в том, что со многими маркерами вы получите много зарегистрированных событий и, возможно, проблем с производительностью.

1

Это может помочь вам

var markerslayer = map.getLayer('Markers');//get marker layer 
var marker = markerslayer.markers[0];//get marker 
var lonlat = marker.lonlat;//get marker latlon(position) 
Смежные вопросы