[OpenLayers-Dev] delete a marker when i redraw an other marker

Eric Lemoine eric.c2c at gmail.com
Sat Feb 23 12:51:02 EST 2008

Hi Stéphane,

See my comments inline.

On Thu, Feb 21, 2008 at 5:20 PM, steve1000 <ligerstephane at free.fr> wrote:
>  All is in the title, i would want to erase the marker when i redraw an other
>  marker.
>  My Code:
>  map.events.register("click", map, function(e,marker) {
>                 //markers.removeMarker();my code who is the problem
>                 //markers.clearMarkers();my code who is the problem

clearMarkers() is indeed the method to call to remove all markers from
a markers layer. The removeMarker() takes a marker as an argument, it
has no effect if called with no argument.

>                 var lonlat = map.getLonLatFromViewPortPx(e.xy);
>                 document.getElementById('Nord').value = lonlat.lat;
>                 document.getElementById('Est').value = lonlat.lon;
>                 var markers = new OpenLayers.Layer.Markers( "Markers" );

I don't understand why you create a new markers layer on each click.
Instead, I think you'd be better off creating one markers layer
outside the click handler and use that layer for adding a marker on
each click.

>                 map.addLayer(markers);
>                 var size = new OpenLayers.Size(10,17);
>                 var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
>                 var icon = new OpenLayers.Icon('../img/marker.png',size,offset);
>                 markers.addMarker(new OpenLayers.Marker(new
>  OpenLayers.LonLat(lonlat.lon,lonlat.lat),icon));
>                 markers.addMarker(new OpenLayers.Marker(new
>  OpenLayers.LonLat,icon.clone(lonlat.lon,lonlat.lat)));

Why would you add two markers?

>                 });
>  I am no example for the use of this function : markers.removeMarker(); and
>  markers.clearMarkers(); so if you think that you would to help me please
>  write me.

As I said, you clearMarkers() to remove all markers of a markers layer.


More information about the Dev mailing list