撰寫日期:2019年12月10日
注意:隨著時(shí)間推移伊诵,該博文可能不再適用,請(qǐng)仔細(xì)檢查自己的版本與博文版本的對(duì)應(yīng)關(guān)系回官,不能保證三五年后曹宴,該博文仍然對(duì)新版本的ArcGIS有效!
一般情況下歉提,我們會(huì)發(fā)布影像服務(wù)浙炼、地圖服務(wù)份氧、要素服務(wù)三種服務(wù)至ArcGIS Server,然后在web端弯屈,可以利用ArcGIS API for Javascript調(diào)用三種服務(wù)蜗帜。前面介紹了如何發(fā)布影像服務(wù)和地圖服務(wù),今天介紹如何利用ArcGIS發(fā)布要素服務(wù)资厉。
由于要素服務(wù)發(fā)布后厅缺,我們想要編輯要素,而不僅僅是查看下宴偿,因此要素服務(wù)的發(fā)布一般需要借助某種數(shù)據(jù)庫湘捎,例如SQL Server,要素圖層實(shí)際上存儲(chǔ)在關(guān)系數(shù)據(jù)庫中窄刘。要素服務(wù)成功發(fā)布后窥妇,可以利用web端對(duì)要素進(jìn)行修改、刪除等編輯操作娩践。當(dāng)然在web端對(duì)要素的修改活翩,實(shí)際上修改的是存儲(chǔ)在數(shù)據(jù)庫(如sql server)中的數(shù)據(jù)。
一翻伺、系統(tǒng)環(huán)境
- Windows 10 企業(yè)版 1903 64bit
- SQL Server 2014 Express
- ArcGIS Desktop 10.2.2
- ArcGIS Server 10.2.2
二材泄、安裝軟件
ArcGIS連接數(shù)據(jù)庫有兩種方式,一種是直接連接吨岭,另外一種是服務(wù)連接拉宗。
- 直接連接也就是arcgis直接連接至關(guān)系數(shù)據(jù)數(shù)據(jù)庫,沒有中間層辣辫,不需要安裝ArcSDE旦事。
- 服務(wù)連接往往需要通過ArcSDE這一層,需要安裝ArcSDE急灭。
ESRI官方推薦是直接連接族檬,因此本文也采用直接連接,不安裝ArcSDE化戳。
2.1 安裝SQL Server 2014 Express
Express是學(xué)習(xí)版单料,安裝包比較小。如果你功能要求比較多点楼,可以裝develop版本扫尖。或者安裝Oracle掠廓。
2.2 安裝ArcGIS Desktop 10.2.2
這里不贅述了换怖,GIS專業(yè)的同學(xué)應(yīng)該很熟悉。需要注意的是先安裝ArcGIS License Manger蟀瞧,再安裝ArcGIS for Desktop沉颂。如果你是第一次安裝条摸,最好不要搞反了順序。(如果你是老手铸屉,這個(gè)順序其實(shí)也是可以反的)
2.3 安裝ArcGIS Server 10.2.2
這個(gè)過程很簡單钉蒲,比安裝ArcGIS Desktop還要簡單。唯一需要注意的是授權(quán)文件彻坛,記得保留著顷啼,后面創(chuàng)建企業(yè)級(jí)地理數(shù)據(jù)庫時(shí)還需要它。
三昌屉、利用ArcGIS Desktop發(fā)布要素服務(wù)
要素服務(wù)與數(shù)據(jù)庫的關(guān)系大致如下圖钙蒙,如果看不明白不要緊。接著往下看间驮。
3.1 創(chuàng)建企業(yè)級(jí)地理數(shù)據(jù)庫
從ArcGIS desktop中創(chuàng)建地理數(shù)據(jù)庫躬厌,創(chuàng)建好的數(shù)據(jù)表實(shí)際上存放在Sql Server中(假設(shè)你用的Sql Server)。
(1)打開arcmap竞帽,然后打開ArcToolbox窗口扛施,依次找到【Data Management Tools】->【Geodatabase Administration】->【Create Enterprise Geodatabase】,打開創(chuàng)建企業(yè)級(jí)地理數(shù)據(jù)庫的對(duì)話框抢呆。
(2)這里我創(chuàng)建一個(gè)名字為Test的企業(yè)級(jí)地理數(shù)據(jù)庫煮嫌,創(chuàng)建好之后在Sql Server中可以看到名稱為Test的數(shù)據(jù)庫笛谦。按照下圖的步驟依次填入對(duì)應(yīng)的值或者選擇對(duì)應(yīng)的文件抱虐。最后點(diǎn)擊【OK】按鈕。
(3)sql server中查看創(chuàng)建好的地理數(shù)據(jù)庫
利用Microsoft Sql Server Management Studio饥脑,連接至Sql server的后臺(tái)恳邀,可以看到新出現(xiàn)了一個(gè)Test數(shù)據(jù),就是我們剛才新建的Test地理數(shù)據(jù)庫灶轰。Test數(shù)據(jù)庫下有不少由arcgis創(chuàng)建的表谣沸。
(4)目前在ArcMap中我們無法看到剛才創(chuàng)建的地理數(shù)據(jù)庫Test。我們可以通過添加一個(gè)連接笋颤,將ArcMap連接至Sql Server乳附。具體方法是:
打開Catalog,展開Database Connections組伴澄,點(diǎn)擊【Add Database Connection】赋除,設(shè)置好相應(yīng)的值,在Database欄選擇剛才創(chuàng)建的Test數(shù)據(jù)庫非凌。點(diǎn)擊【OK】举农,就會(huì)看到帶紅×的數(shù)據(jù)庫連接,雙擊該數(shù)據(jù)庫連接敞嗡,就可以連上sql server數(shù)據(jù)庫了颁糟。
直到目前為止航背,剛才創(chuàng)建的企業(yè)級(jí)地理數(shù)據(jù)庫Test里面什么數(shù)據(jù)也沒有,還是空的棱貌。下面玖媚,我們要加點(diǎn)數(shù)據(jù)進(jìn)去。
3.2 添加數(shù)據(jù)至企業(yè)級(jí)地理數(shù)據(jù)庫
(1)在剛才的設(shè)置的數(shù)據(jù)庫連接【Connection to DESKTOP-3BAHAU6 (3).sde】上右鍵單擊键畴,選擇【Import】-【Feature Class(single)】最盅,導(dǎo)入單個(gè)要素類(當(dāng)然你也可以一次性導(dǎo)入多個(gè))。設(shè)置導(dǎo)入?yún)?shù)起惕,就可以導(dǎo)入了涡贱。導(dǎo)入后可以看到數(shù)據(jù)庫連接下有一個(gè)【Test.DBO.NewTest】,這就是我們剛才導(dǎo)入的要素類惹想,現(xiàn)在它已經(jīng)放到了sql server數(shù)據(jù)庫中了问词。我們可以將其拖到到ArcMap工作區(qū),就可以看到Test地理數(shù)據(jù)庫中存放的要素類和原始的要素類數(shù)據(jù)是一樣的嘀粱。只是Test地理數(shù)據(jù)庫是放在Sql Server中激挪,而原始的要素類數(shù)據(jù)可能是文件或其他形式。
3.3 發(fā)布要素服務(wù)
(1)將剛才新建的數(shù)據(jù)庫連接下的要素類【Test.DBO.NewTest】拖拽至ArcMap工作區(qū)》孢叮現(xiàn)在就可以看到該要素類了垄分,設(shè)置要素類的顯示樣式。
(2)點(diǎn)擊【File】->【Share as】->【Service】娃磺,進(jìn)入發(fā)布要地圖服務(wù)的流程薄湿。
后續(xù)的對(duì)話框中選擇【Publish a service】,設(shè)置【Service name】偷卧,下一步我選擇創(chuàng)建一個(gè)新的文件夾(當(dāng)然也可以不創(chuàng)建)豺瘤。
(3)在Service Editor對(duì)話框中,依次點(diǎn)擊【Capabilities】-->勾選【Feature Access】听诸,然后點(diǎn)擊右上方的【Analyze】按鈕坐求。分析我們發(fā)布的要素服務(wù)存在的問題。
(4)可以發(fā)現(xiàn)晌梨,點(diǎn)擊【Analyze】后下方確實(shí)出現(xiàn)了一個(gè)問題列表桥嗤,其中還有錯(cuò)誤。錯(cuò)誤提示我們要素服務(wù)需要一個(gè)注冊(cè)數(shù)據(jù)庫仔蝌。
雙擊該錯(cuò)誤泛领,彈出注冊(cè)數(shù)據(jù)庫的對(duì)話框。在Registered Databases一欄掌逛,點(diǎn)擊右側(cè)的+號(hào)师逸,點(diǎn)擊【Register Database】,然后依次設(shè)置各個(gè)對(duì)話框的值,如下圖所示篓像。
(5)回到【Service editor】對(duì)話框动知,再次點(diǎn)擊【Analyze】按鈕,可以發(fā)現(xiàn)這次沒有錯(cuò)誤了员辩,可以點(diǎn)擊【Publish】按鈕發(fā)布地圖服務(wù)至ArcGIS Server了盒粮。
3.4 檢查發(fā)布結(jié)果
打開瀏覽器,輸入:http://localhost:6080/arcgis/manager奠滑,進(jìn)入ArcGIS Server管理界面丹皱。找到剛才發(fā)布的test服務(wù)文件夾,可以看到發(fā)布的服務(wù)NewTest宋税。點(diǎn)擊進(jìn)去查看詳細(xì)信息摊崭。
點(diǎn)擊左側(cè)的【功能】選項(xiàng)卡,點(diǎn)擊【Feature Access】杰赛,下面URL欄出現(xiàn)的REST URL地址 http://localhost:6080/arcgis/rest/services/test/NewTest/FeatureServer 即為在ArcGIS API for JavaScript中的調(diào)用地址呢簸。
當(dāng)然,你也可以點(diǎn)擊【地圖(始終啟用)】乏屯,下面的REST URL就會(huì)變?yōu)榈貓D服務(wù)的地址根时,類似于:http://localhost:6080/arcgis/rest/services/test/NewTest/MapServer 其中從MapServer即可看出是地圖服務(wù)。
至此辰晕,ArcGIS發(fā)布要素服務(wù)講解完畢蛤迎。已經(jīng)很詳細(xì)了。
后面會(huì)講解發(fā)布GP服務(wù)含友,以及在ArcGIS API for JS 4.13中調(diào)用的一些問題替裆。