ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NNU_从零开始了解一个WebGIS(ArcGISJsApi)_对ArcGIS的一些基本概念的区分

2021-07-29 20:01:02  阅读:252  来源: 互联网

标签:ArcGISJsApi Layer Map WebGIS ArcGIS map MapView 图层 View


(1)Map:

Map只是一个容器,存储基础图层和业务图层(Layer)中包含的地理信息。(我猜测是以坐标形式存储的地理数据)(通俗理解就是存储地理信息的仓库/类似数据库)

Map 类包含用于存储、管理和叠加 Layer 并将其以 2D 或 3D 形式展示一些属性和方法。 可以在 Map 中添加和删除 Layer,通过 MapView(用于查看 2D 数据)或 SceneView(用于查看 3D 数据)渲染。 因此,地图实例是一个包含 Layer 的简单容器(Container),而 View 是显示 Map 中 Layer 和 BaseMap 并与之交互的手段。

Map 的实例是 MapView 和 SceneView 的重要组成部分。 Map 对象应该在视图之前创建,以便它可以传递到该视图的地图属性中(例如 MapView.map、SceneView.map)。

  *A single map may be referenced by multiple views.(甚至可以同时在 MapView 和 SenseView 中调用同一个 Map)

 

(2)BaseMap:

创建的一个新的底图对象。 BaseMap 可以从 PortalItem、ArcGISJsApi自带的底图 ID ,您发布到您自己的服务器的切片服务,或者从第三方发布的切片服务中创建的。

 

(3)View:

View提供了查看地图组件并与之交互的方法。View 渲染 Map 及其各个图层,使它们对用户可见。

  *包括MapView(2D)和SenseView(3D)。

  *View 是 MapView 和 SceneView 的基类,没有构造函数。 要创建视图,您必须通过直接创建 MapView 或 SceneView 的实例来实现。

// Load the Map and MapView modules
require(["esri/Map", "esri/views/MapView"], function(Map, MapView) {
  // Create a Map instance
  let map = new Map({
    basemap: "topo-vector"
  });

  // Create a MapView instance (for 2D viewing) and set its map property to
  // the map instance we just created
  let view = new MapView({
    map: map,
    container: "viewDiv"
  });
});

注意:

1)要将 View 与 Map 关联,您必须将地图属性设置为 Map 的实例。

2)虽然多个 View 可以引用同一个 Map,但一个 View 不能关联多个 Map 实例。

View 还允许用户与地图的组件进行交互。 例如,当用户点击或触摸地图中某个要素的位置时,他们并没有触摸到该要素或地图; 该事件实际上是通过引用地图的视图和引用图层的图层视图来处理的。 因此,单击等事件不在地图或图层上处理,而是在 View 上处理。 有关其他详细信息,请参阅 MapView 和 SceneView。

 

(4)Layer:

图层是地图最基本的组成部分。它是表示现实世界现象的矢量图形或光栅图像形式的空间数据的集合。图层可能包含存储矢量数据的离散特征或存储栅格数据的连续像元/像素。

从广义上讲,层可以用于以下目的:

显示地理上下文的位置
查询数据
显示分类和/或数字数据
分析

基本来说,图层可分为:

用于查询、可视化、分析数据的层

提供地理环境的图层

标签:ArcGISJsApi,Layer,Map,WebGIS,ArcGIS,map,MapView,图层,View
来源: https://www.cnblogs.com/looori/p/15076796.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有