对一些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中查询我们需要查询的图层。

时间: 2024-08-25 21:54:24

对一些ArcGIS for JS的API的一些理解的相关文章

lzugis——Arcgis Server for JavaScript API之自定义InfoWindow(续)

同样的标题后面加了一个括弧,不是为了增减博文数量,而确实是上个功能的完善,标注为续,意思是继续上次的内容,来说说如何自定义InfoWindow. 在上一讲中,实现了InfoWindow的显示,但是并没有实现地图拖动地图InfoWindow随着联动,以及缩放地图InfoWindow随着联动的问题,在本文章中,就上述两个问题提供一个解决思路. 首先,说说拖动地图InfoWindow的联动.拖动地图时,地图并未做缩放,所以只是做一个位置的偏移,因此,定义一个公共变量,记录InfoWindow出来时候的

lzugis——Arcgis Server for JavaScript API之自定义InfoWindow

用过Arcgis Server for JavaScript API肯定知道InfoWIndow,你在用InfoWindow的时候会发现各种问题,例如不能完全显示的问题,遮盖对象的问题等等,所以呢我在实现这个功能的时候动了下脑子,想自己用div+css弄一个,倒腾了半天,弄出来了一个如下所示的: 做的比较丑陋,样式方面还得好好下下功夫,东西是差不多实现了,下面说说思路: 首先,DIV定义,这个样式,我定义了5个div,分别是infowin,title,colse,content,arrow,其中

lzugis——Arcgis Server for JavaScript API之自己定义InfoWindow

用过Arcgis Server for JavaScript API肯定知道InfoWIndow.你在用InfoWindow的时候会发现各种问题,比如不能全然显示的问题,遮盖对象的问题等等.所以呢我在实现这个功能的时候动了下脑子,想自己用div+css弄一个,倒腾了半天,弄出来了一个例如以下所看到的的: 做的比較丑陋,样式方面还得好好下下功夫.东西是差点儿相同实现了,以下说说思路: 首先.DIV定义,这个样式,我定义了5个div,各自是infowin,title,colse,content.ar

Arcgis for js加载百度地图

概述: 在前面的文章里提到了Arcgis for js加载天地图,在本节,继续讲解如何在Arcgis for js中加载百度地图. 效果: 地图 影像-无标注 影像-有标注 实现: 第一,在此感谢http://www.cnblogs.com/chenyuming507950417/p/3343729.html这篇文章的主人,给了我很大的启发与帮助,因为一直在找相关的参数,都不对,只有这个参数是没有问题的. 第二,百度地图可调用的有地图切片,影像切片,以及道路等POI切片,我将之用TiledMap

Arcgis for Js实现graphiclayer的空间查询

本节讲的是Arcgis for Js的针对graphiclayer的空间查询,内容非常easy.代码例如以下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="initial-

arcgis for js开发之路径分析

arcgis for js开发之路径分析 //方法封装 function routeplan(x1, x2, y1, y2, barrierPathArray, isDraw, callback) { require([ "esri/symbol/SimpleLineSymbol", "esri/Color", "esri/tasks/RouteTask", "esri/tasks/FreatureSet", "es

[Javascript]JS新API标准-地理定位(navigator.geolocation)

在新的API标准中,可以通过navigator.geolocation来获取设备的当前位置,返回一个位置对象,用户可以从这个对象中得到一些经纬度的相关信息. navigator.geolocation的三个方法: 1. getCurrentPosition() 2. watchPosition() 3. clearWatch() getCurrentPosition() 使用方法:navigator.geolocation.getCurrentPosition(successCallback,

JS新API标准 地理定位(navigator.geolocation)

在新的API标准中,可以通过navigator.geolocation来获取设备的当前位置,返回一个位置对象,用户可以从这个对象中得到一些经纬度的相关信息. navigator.geolocation的三个方法: 1. getCurrentPosition()   //当前位置 2. watchPosition()          //监视位置 3. clearWatch()             //清楚监视 1.getCurrentPosition() 使用方法:navigator.ge

Arcgis for Js之featurelayer实现空间查询和属性查询

空间查询和属性查询是常用的两种对数据的检索与查询方式,在本节,将讲述Arcgis for Js下如何实现featurelayer的这两种查询方式,先贴图给大家看看: 实现界面 属性查询 空间查询 看完了效果,下面说说我的实现思路. 首先,实现查询的关键是Query,属性查询时query.where来实现,空间查询时query.geometry来实现,具体代码如下: 1.属性查询 on(dom.byId("query"), "click", function(even