Захватить функции с карты openlayers? - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь вытянуть объект из моего объекта карты openlayers и изменить цвет объекта на карте.

olMap.getLayers().getArray() 

- это то, что я использовал для получения слоев.Это на самом деле функции?Я хочу применить простой стиль, такой как:

    let selected_polygon_style = {
      strokeWidth: 5,
      strokeColor: '#ff0000'
    };

, когда я вызываю что-то вроде olMap.getLayers().getArray()[0].getSource().getFeatures();Я получаю неопределенную функцию.

1 Ответ

0 голосов
/ 13 октября 2018

getFeatures будет неопределенным, если layer [0] не является векторным слоем и вызов его вызовет ошибку.Чтобы найти объекты в любом из слоев карты, проверьте, определен ли getFeatures для источника слоя, прежде чем вызывать его:

olMap.getLayers().getArray().forEach(function(layer){
  if (layer.getSource().getFeatures) {
    var features = layer.getSource().getFeatures();
    ....
  }
});
...