как изменить значок маркера openlayers? - PullRequest
4 голосов
/ 03 апреля 2012

Я использую Openlayers для моего приложения.

Мне удалось показать маркер, когда я нажимаю на карту, но теперь я хочу изменить значок маркера, когда я нажимаю на это, как это сделать. Я не нашел никакого метода, как marker.setIcon();

Я действительно запутался здесь.

map.events.register("click", map , function(e){
   var opx = map.getLonLatFromPixel(e.xy) ;
   var marker = new OpenLayers.Marker(opx);
   markers.addMarker(marker);
   marker.events.register("click", marker, function(e){
    //here i want to change the icon to some other 
    popup = new OpenLayers.Popup.FramedCloud("chicken",
                         marker.lonlat,
                         new OpenLayers.Size(200, 200),
                         "example popup",
                         null, true);

     map.addPopup(popup);
       }); 
    // here i want to change to default.
  });

Ответы [ 2 ]

11 голосов
/ 03 апреля 2012

В документации по адресу:

http://dev.openlayers.org/docs/files/OpenLayers/Marker-js.html

упоминается метод setUrl для установки изображения значка.Это должно работать:

marker.setUrl('marker.png');
1 голос
/ 03 апреля 2012

Я получил ответ от здесь , вот код

marker.events.register('click', marker, function() {
  // Reset all markers.
  for (var i=0; i<markers.length; i++) {
    markers[i].icon.imageDiv.firstChild.setAttribute(
      'src', 'images/red.png');
  }
  this.icon.imageDiv.firstChild.setAttribute('src', 'images/blue.png');
});
...