ArcGIS Server作為一款功能強(qiáng)大的企業(yè)級(jí)GIS服務(wù)器,其核心功能之一便是發(fā)布地理空間數(shù)據(jù)服務(wù)。在Linux環(huán)境下,將數(shù)據(jù)庫(kù)中的數(shù)據(jù)注冊(cè)到ArcGIS Server并進(jìn)行服務(wù)發(fā)布,是一個(gè)常見(jiàn)的運(yùn)維與開(kāi)發(fā)任務(wù)。本文將詳細(xì)闡述從數(shù)據(jù)庫(kù)連接配置到服務(wù)成功發(fā)布的完整流程。
注冊(cè)數(shù)據(jù)庫(kù)的目的是讓ArcGIS Server能夠安全地訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。此操作主要通過(guò)ArcGIS Server管理員目錄(Admin API)或ArcGIS Pro/Desktop來(lái)完成。以下以使用REST API(curl命令)和Python腳本為例,說(shuō)明在Linux命令行下的注冊(cè)方法。
核心步驟與要點(diǎn):
1. 生成連接文件(可選但推薦):
雖然可以直接通過(guò)API注冊(cè),但先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接文件(.sde文件)能簡(jiǎn)化流程。這通常需要在安裝了ArcGIS Pro或Desktop的Windows機(jī)器上創(chuàng)建,然后上傳至Linux服務(wù)器。文件包含了加密的連接信息。
2. 通過(guò)ArcGIS Server REST API注冊(cè):
使用curl命令向ArcGIS Server的管理員目錄發(fā)送POST請(qǐng)求。
示例:注冊(cè)一個(gè)PostgreSQL數(shù)據(jù)庫(kù)
`bash
curl -u admin:password -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "itemType=egdb\&connectionString=DATABASE=mygdb;SERVER=192.168.1.100;INSTANCE=5432;USER=gisadmin;VERSION=sde.DEFAULT\&clientPath=/opt/arcgis/server/tools\&isManaged=false\&connectionType=shared" \
"https://your.server.com:6443/arcgis/admin/data/registerItem"
`
-u: ArcGIS Server管理員用戶名和密碼。connectionString: 數(shù)據(jù)庫(kù)連接字符串,格式因數(shù)據(jù)庫(kù)類型而異。clientPath: ArcGIS Server工具目錄,通常位于<ArcGIS Server安裝目錄>/tools。isManaged: 是否為托管數(shù)據(jù)庫(kù)(true表示ArcGIS Server管理版本化等,false表示僅連接)。connectionType: 連接類型,shared(共享)最為常用。3. 使用ArcGIS API for Python腳本注冊(cè):
在Linux服務(wù)器上安裝arcgis包后,可以使用更友好的Python腳本。
`python
from arcgis.gis import GIS
from arcgis.features import FeatureLayerCollection
gis_admin = GIS("https://your.server.com:6443/arcgis", "admin", "password")
db_params = {
"itemType": "egdb",
"connectionString": "DATABASE=mygdb;SERVER=192.168.1.100;INSTANCE=5432;USER=gisadmin;VERSION=sde.DEFAULT",
"clientPath": "/opt/arcgis/server/tools",
"isManaged": False,
"connectionType": "shared"
}
registerresult = gisadmin.admin.data.registeritem(**dbparams)
print(f"注冊(cè)結(jié)果: {register_result}")
`
4. 驗(yàn)證注冊(cè):
注冊(cè)成功后,登錄ArcGIS Server管理器(https://<server>:6443/arcgis/manager),在站點(diǎn) > 數(shù)據(jù)存儲(chǔ)中應(yīng)能看到已注冊(cè)的數(shù)據(jù)庫(kù)連接。
數(shù)據(jù)庫(kù)注冊(cè)成功后,其中的空間表即可作為服務(wù)的數(shù)據(jù)源進(jìn)行發(fā)布。發(fā)布服務(wù)通常需要通過(guò)ArcGIS Pro制作地圖文檔(.aprx)或地圖服務(wù)定義(.msd/.sd)文件,然后將其上傳并發(fā)布。在純Linux環(huán)境下,通常使用“發(fā)布服務(wù)定義”的方式。
主要流程:
.sd文件)。2. 將服務(wù)定義文件上傳至Linux服務(wù)器:
可以通過(guò)SCP、SFTP等方式將生成的.sd文件傳輸?shù)紸rcGIS Server的某個(gè)目錄下,例如/opt/arcgis/services。
3. 在Linux服務(wù)器上發(fā)布服務(wù):
使用ArcGIS Server內(nèi)置的publish工具進(jìn)行發(fā)布。
`bash
cd /opt/arcgis/server/tools
./publish -s https://your.server.com:6443/arcgis \
-u admin -p password \
-f /opt/arcgis/services/MyFeatureService.sd \
-r
`
-s: ArcGIS Server的URL。-u, -p: 管理員憑據(jù)。-f: 服務(wù)定義文件路徑。-r: 替換現(xiàn)有服務(wù)(如果存在)。https://your.server.com:6443/arcgis/rest/services/<服務(wù)名>/FeatureServer)訪問(wèn)服務(wù),測(cè)試查詢等功能是否正常。shared連接允許多個(gè)服務(wù)實(shí)例共享同一個(gè)數(shù)據(jù)庫(kù)連接池,效率高,推薦生產(chǎn)環(huán)境使用。遵循以上流程,您可以在Linux系統(tǒng)的ArcGIS Server上,穩(wěn)定地將數(shù)據(jù)庫(kù)中的地理空間數(shù)據(jù)發(fā)布為可供Web端、移動(dòng)端調(diào)用的GIS服務(wù),構(gòu)建起完整的企業(yè)級(jí)GIS應(yīng)用體系。
如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.d20605.cn/product/82.html
更新時(shí)間:2026-04-22 22:09:38