如何从构造函数初始化 ol.Feature 对象的 id 或样式 属性
How to initialize ol.Feature object's id or style property from the constructor
我是 Open Layers 库的新手,一般来说 JavaScript。所以我想知道为什么我不能通过 opt_geometryOrProperties
constructor 参数指定 Feature 对象的 id
或 style
属性的值。毕竟它适用于 geometry
属性:
var g = new ol.geom.Point([0, 0]);
var feature = new ol.Feature({geometry: g});
feature.getGeometry() === g; // true
但是如果我尝试使用 id
或 style
,它 不会 起作用:
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);
我是 Open Layers 库的新手,一般来说 JavaScript。所以我想知道为什么我不能通过 opt_geometryOrProperties
constructor 参数指定 Feature 对象的 id
或 style
属性的值。毕竟它适用于 geometry
属性:
var g = new ol.geom.Point([0, 0]);
var feature = new ol.Feature({geometry: g});
feature.getGeometry() === g; // true
但是如果我尝试使用 id
或 style
,它 不会 起作用:
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);