Map 如何更改openlayers标记图标?
我正在将Openlayers用于我的应用程序 当我点击地图时,我成功地显示了标记,但现在我想在点击地图时更改标记图标,如何做到这一点。我没有找到像Map 如何更改openlayers标记图标?,map,openlayers,Map,Openlayers,我正在将Openlayers用于我的应用程序 当我点击地图时,我成功地显示了标记,但现在我想在点击地图时更改标记图标,如何做到这一点。我没有找到像marker.setIcon()这样的方法 我真的很困惑 map.events.register("click", map , function(e){ var opx = map.getLonLatFromPixel(e.xy) ; var marker = new OpenLayers.Marker(opx); markers.a
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.
});
我得到了答案,这是密码
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');
});
marker.events.register('click',marker,function(){
//重置所有标记。
对于(var i=0;iOpenLayers 2的文档:
提到设置图标图像的方法setUrl。这应该可以:
marker.setUrl('marker.png');
这绕过了OpenLayers API,所以有点黑客。嘿,在OpenLayers 4中,我得到一个错误,说这不是一个函数。