对一些ArcGIS for JS的API的一些理解

1、esri/map

map类是每个地图控件中必须引入的类,我们可以通过Map()对地图进行许多的操作,比如修改地图的坐标系、显示级别和初始显示范围等等。

  Map有一个类型为GraphicsLayer的graphics属性。在没有创建新的GraphicsLayer的情况下我所画的graphic都是放在Map的graphics里面。由于map通常都是一个全局变量,因此我们能够在随时的获取到在Map里面的graphic(例如:map.graphics.graphics[0])。

2、esri/graphic

简单的讲,graphic的作用就是在地图上画东西,可以是通过esri/toolbar/draw类在地图上画图形,也可以获取后台的经纬度来画。要了解的是Graphic = geometry(必须) + symbol(必须) + infoTemplate(可有可无) + attributes(里面放着graphic的属性)。在获取到客户的地图数据之后(获取到经纬度)我们就可以在地图上画出所要显示的样式。

3、esri/layers/GraphicsLayer

  GraphicsLayer意思就是有多个Graphic组成的图层。由于不能给esri/graphic设置事件监听,在需要对graphic进行事件监听的时候我们可以新建一个GraphicsLayer把需要监听的graphic放在里面。

4、esri/layers/ArcGISTiledMapServiceLayer

  用来加载切片地图,无法加载动态地图(即未切片过的地图,加载速度快)。

5、esri/layers/ArcGISDynamicMapServiceLayer

  用来加载动态地图的接口,也可以加载切片地图(缺点:地图加载很慢)。

6、esri/dijit/InfoWindow

  由于监听InfoTemplate的鼠标事件,比如当要实现鼠标移动到某一个graphic时出现对应的一个提示框,这个时候我们就无法用InfoTemplate来实现这个需求,因为InfoTemplate只能是点击graphic的时候才会显示。这个时候我们就可以用上InfoWindow了。

例:

map.infoWindow.setTitle(title);

  map.infoWindow.setContent(content);

  map.infoWindow.show(evt.screenPoint, this.map.getInfoWindowAnchor(evt.screenPoint));

7、esri/tasks/BufferParameters

Buffer就是在地图上建立缓冲区的意思,这个缓冲区其实就是一个geometry。因此,我们经常会把它和Query拿来一起用,我们的空间查询功能便是这个原理,先人为的创建一个缓冲区,然后在这个缓冲区中Query出我们需要得到的图层。这里要注意的是BufferParameters的坐标系要用球面坐标系,不然会报错(例:params.bufferSpatialReference = new SpatialReference({wkid: 102113});)。

8、esri/tasks/RouteTask、esri/tasks/RouteParameters

  RouteTask是载入网络分析服务(路径分析)的一个接口。esri/tasks/RouteParameters是Route是属性接口,这里需要主要的是routeParams.outSpatialReference要等于map的坐标系,不然生成的路线无法在地图上正常显示。

9、esri/tasks/QueryTask、esri/tasks/Query

QueryTask、Query的关系和RouteTask与RouteParaMeters的关系蛮像的。QueryTask需要加载我们需要Query(查询)的图层的url,而Query里面放着各种属性。Query的基本原理就是在一个已知的geometry中查询我们需要查询的图层。

原文地址:http://www.cnblogs.com/daihere1993/p/4999760.html

转载自:https://blog.csdn.net/weixin_40184249/article/details/80090508

You may also like...