1. 程式人生 > >最近摸索arcgis的一點心得,希望對初來著有些幫助

最近摸索arcgis的一點心得,希望對初來著有些幫助

是把 phi pan nts rest bootstra mas 圖片 creates

最近突然想寫點東西,記錄一下對軟件開發上的一些學習心得(其實一直以來都想寫點東西,慰藉自己在這些年踩過的坑留點)。

主要寫三個大方面:

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的一點心得,希望對初來著有些幫助