2015-02-03 2 views
1

Я новичок в библиотеке Open Layers и JavaScript в целом. Поэтому мне интересно, почему я не могу указать значения id или style свойств объекта Feature через аргумент opt_geometryOrPropertiesconstructor. После того, как все это работает с geometry собственности:Как инициализировать id или свойство объекта ol.Feature объекта из конструктора

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 

Как сказать, какие свойства являются устанавливаемыми через конструктор, а какие нет?

ответ

3

Чтобы ответить на ваш первый вопрос, вы не можете установить стиль в конструкторе, и кажется маловероятным, что они идут to add it to the constructor. О том, где вы можете найти, какие свойства можно задать в конструкторе, см. В разделе API documentation.

Что-то, что может быть полезно, это установить стиль в слое векторного слоя.

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); 
Смежные вопросы