地图和视图
引言
地图是用于管理图层和底图的容器。视图用于显示地图,并处理用户交互、弹出窗口、微件和地图定位等功能。
使用地图
基于 Map
类创建地图对象,地图对象再传递给 View
对象来显示地图。有两个 View
类可用于显示地图:用于 2D 地图的 MapView
类和用于 3D 地图的 SceneView
类。
创建地图
创建地图的一种方法是创建 Map
类的一个新实例,并指定底图和图层集合,其中图层集合是可选的。
了解可以添加到地图中的不同类型的图层。
从 Web 地图或 Web 场景创建地图
创建地图的另一种方法是直接加载 web 地图 (用于 2D 地图) 或 web 场景 (用于 3D 地图)。
Web 地图和 Web 场景都是JSON对象。它们包含了底图、图层、图层样式、弹出窗口、图例、标签等各种关于地图或场景的设置。通常使用 GeoScene Online 地图查看器、GeoScene Enterprise地图查看器或 GeoScene Online 场景查看器、GeoScene Enterprise场景查看器创建。创建成功后,在门户中会存储为一个门户项目,而且会有唯一ID来标识它。
在API中,通过WebMap
和 WebScene
类可以加载Web 地图和 Web 场景。将它们的唯一 ID 和门户地址传递给对应类即可。 GeoScene Online是API中的默认门户地址,其 URL 为https://www.geosceneonline.cn/geoscene
,如果使用 GeoScene Enterprise,则必须指定门户 URL。项目ID可以在地图查看器和场景查看器的 URL 中获取,也可在项目详情页面中获取。
示例:
https://www.geosceneonline.cn/geoscene/webapps/item?id={id}
当 WebMap
和 WebScene
对象加载 web 地图和 web 场景时,它们的配置信息都会自动应用于 Map
或 Scene
。例如,底图和图层的设置,图层样式的设置,图层自定义的弹出窗口。
注:创建 web 地图和 web 场景并通过唯一 ID 加载它们是配置
Map
和Scene
的最快方法。在创建 web 地图(参见GeoScene Enterprise帮助文档)和显示 web 地图教程中了解如何创建和加载 web 地图。
从 WebMap 创建地图
在显示 web 地图教程中了解更多信息。
从 WebScene 创建场景
在显示 web 场景教程中了解更多信息。
使用视图
视图的主要作用是显示图层、弹出窗口和 UI 微件,处理用户交互。
创建视图
用于创建地图视图和场景视图的类是不同的:分别为MapView
和 SceneView
类。MapView
显示 Map
对象的 2D 视图, SceneView
显示 3D 视图。
创建视图对象需要传入一个 Map
对象和一个 String
类型变量,这个变量是地图容器的 div
元素的id
属性或 div
元素的引用 。
设置地图的视图范围
MapView
和 SceneView
的初始显示位置可以通过在创建视图时设置 center
和 zoom
或 scale
属性来设置。
注:视图位置也可以在初始化后通过修改属性来更新。
使用 SceneView
(3D) 时,可以通过定义 camera
的来设置观察者的位置。
改为视图范围(动画形式)
MapView
提供了 goTo
方法,通过这个方法可以平滑过渡到一个新的视图位置上。这种技术通常用于从一个位置“飞”到另一个位置或缩放到搜索结果范围。
goTo
方法可接受 Geometry
、Graphic
或 Viewpoint
对象。另外也提供了控制动画效果的其他属性。
与视图交互
视图还负责处理用户交互和显示弹出窗口。视图为用户交互提供了多个事件处理程序,例如鼠标单击、键盘输入、触摸屏交互、操纵杆和其他输入设备。
当用户单击地图时,默认行为是显示已在图层中预先配置的任何弹出窗口。我们也可以通过监听 click
事件并使用 hitTest()
方法查找用户单击处的要素,使用以下代码手动地模拟此行为。
将微件和 UI 组件添加至视图
视图同时也是微件和 HTML 元素的容器。view.ui
属性提供了一个 DefaultUI 容器,用于显示视图的默认微件。也可以使用 view.ui.add
方法将其他微件和 HTML 元素添加至视图。以下代码片段演示了添加用户搜索地址或地点的微件。
了解有关将添加微件到视图的更多信息。