2015-07-01 2 views
1

У меня есть объект с тремя геометриями на нем, основной и двумя другими. Есть ли способ укладки каждой из геометрий на passFunction? Если это точечная геометрия, а две другие - линейные геометрии, как бы я стилизовал все три в одном стиле?Openlayers 3 стиль вторичной геометрии

У меня есть доступ к доступным дополнительным геометриям, и функция styleFunction может переключать их с помощью вызова this.setGeometryName(), но после этого я немного озадачен - поскольку геометрия точки на данный момент имеет уже был стилизован (существует массив стилей, ожидающих отправки назад из функции styleFunction).

Правильно ли я думаю, что смогу создать и другие две геометрии, или же я должен иметь отдельный слой с отдельными геометриями и индивидуально стилизовать их (это добавит дополнительные служебные данные).

ответ

0

Добавить суб-геометрии, как названные «устанавливает» из функции (feature.set()), а затем вызвать их с помощью this.get('name of geometry') и место, что в ol.style.Style вызова в качестве параметра geometry, то вы можете стиль его отдельно для этого стиля ,

Предположим, что ваш subgeometry установлен на функции, как subgeom, ваш styleFunction может выглядеть следующим образом:

function(feature, resolution) { 
    return [ 
    new ol.style.Style({ 
     // main geometry style 
    }), 
    new ol.style.Style({ 
     geometry: feature.get('subgeom'), 
     // subgeom style 
    }) 
    ] 
} 
Смежные вопросы