【二】ArcGIS API for JavaScript 4.x之基础概念(上篇)

【二】ArcGIS API for JavaScript 4之基础概念(上篇)

本篇博客主要介绍 ArcGIS API for JavaScript开发中常接触到的几个概念(模块)。深入了解这些概念或模块,便于开发者更好地理解和运用ArcGIS API for JavaScript开展具体的开发工作。

1、地图(Map)

Map 是承载图层的容器,主要用于呈现地图服务、影像服务、 WMS 服务等。一个图层只有被添加到 Map 中,才能在View中显示出来,通过MapView(用于查看二维数据)或SceneView(用于查看三维数据)进行渲染。

单个地图可以由多个视图引用,所以所有用户与地图图层的交互都在View视图上进行处理,而不是地图Map。这也是4版本与3版本的重要区别之一。
在这里插入图片描述

2、视图(View)

View用来展示Map以及包含的图层,它提供了查看地图的组件以及交互方法。在4版本中提供了两种类型的视图:MapViewSceneView。 MapView以2D、 SceneView以3D形式渲染Map及其图层。 创建视图时,需要实例化MapView或SceneView。
在这里插入图片描述

  • MapView

下面是一个最简单的MapView创建示例,包含了mapcontainer两个必需的属性:

require(["esri/Map", "esri/views/MapView"], function(Map, MapView) {
  // 创建Map实例
  var map = new Map({
    basemap: "streets"
  });

  // 创建MapView实例并设置map属性为上一步的map实例
  var view = new MapView({
    map: map,
    container: "viewDiv"
  });
});

除了负责渲染Map及其元素外,MapView还处理用户和地图之间的交互。 如设置比例尺、视图中心点、缩放级别等等。

view.scale = 24000;
view.center = [-112, 38]; 
view.zoom = 13;

还有一些我们常常用到的事件:

  1. goTo()
    根据给定的目标参数为视图添加动态的切换效果
    在这里插入图片描述
  2. when(callback?, errback?)
    创建类的实例后调用when(),实例加载后运行callback,加载失败时运行errback
  3. hitTest()
    常用在地图点击事件交互,如果对相交要素进行了点击,返回与指定屏幕坐标相交的图层的最顶层要素。图层类型包括:GraphicsLayerFeatureLayerCSVLayerGeoRSSLayerKMLLayerStreamLayer
view.on("click", function (event) {
 	// 获取指定图层中的graphic
  	view.hitTest(event).then(function (response) {
  		//判断是否包含相交的graphic
    	if (response.results.length) {
      		var graphic = response.results.filter(function (result) {
        		// myLayer为我们需要的图层
        		return result.graphic.layer === myLayer;
      		})[0].graphic;

      		//读取graphic属性
      		console.log(graphic.attributes);
    	}
  	});
});
  1. whenLayerView()
    获取在指定图层在视图上创建的LayerView,常用在与图层的事件交互中,如点击地图高亮显示对应的要素。
//实例化一个要素图层
var layer = new FeatureLayer(url);
map.add(layer);

view.whenLayerView(layer)
    .then(function(layerView) {
      // 获取到要素图层对应的layerview
    })
    .catch(function(error) {
      //创建视图时出现错误
    });

3、图层(Layer)

图层是Map的基本组成部分,即一个代表真实世界的矢量图形或栅格图像形式的空间数据集合。图层是承载服务的载体(GraphicsLayer 除外),通过ArcGIS for Server 将 GIS 资源作为服务发布共享,图层与这些服务相关联,可在浏览器端展示并使用相应的服务。图层在 Map 中是有一定的顺序,当一个图层加入到 Map 中,后加入的图层在Map 的最上层。
在这里插入图片描述
图层主要用于查询、可视化、分析,常用的图层类包括:TileLayerMapImageLayerImageryLayerGraphicsLayerFeatureLayerSceneLayer等等。具体介绍可见Layer

常用的属性:

  • id:图层id标识,如果定义了id属性,可通过Map的findLayerById()方法获取对应的图层对象;
  • url:图层对应的服务访问地址;
  • loaded:图层已加载标识,当改属性为true,即图层已加载到视图;
  • loadStatus:图层加载状态,包括:not-loaded、loading、loaded、failed,我们可以通过监听该属性在图层加载的补贴阶段执行相应的操作;
  • maxScale/minScale:定义图层可见的比例尺范围;
  • opacity:不透明度,

常用的方法:on(type, listener)refresh()when(callback?, errback?)

详细的介绍可参考官方文档!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值