【问题标题】:How to get the marker position in openlayer如何在openlayer中获取标记位置
【发布时间】:2013-08-29 07:41:03
【问题描述】:

我已经用 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");
    });

【问题讨论】:

    标签: javascript openlayers


    【解决方案1】:

    这可能对你有帮助

    var markerslayer = map.getLayer('Markers');//get marker layer
    var marker = markerslayer.markers[0];//get marker
    var lonlat = marker.lonlat;//get marker latlon(position)
    

    【讨论】:

      【解决方案2】:

      我还没有找到在图层范围内执行此操作的方法,但您可以对图层中的每个标记执行此操作:

       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/

      这种态度的问题在于,如果有很多标记,您会收到很多已注册的事件,并且可能会出现性能问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-29
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 2017-10-07
        相关资源
        最近更新 更多