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中查詢我們需要查詢的圖層。
