【前端小记】--OpenLayers--2.地图进行移动并放大视野动画后定位到一个点

本文介绍了如何在OpenLayers中实现地图点击后通过动画效果移动并放大视野,定位到指定点位的需求。通过简化官网的View Animation示例,特别是Fly to Bern功能,创建一个自定义的flyTo方法,接收经度、纬度和地图对象作为参数,实现了坐标转换后的地图动画定位。
摘要由CSDN通过智能技术生成

需求描述

在地图的图层中,有些需要和用户进行交互,比如现在有个需求:列表中是点位名称,点击列表的某一行后在地图上定位到所点击到点位,这个过程需要有一个缩放移动视野的动画。

解决思路

OpenLayers官网有一个例子View Animation,这个例子中里面有多种移动视野的方法,针对这个需求吗,我们选择Fly to Bern即可,这个例子的代码特别多,但是实际运用起来其实用不到太多,我们所需要进行的操作就是把这个方法摘出来并进行简化。
官网示例

具体实现

因为我们想要Fly to Bern的效果,所以我们只需要找到flyTo的函数,然后摘出来简化它就可以了,我在实现这个需求时同样也给它封装了一个flyTo方法。
在这个方法中需要传递三个参数,longitude是中心点经度,latitude是中心点纬度,map是要进行移动视野的地图,其中transform和wgs84togcj02都是对坐标的转换,如果不需要可忽略这一步。

import {
    transform } from 'ol/proj';

funtion flyTo = (longitude, latitude, map) => {
   
  //这里把WGS84坐标转换为GCj02坐标
  let lnglat = wgs84togcj02(longitude, latitude);
  //duration 用于设置移动的速度
  const duration = 2000;
  //zoom是地图的视野
  const zoom = map.
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值