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

How to initialize ol.Feature object's id or style property from the constructor

我是 Open Layers 库的新手,一般来说 JavaScript。所以我想知道为什么我不能通过 opt_geometryOrProperties constructor 参数指定 Feature 对象的 idstyle 属性的值。毕竟它适用于 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

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

要回答你的第一个问题,你不能在构造函数中设置样式,而且它们似乎不太可能 to add it to the constructor. Concerning where you can find what properties can be set in the constructor, see the API documentation

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

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