一款地图引擎,搞定多种视角变换!

刚接触Mapmost Web端地图引擎的小伙伴可能会觉得我们API有点多,不知道从哪里入手。

今天就先从视角变换入手,给大家分享在三维地图场景中常用到的5种视角变换的方式,以及每一种方式的不同用途。

一、地图视角切换

  • flyTo - 过渡飞行(有动画)

当我们对场景进行导览或者讲述地图故事时,需要对地图场景进行漫游。这时就可以用到我们SDK提供的这个方法,它可以对地图中心、缩放级别、方位角和倾斜角度做任意组合改变,使其沿着一条曲线以平滑的飞行效果从一个视图移动到另一个视图。该方法能够轻松实现从鸟瞰到街景的流畅切换。

场景制作于Mapmost SDK for WebGL

arduino 复制代码
map.flyTo({
  "center": [120.6745, 31.3184], // 飞行结束后地图的初始中心点
  "zoom": 17.1609, // 飞行结束后地图的层级
  "bearing":-18.5196, // 飞行结束后地图的方位
  "pitch": 38, // 飞行结束后地图的倾斜角
  "speed": 2, // 与curve相关的动态转换的平均速率
  "curve": 1, // 随着飞行路径出现的缩放曲线
});
  • easeTo - 过渡飞行(有动画)

这个接口和flyTo类似,但是它的飞行路径更简单。当我们需要简单的飞行动画效果或者想要精准控制飞行的时间时,可以使用这个接口哦。

场景制作于Mapmost SDK for WebGL

arduino 复制代码
map.easeTo({
  "center": [120.67177, 31.317], // 地图中心点
  "zoom": 15.9, // 地图层级
  "pitch": 83, // 地图倾斜角
  "bearing": -116.7657, // 地图方位角
  "duration":3000, // 动画的持续时间(毫秒)
});
  • jumpTo - 瞬移(无动画)

当用户在导航选择起点或终点(如标记、图层上的点或地图上的某个区域)时,我们需要快速定位到用户点击的地图位置。这时,我们就可以使用jumpTo方法,它可以将地图的状态改变到一个新的位置,并且,不包括任何平滑过渡的效果。

添加图片注释,不超过 140 字(可选)

arduino 复制代码
map.jumpTo({
  "center": [120.6718, 31.3177], // 地图中心点
  "zoom": 15.9, // 地图层级
  "pitch": 83, // 地图倾斜角
  "bearing": -116.7657, // 地图方位角
});

二、相机视角切换

上面三种方法都是对地图视角进行切换,下面再介绍两种关于相机的视角切换!

  • cameraFlyTo - 过渡飞行(有动画)

当我们需要跟随安防人员巡检或者监控某辆车的行驶路径时,我们就可以用cameraFlyTo方法。这个方法可以对相机中心位置、方位角和倾斜度做任意组合改变,使其沿着一条曲线动态地变化并引发飞行效果,轻松实现对人/物的视角跟随。

场景制作于Mapmost SDK for WebGL

arduino 复制代码
map.cameraFlyTo({
  "position": [120.6718, 31.3177, 0], // 飞行结束后相机的中心点
  "pitch": 83, // 飞行结束后相机的俯仰角
  "bearing": -116.7657, // 飞行结束后相机的方位角
  "distance": 1600, // 飞行结束后相机与目标中心点的距离
  "duration": 2000, // 飞行持续时间(毫秒)
});
  • setCameraParameter - 瞬移(无动画)

在三维场景中,我们经常会对模型进行快速定位,比如视频中想快速从苏州东方之门切换到苏州中茵皇冠假日酒店时,就可以用到这个接口。它可以精确控制相机参数,设置相机的位置和方向,没有任何动画效果。

如果不知道想要的视角下的相机参数是多少,可以调用getCameraParameter获取当前相机的状态参数哦。

场景制作于Mapmost SDK for WebGL

arduino 复制代码
map.setCameraParameter({
  "position": [120.6804, 31.3225, 67.6302], // 相机中心点
  "pitch": 77.4512, // 相机俯仰角
  "bearing": -47.8852, // 相机方位角
});

综上,无论是想要流畅的飞行体验,还是需要快速切换视角,或是精确控制相机参数,我们的SDK都能提供相应的API来实现。希望这些内容能帮助大家更好地掌握地图视角变换的技巧。

关注 Mapmost,持续更新 GIS、三维美术、计算机技术干货

Mapmost 是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。

点击此处前往Mapmost官网体验!

相关推荐
sun0077001 小时前
mysql索引底层原理
数据库·mysql
workflower4 小时前
MDSE和敏捷开发相互矛盾之处:方法论本质的冲突
数据库·软件工程·敏捷流程·极限编程
Tony小周4 小时前
实现一个点击输入框可以弹出的数字软键盘控件 qt 5.12
开发语言·数据库·qt
lifallen5 小时前
Paimon 原子提交实现
java·大数据·数据结构·数据库·后端·算法
TDengine (老段)5 小时前
TDengine 数据库建模最佳实践
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
Elastic 中国社区官方博客5 小时前
Elasticsearch 字符串包含子字符串:高级查询技巧
大数据·数据库·elasticsearch·搜索引擎·全文检索·lucene
Gauss松鼠会6 小时前
GaussDB应用场景全景解析:从金融核心到物联网的分布式数据库实践
数据库·分布式·物联网·金融·database·gaussdb
守城小轩6 小时前
Chromium 136 编译指南 - Android 篇:开发工具安装(三)
android·数据库·redis
尽兴-6 小时前
如何将多个.sql文件合并成一个:Windows和Linux/Mac详细指南
linux·数据库·windows·sql·macos
小小不董6 小时前
深入理解oracle ADG和RAC
linux·服务器·数据库·oracle·dba