Так я использую одного векторного слоя, где я положил все мои:OpenLayers - несколько стилей для различных типов геометрии
- Очки
- полилиний
- Полигоны
Это мой код:
var source = new ol.source.Vector({ wrapX: false });
var vector = new ol.layer.Vector({
source: source,
style: // styleFunction or style or [style] don't know...
});
И хочу стилизовать функцию по их типу. Я нашел это в documentation, но не могу понять, как использовать его:
... отдельный стиль редактирования имеет следующие значения по умолчанию:
styles[ol.geom.GeometryType.POLYGON] = [
new ol.style.Style({
fill: new ol.style.Fill({
color: [255, 255, 255, 0.5]
})
})
];
styles[ol.geom.GeometryType.LINE_STRING] = [
...
];
styles[ol.geom.GeometryType.POINT] = [
...
];
Любые идеи?
Проблема с функция стиля заключается в том, что она вызывается каждый раз, когда вы перемещаете карту. Но это метод, используемый в официальной документации, поэтому я думаю, что это способ сделать это. Благодаря ! – Mehdiway
Итак, вы в порядке с ответом, но вам не очень нравится, что функция стиля работает на каждом перемещении карты. Я настаиваю, что вам это не нравится, потому что это должно дать вам плохую производительность. Если я прав, вы можете кэшировать свои стили и улучшать производительность. Если это ваше дело, попросите меня предоставить вам снимок кода, чтобы кешировать ваш стиль. – pavlos
Все в порядке, 'getStyleFunction' получает стиль функции вместо назначения нового при каждом выполнении функции – Mehdiway