Openlayers 3 ol.animation.pan是否超时?

杰西

我用ol3创建了一个地图,并添加了ol.animation以便从一个城市“飞”到另一个城市。单击开始按钮后,动画应开始几秒钟。因此,它应该像这样工作:

  1. 地图以“ Eifel”点为中心
  2. 点击开始按钮
  3. 三秒钟后,开始飞往“柏林”的航班(需要2秒)
  4. 在柏林停留1秒钟,然后飞往“斯图加特”

以下代码几乎可以使用,但是可以直接切换到“斯图加特”。我认为问题出在“ map.getView()。setCenter(斯图加特)”上。在最后。如何使它按预期工作?

    // Klick auf Button -> Start
var startflight = document.getElementById('start-flight');

// Flug 1: Eifel > Berlin
startflight.addEventListener('click', function() {
  var duration = 2000;
  var start = (new Date()).getTime()+3000;
  var pan = ol.animation.pan({
    source: (view.getCenter(Eifel)),
    start: start
  });

  map.beforeRender(pan);
  map.getView().setCenter(Berlin);
},
true);

// Flug 2: Berlin > Stuttgart
    startflight.addEventListener('click', function() {
  var duration = 2000;
  var start = (new Date()).getTime()+6000;
  var pan = ol.animation.pan({
    source: (view.getCenter(Berlin)),
    start: start
  });

  map.beforeRender(pan);
  map.getView().setCenter(Stuttgart);
},
true);

期待您的回答,

杰西

蒂姆

您可以执行以下操作:

startflight.addEventListener('click', function() {
  var duration = 2000;
  var start = Date.now() + 3000;  // use Date.now()
  var pan = ol.animation.pan({
    duration: duration,
    source: (view.getCenter(Eifel)),
    start: start
  });

  map.beforeRender(pan);
  map.getView().setCenter(Berlin);
}, true);

但这将在您进行渲染后立即触发setCenter()因此,地图将变为空白然后进行渲染。可能更好的方法是将整个内容包装在一个文件中setTimeout

startflight.addEventListener('click', function() {
  var duration = 2000;
  setTimeout(function () {
    var pan = ol.animation.pan({
      duration: duration,
      source: view.getCenter()
    });
    map.beforeRender(pan);
    map.getView().setCenter(Berlin);
  }, 3000);
}, true);

如果您想然后飞往另一个城市,则可以添加另一个平移功能。我要说的是,如果您有很多这样的多城市平底锅,那么您将需要对其进行更多抽象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Openlayers 3 center map

来自分类Dev

Openlayers 3调试

来自分类Dev

UTFGrid支持或OpenLayers 3的示例

来自分类Dev

Drag map lost in OpenLayers 3 when using hover SelectInteraction with ol.events.condition.mouseMove

来自分类Dev

将悬停SelectInteraction与ol.events.condition.mouseMove结合使用时,在OpenLayers 3中丢失的拖动地图

来自分类Dev

在OpenLayers 3中更新底图

来自分类Dev

Openlayers 3 stop event propagation

来自分类Dev

OpenLayers 3 BBOX策略

来自分类Dev

OpenLayers 3主版本

来自分类Dev

拖动功能POLYGON OL3

来自分类Dev

ol3 / OpenLayers 3:如何对ol.format.KML()使用readNetworkLinks方法?

来自分类Dev

Openlayers 3 readExtensions GPX

来自分类Dev

openlayers3检查兴趣点是否在边界框中

来自分类Dev

Openlayers 3 ol.animation.pan是否超时?

来自分类Dev

OpenLayers:如何在3.13v中替换ol.FeatureOverlay?

来自分类Dev

OpenLayers 3交互样式与ol.feature.setStyle发生冲突

来自分类Dev

CakePHP 3:创建ul / ol列表

来自分类Dev

OpenLayers v6.1.1 ol.Overlay中的奇怪溢出行为

来自分类Dev

未定义Openlayers ol

来自分类Dev

如何在openlayers 6和ol-ext中更改默认图标?

来自分类Dev

ZoomToExtent OpenLayers 3

来自分类Dev

OL3:选择图像/标记将拖放到另一个坐标(Visual Issues OpenLayers 3)

来自分类Dev

OpenLayers 3直线

来自分类Dev

Openlayers 3不良坐标

来自分类Dev

React + Mobx + Openlayers 3

来自分类Dev

openlayers3 undefined不是ol.source.StaticVector上的构造函数错误

来自分类Dev

转换 OL3 几何 EPSG

来自分类Dev

JS OpenLayers 在点击时获取 ol/Feature 值

来自分类Dev

如何将基于 Node 的 OpenLayers 项目转换为使用本地 ol 文件?

Related 相关文章

热门标签

归档