Openlayers Feature.Vector仅使用默认样式

时间:2014-10-10 10:40:37

标签: css vector styles openlayers

我正在从标记更改为矢量图层,我不能让我的网站使用任何类型的非默认图标,无论我放在externalGraphic样式属性对地图没有影响。我只看到橙色圆圈。确切地说,无论我在Openlayers.Style中放置什么来设计我的点特征,我都会得到图标的默认外观。 应该很容易,但是我试了几天而且不能让它起作用,所以我来这里寻求帮助。当warstwa_ikon是标记层时,一切都很好,但我需要额外的功能。

这就是我的造型代码:

var StylIkony = new OpenLayers.Style({
    externalGraphic : '${symbol}',
    graphicWidth    : 15,
    graphicHeight   : 15,
    cursor          : 'pointer' 
});

var StylWarstwyIkon = new OpenLayers.StyleMap ({
    default: StylIkony,
    delete: StylIkony,
    select: StylIkony,
    temporary: StylIkony 
});

warstwa_ikon = new OpenLayers.Layer.Vector("Ikony Lokali",{ eventListeners: { "featureselected": WywolajRamke }});
warstwa_ikon.StyleMap = StylWarstwyIkon;
map.addLayer(warstwa_ikon);

已经执行了生成功能的代码:

WspolrzedneIkony = new OpenLayers.Geometry.Point(2279231, 7127620);
Ikona = new OpenLayers.Feature.Vector(WspolrzedneIkony, 
        { "symbol": "../GRAFIKI/IkonyLokali/10.png", "idLokalu": 1 });
warstwa_ikon.addFeatures([Ikona]);
WspolrzedneIkony = new OpenLayers.Geometry.Point(2279245, 7127630);
Ikona = newOpenLayers.Feature.Vector(WspolrzedneIkony,
        { "symbol": "../GRAFIKI/IkonyLokali/6.png", "idLokalu": 2 });
warstwa_ikon.addFeatures([Ikona]);

我的矢量图层的DOM(warstwa_ikon)StyleMap:

http://s24.postimg.org/hwfjakg0l/stylemap.png

我的矢量图层的DOM首先是Feature,应该设置样式:

http://s9.postimg.org/oxlocyku7/feature.png

抱歉,我还不能包括普通图片。我应该补充一点,这不是访问图标图像文件的问题,我不能让图层使用任何类型的图像,甚至从互联网链接。

1 个答案:

答案 0 :(得分:1)

将图层创建时的StyleMap声明为:

 warstwa_ikon = new OpenLayers.Layer.Vector("Ikony Lokali", {
     styleMap: StylWarstwyIkon,
     eventListeners: ...
 });

并删除:

 warstwa_ikon.StyleMap = StylWarstwyIkon;