Openlayer animate动效优化

本文讲述了在使用OpenLayers实现定位飞行功能时遇到的问题,包括平移速度过快导致瓦片加载不及时,用户体验下降。通过分析问题,提出了优化方案,调整动画流程,动态计算拉伸zoom,确保平移操作不影响瓦片加载。同时分享了一个优化后的函数,允许配置瓦片加载速度、平移时间和拉伸时间。文章最后提及了相关职位招聘信息。
摘要由CSDN通过智能技术生成

一、问题产生

问题产生很简单。公司要做一个需求,定位飞行功能,即,点击定位,获取经纬度,一个飞行的动画,飞到目标点和层级。拿到这个需求的时候,心里想,这简单啊。直接查OpenLayer API.找到了这样的一个函数:

view.animate(var_args)

于是手气刀落,敲下了这样一段代码:

//获取目标定位点等函数省略
this.map.getView().animate({
   center: center, zoom: 13}) // 同时移动和放大

顺带提一下。注意参数不同,表现也是不同的。

  • 同时配置了center和zoom,那么表现就是同时移动和放大。
  • 先配置center,再配置zoom,那么表现就是先平移,再缩放
  • 反之,先配置zoom,再配置center,表现是先缩放,再平移

问题来了:
在这里插入图片描述

没错。跨地区过快的平移速度会导致瓦片加载跟不上屏幕移动的速度,用户体验很差。

二、问题分析:

可以采用先拉伸视角,再平移,再缩放视角的方式解决。于是我们就有了这样一段代码:

this.map.getView().animate({
   zoom: 7,duration:2000}, {
   center: center
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值