Как подписаться на события OpenLayers 5.3.0 в JavaScript? - PullRequest
1 голос
/ 22 мая 2019

Я вижу, что OpenLayers 5.3.0 использует наблюдаемые.Документы также охватывают события .

Как бы я изменил этот начальный пример на .subscribe () для событий в целом?Я изо всех сил пытаюсь преодолеть разрыв между документами и использованием.

import Map from 'ol/Map';
import View from 'ol/View';
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

new Map({
  target: 'map',
  layers: [
    new TileLayer({
      source: new XYZ({
        url: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png'
      })
    })
  ],
  view: new View({
    center: [0, 0],
    zoom: 2
  })
});

Я видел примеры со старыми версиями OpenLayers, которые могут не применяться здесь.По крайней мере, в приведенном выше примере «eventListeners» не указан как свойство в 5.3.0 и кажется старым и связанным с обратным вызовом (не наблюдаемым).

Я видел более недавний похожий вопрос здесь перечислены полезные ресурсы .Я мог бы использовать пример сценария, чтобы помочь начать.

1 Ответ

1 голос
/ 22 мая 2019

Вы можете зарегистрировать события, например, на карте. В последних примерах есть пример для события moveend .

var map = new Map({
    layers: [
        new TileLayer({
            source: new OSM()
        })
    ],
    target: 'map',
    view: new View({
        center: [0, 0],
        zoom: 2
    })
});

map.on('moveend', function(evt){console.log(evt);});
...