刚接触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)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。