最近摸索arcgis的一點心得,希望對初來著有些幫助
最近突然想寫點東西,記錄一下對軟件開發上的一些學習心得(其實一直以來都想寫點東西,慰藉自己在這些年踩過的坑留點)。
主要寫三個大方面:
1、 arcgis
記錄arcgis for js的開發,涉及:環境部署、arcgis js 圖層控制,服務圖層查詢,動態圖層數據查詢,標準顯示,自定義的infowindow,arcgis 模型, GP服務調用。
2、 .NET。
反射,lamda ,redis,MVC,unity,sokcet 以及幾個我常用的設計模式。
3、數據庫
觸發器、存儲過程的編寫,以及SQL調優的方式方法。
除此以外還會把系統開發中用到的js框架(bootstrap,easyui),arcgis開發中使用到的python都會記錄。
今天主要寫arcgis的部署與動態圖層的查詢與顯示。
對於那些不熟悉arcgis而言的而言就是安裝與破解都能讓你頭痛三天,所以我還是把我部署先說說。
Arcgis的安裝與破解就不說了,百度很多。
我以10.2為例。安裝完成desktop和server以後,需要部署一下dojo包。
這是我解壓以後的目錄:
我們需要更改兩個文件的配置,
第一個文件:
搜索:<myserver>,然後把他替換成可以從瀏覽器訪問的路徑,比如我的計算機為:win10,IIS發布如圖:
,替換後:
第二個文件:
搜索:<myserver>,然後按照第一個文件的替換方式,替換
替換後,重啟網站。
在瀏覽器中輸入:http://localhost:6080/arcgis/rest/services/SampleWorldCities/MapServer?f=jsapi ,出現:
查看源文件,你會發現:
剛剛說的是部署安裝,百度上還是有不少,不足為道。
接下來介紹一個實用的功能:我們經常需要通過鼠標右鍵畫一個範圍,能將範圍內的需要的信息查詢出來。如圖所示:
這個需要使用到draw-complete事件,該事件就是用於在鼠標點擊右鍵畫指定區域完成後觸發的事件。在這個裏面通過result獲取當前獲得繪圖得到的面result.geometry;,然後找到需要與之進行相交的圖層,這個圖層可以是已經發布的動態圖層,也可以是自己建立的graphic layer。通過result.geometry. contains方法遍歷得到相對應的結果。以下是具體代碼:
on(toolBar, "draw-complete", function (result) {
//獲得繪圖得到的面
var geometry = result.geometry;
MaskUtil.mask("開始空間查詢分析,分析完成後請查看結果...");
//關閉繪圖工具
toolBar.deactivate();
var graphicRainLayer = map.getLayer("graphicRainLayer");//是否有雨量數據
selectedGraphics = [];
var queryResultLayer = new esri.layers.GraphicsLayer({ id: "queryResultLayer" });
map.addLayer(queryResultLayer);
var graphics = graphicRainLayer.graphics;
for (var i = 0, total = graphics.length; i < total; i++) {
if (result.geometry.contains(graphics[i].geometry)) {
var template = new InfoTemplate();
template.setTitle("站點全景");
template.setContent(“查找到的站點”);
var points = new Graphic(graphics[i].geometry, createSymbol("#0ff"), graphics[i].attributes, template);
queryResultLayer.add(points);
}
}
});
如果希望查詢到的點能夠顯示出來,則可以新建一個graphic layer,將獲得到的幾何對象添加進來顯示即可。
截一些最近開發的一些系統截圖。
面雨量分析(基於樣條函數生產)
點擊不同顏色的按鈕,則會自動顯示對應的面積(紫色為自定義選擇的顏色)
自動分析不同降雨等級降雨涉及到的鄉鎮名稱,以及影響的面積。
分析指定區域下存在的受影響的重點企業是那些?並顯示如下圖:
通過空間計算,查找到受影響的重點單位,點擊上面的圓點,可以查看當前企業的360度實景圖片。顯示實景的彈出框為自定義的彈出框,是不是很實用。
在圖片上移動鼠標就能像谷歌街景一樣的360查看。
最近摸索arcgis的一點心得,希望對初來著有些幫助