У вас есть несколько возможных вариантов.
A) Если у вас есть только один набор данных, то вы можете использовать StyleFunction
. Смотрите эту ol3 vector example, более конкретно этот раздел кода:
var vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
url: 'https://openlayers.org/en/v3.20.1/examples/data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
}),
style: function(feature, resolution) {
style.getText().setText(resolution < 5000 ? feature.get('name') : '');
return style;
}
});
Посмотреть на style
недвижимость? Это может быть ol.style.Style
или функция стиля, как показано выше. Функция получает функцию и текущее разрешение вида карты в качестве аргумента и вызывается каждый раз, когда функция получает визуализацию (или повторно отображается). Возврат ol.style.Style
или массив объектов стиля будут отображать эту функцию с помощью/the styles.
Эта функция может иметь уникальные свойства, то есть feature.getProperties()
. Используя столько свойств внутри функции, вы можете вернуть уникальный массив уникальных объектов стиля.
Вот еще complex ol3 example featuring style functions, который вы можете посмотреть и иметь пример динамического стиля в зависимости от разрешения. Это может дать вам лучшее представление о том, что вы можете сделать с характеристиками.
B) Если у вас есть несколько наборов данных, то вы можете создать один векторный слой каждого набора данных и определить уникальный объект стиля на слое, который вывело бы имеет все то же самое.
Я тоже сталкиваюсь с той же проблемой. Вы также можете попробовать leaflet.js –
Но мне нужно решение в OpenLayers 3. – SHK