【问题标题】:how to change openlayers marker icon?如何更改 openlayers 标记图标?
【发布时间】:2012-04-03 17:44:29
【问题描述】:

我在我的应用程序中使用 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.
  });

【问题讨论】:

    标签: map openlayers


    【解决方案1】:

    OpenLayers 2 上的文档:

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

    提到了 setUrl 方法来设置图标图像。这应该有效:

    marker.setUrl('marker.png');
    

    【讨论】:

    • 嘿,在开放的第 4 层中,我收到一条错误消息,说这不是函数。
    【解决方案2】:

    我得到了here的答复,这是代码

    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');
    });
    

    【讨论】:

    • 这绕过了 OpenLayers API,所以有点骇人听闻。
    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    相关资源
    最近更新 更多