1、引言
本篇以加载OSM为例,主要介绍基于ArcGIS API for JavaScript 4.x 版本
实现2D、3D地图视图的切换功能;
下面是运行效果:
2、代码讲解
这里我们自定义了一个视图切换的模块ViewTransformation
。实现思路:基于4.x版本将地图和视图分离的特点,以“一个Map,两个View
”的思路来实现。具体而言,在视图切换的时候Map不变,根据当前视图的状态
(参数),重新初始化View,即视图在MapView和SceneView之间来切换。
- 获取当前视图状态
switchView()
方法主要获取当前视图的viewpoint
,视点用来描述2D、3D视图状态,2D中视点包含视图中心点和比例尺,3D中使用相机camera来确定,可用于视图定位导航、创建书签。
基于当前视图状态,重新定义视图参数对象ViewParams
。
switchView: function (type) {
let activeViewpoint = view.viewpoint.clone();
this.ViewParams = {
map:map,
container:"mapview",
viewpoint: activeViewpoint
};
this.createView(this.ViewParams, type);
}
- 初始化视图
根据传入的参数type,对view进行重新初始化,同时修改按钮内的文本内容:
createView: function (params, type) {
this.showwaiting();
view = null;
if (type == '3D'