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

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

相关推荐
m0_748237051 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
dal118网工任子仪2 小时前
61,【1】BUUCTF WEB BUU XSS COURSE 11
前端·数据库·xss
萌小丹Fighting3 小时前
【Postgres_Python】使用python脚本批量创建和导入多个PG数据库
数据库
青灯文案13 小时前
Oracle 数据库常见字段类型大全及详细解析
数据库·oracle
羊小猪~~3 小时前
MYSQL学习笔记(四):多表关系、多表查询(交叉连接、内连接、外连接、自连接)、七种JSONS、集合
数据库·笔记·后端·sql·学习·mysql·考研
村口蹲点的阿三6 小时前
Spark SQL 中对 Map 类型的操作函数
javascript·数据库·hive·sql·spark
暮湫7 小时前
MySQL(1)概述
数据库·mysql
fajianchen7 小时前
记一次线上SQL死锁事故:如何避免死锁?
数据库·sql
chengpei1477 小时前
实现一个自己的spring-boot-starter,基于SQL生成HTTP接口
java·数据库·spring boot·sql·http
中东大鹅9 小时前
MongoDB的索引与聚合
数据库·hadoop·分布式·mongodb