我正在尝试设置LineString的样式,但它似乎不起作用。这是我的代码:
function connectStationFeatures(feat1, feat2){
var lineLayer = getLinesLayer();
var point1 = feat1.geometry;
var point2 = feat2.geometry;
var style = new OpenLayers.StyleMap({
'fillColor':"#FF8C00",
'strokeWidth':10,
'strokeDashstyle':"dashdot"
});
var line = new OpenLayers.Geometry.LineString([point1, point2]);
lineLayer.addFeatures([new OpenLayers.Feature.Vector(line, {styleMap:style})]);
}
或者我试过:
function connectStationFeatures(feat1, feat2){
var lineLayer = getLinesLayer();
var point1 = feat1.geometry;
var point2 = feat2.geometry;
var style = new OpenLayers.StyleMap({
'fillColor':"#FF8C00",
'strokeWidth':10,
'strokeDashstyle':"dashdot"
});
var line = new OpenLayers.Geometry.LineString([point1, point2]);
var lineFeat = new OpenLayers.Feature.Vector(line);
lineFeat.styleMap = style;
lineLayer.addFeatures([lineFeat]);
}
非常感谢任何帮助! THX
答案 0 :(得分:1)
您必须将StyleMap添加到图层,而不是添加到
vectorLayer = new OpenLayers.Layer.Vector('Foo', {styleMap: style});
定义样式有几种不同的方法 - 使用hash,Style或StyleMap对象;您可以将它们附加到要素或图层。这是一个很好的解释:http://docs.openlayers.org/library/feature_styling.html