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

刚接触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官网体验!

相关推荐
zzb15807 小时前
RAG from Scratch-优化-query
java·数据库·人工智能·后端·spring·mybatis
一只鹿鹿鹿8 小时前
信息安全等级保护安全建设防护解决方案(总体资料)
运维·开发语言·数据库·面试·职场和发展
堕2748 小时前
MySQL数据库《基础篇--数据库索引(2)》
数据库·mysql
wei_shuo8 小时前
数据库优化器进化论:金仓如何用智能下推把查询时间从秒级打到毫秒级
数据库·kingbase·金仓
雷工笔记8 小时前
Navicat Premium 17 软件安装记录
数据库
wenlonglanying8 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu
数据库小组9 小时前
10 分钟搞定!Docker 一键部署 NineData 社区版
数据库·docker·容器·database·数据库管理工具·ninedata·迁移工具
爬山算法9 小时前
MongoDB(38)如何使用聚合进行投影?
数据库·mongodb
l1t9 小时前
Deep Seek总结的APSW 和 SQLite 的关系
数据库·sqlite
Pocker_Spades_A10 小时前
基于代价模型的连接条件下推:复杂SQL查询的性能优化实践
数据库·sql·性能优化