如何从构造函数初始化ol.Feature对象的id或style属性

时间:2015-02-03 21:33:55

标签: javascript openlayers-3

我是Open Layers库和JavaScript的新手。所以我想知道为什么我不能通过id constructor参数指定Feature对象的styleopt_geometryOrProperties属性的值。毕竟它适用于geometry属性:

var g = new ol.geom.Point([0, 0]);
var feature = new ol.Feature({geometry: g});

feature.getGeometry() === g; // true

但如果我使用idstyle进行尝试,则工作:

var g = new ol.geom.Point([0, 0]);
var id = 1;
var style = new ol.style.Style;
var feature = new ol.Feature({
   geometry: new ol.geom.Point([0, 0]),
   id: id,
   style: style
});

feature.getId() === id; // false
feature.getStyle() === style; // false

如何判断哪些属性可以通过构造函数设置,哪些属性不可以?

2 个答案:

答案 0 :(得分:3)

要回答你的第一个问题,你不能在构造函数中设置样式,它们似乎不太可能to add it to the constructor。关于在哪里可以找到构造函数中可以设置的属性,请参阅API documentation

可能有用的一点是在矢量图层的图层中设置样式。

答案 1 :(得分:0)

var id = 1;
var style = new ol.style.Style;
var feature = new ol.Feature({
   geometry: new ol.geom.Point([0, 0]),
   id: id,
   style: style
});

根据我的经验,这不是真的......我使用:

var feature = new ol.Feature({
   geometry: new ol.geom.Point([0, 0]),
   style: style
});
feature.setId(id);