Остановка deck.gl переход состояния просмотра с помощью transitionInterruption

#vue.js #deck.gl

#vue.js #deck.gl

Вопрос:

Я использую vue в сочетании с deck.gl во время перехода состояния просмотра он продолжает воспроизводиться до завершения перехода, даже если он прерван.

Дека инициализации:

 this.deck = new Deck({
  canvas: 'deck-canvas',
  width: '100%',
  height: '100%',
  initialViewState: this.initialViewState,
  controller: true,
  onViewStateChange: ({ viewState }) => {
    this.map.jumpTo({
      center: [viewState.longitude, viewState.latitude],
      zoom: viewState.zoom,
      bearing: viewState.bearing,
      pitch: viewState.pitch,
    });
  },
});
  

Создание нового перехода view:

 this.deck.setProps({
  viewState: {
    ...predefinedCameraPosition,
    transitionInterpolator: new FlyToInterpolator(),
    transitionDuration: 2000,
    transitionInterruption: this.deck._onViewStateChange.bind(this)
  }
})
  

Я ожидаю, что переход прекратится, когда пользователь прервет его.

Ответ №1:

Оказывается, другая функция манипулировала deck.gl состояние слоя. Одновременное обновление ViewState исправило это.

 this.deck.setProps({
  layers: [...this.deckLayers],
  viewState: this.deck.viewState
});