【问题标题】:Add a marker on mouse click and remove the existing on in openlayers?在鼠标单击时添加标记并删除openlayers中的现有标记?
【发布时间】:2013-11-11 12:32:41
【问题描述】:

我正在使用 Openlayers 地图。我想要一个功能,当用户点击地图时,应该创建标记,但同时应该删除或移除地图上已有的现有标记,并且只有最新的标记应该可见。

  var markers = new OpenLayers.Layer.Markers( "Markers" );
    markers.id = "Markers";
    me.OpenLayers.addLayer(markers);
    /*myMarker = new OpenLayers.Marker(new OpenLayers.Marker( 56.512438257836,27.335700987698 ));
     markers.addMarker(myMarker);*/

    var size = new OpenLayers.Size(30,30);
    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset);

    //map.setCenter (lonLat, zoom);
    me.OpenLayers.events.register("click", kijs_map_container, function(evt) {
        var lonlat = me.OpenLayers.getLonLatFromViewPortPx(evt.xy).transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
        $("#edit-field-jena-seta-map-openlayers-wkt").val('GEOMETRYCOLLECTION(POINT('+lonlat.lat+'  '+lonlat.lon+'))');
        var pos = me.OpenLayers.getLonLatFromPixel(evt.xy);
        alert(baltic_long);
        var marker = new OpenLayers.Marker(new OpenLayers.LonLat(baltic_lat, baltic_long),icon);
        markers.addMarker(marker);
        marker.events.register("click", marker, function(e){

        });
        //updateMaker(myMarker, pos);
    });

【问题讨论】:

    标签: javascript maps openlayers marker


    【解决方案1】:

    在创建和添加新标记之前删除图层上的所有标记:

    markers.clearMarkers(); 
    markers.addMarker(marker);
    

    更多详情请见clearMarkers

    【讨论】:

      【解决方案2】:

      可能当您将var marker 并在me.OpenLayers.events.register(); 范围之外初始化图标时,它可能会在您再次单击新标记时重新启动。

      var marker;
      icon = new OpenLayers.Icon( ... );
      
      me.OpenLayers.events.register("click", kijs_map_container, function(evt) {
          var pos = me.OpenLayers.getLonLatFromPixel(evt.xy);
          marker = new OpenLayers.Marker(pos, icon);
          markers.addMarker(marker);
      });
      

      至少我没有在这里测试过这个特定的例子,但是我正在制作地图编辑器的经验。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-24
        • 2013-06-27
        • 1970-01-01
        相关资源
        最近更新 更多