Стили, загруженные из mongoDB geojson - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть карта со слоем, содержащим аннотации, сделанные пользователем, которые хранятся в формате geo json в базе данных mongoDB.

Когда страница загружается, я создаю векторный слой для отображения аннотаций как таковых:

features = new ol.format.GeoJSON().readFeatures(response);
var layer = new ol.layer.Vector({
      source: new ol.source.Vector({features: features})
});

Это прекрасно работает, и я могу отображать все функции в стиле по умолчанию. С каждой функцией, однако, связано свойство стиля. Как мне go пройти через все элементы созданного мной слоя и изменить каждую аннотацию на правильный стиль?

Я пытался создать функцию пользовательского стиля при создании слоя следующим образом:

var layer = new ol.layer.Vector({
      source: new ol.source.Vector({features: features})
      style: customStyleFunction
});

Хотя это работает, функция customStyleFunction запускается при каждом панорамировании, масштабировании и т. Д. c. Я только wi sh для стиля, который будет применяться один раз, когда данные импортируются.

Любая помощь будет высоко ценится!

Каждая функция

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете использовать

layer.getSource().on('addfeature', function(feature) {
  feature.setStyle(customStyleFunction(feature));
});
...