首頁>技術>

@[Toc]

此前從未接觸過ArcGIS,對Oracle和postGre SQL也比較陌生。本文介紹了從零開始,到搭建環境,再到釋出第一個ArcGIS地圖服務的完整過程。

一、軟體環境搭建

由於在地圖製作時我們需要在 arcMap 中讀取資料庫中的地理資料,並且在釋出地圖服務時。arcGIS Server 也需要從資料庫中讀取資料併發布。所以我們需要建立起 arcMap----> 資料庫 和 arcGIS Server----->資料庫的連線。並且,由於我們可以在 arcMap 對 arcGIS Server 進行管理,所以也需要建立起這兩者的連線。具體關係如下(以 postgreSQL為例:)

本文中ArcGis相關軟體版本為10.2,Oracle版本為11g,PostgreSQL版本為9.1。

本文用到的軟體下載地址:

度盤:pan.baidu.com/s/1fdAiJW1Y…    提取碼:a41c

在軟體的安裝過程中,有一些賬號密碼的配置,建議使用記事本等工具記錄,以免忘記。

1、資料庫安裝

ArcGIS支援若干資料庫,我們這裡用了兩種,Oracle和開源的postGre SQL,選用其中一種即可。相比較而言,使用Oracle作為地理資料庫的搭建要簡單一些,條件允許的話,推薦使用Oracle資料庫。

1.1、Oracle(可選)1.1.1、安裝Oracle服務端

這裡選擇的是Oracle11g 64位。

執行安裝出現下圖警告,不用理會 電子郵件可以不填 安裝選項選擇建立和配置資料庫 根據機器的配置情況自行選擇,這裡選擇的是桌面類 自定義Oracle的基目錄,管理口令自行設定 完成 安裝產品,時間會比較長,喝杯茶慢慢等待吧產品安裝完成後記得要做口令管理這裡主要配置3個賬戶,sys賬戶,相當於MySQL的root賬戶;system賬戶,普通管理員,客戶端配置的時候會用到;scott賬戶,普通賬戶。測試Oracle是否安裝完成:在Dos窗口裡輸入命令sqlplus,使用者名稱和口令輸入system賬戶的使用者名稱和口令,如下,Oracle服務端安裝完成。 Oracle配置,由於這裡Oracle和Arcgis是安裝在一臺機器上,所以配置基本不用變更檢視Oracle的配置:服務名、網路地址。如果要配置Oracle非本地的訪問,可以檢視參考【1】1.1.2、安裝Oracle客戶端

Oracle客戶端需要安裝32位客戶端,因為ArcGIS DeskTop是32位。

開始安裝 警告不管 選擇管理員 選擇簡體中文自定義安裝路徑 完成 安裝中,時間會比較長 客戶端安裝完成

客戶端安裝完成後,需要進行配置

進入配置介面選擇本地網路服務名配置 選擇新增 填寫服務名 選擇TCP 填入主機名,選擇埠號選擇測試未成功,選擇更改登入填入system的使用者名稱、密碼連線測試成功

接下來選擇下一步直到結束,至此,Oracle客戶端安裝配置完成。

1.2、PostgreSQL(可選)

需要注意的是,PostgreSQL作為地理資料庫的時候需要安裝它的擴充套件postgis.

1.2.1、安裝PostgreSQL點選安裝包選擇安裝路徑,資料存放路徑設定超級使用者postgres的密碼選擇埠postgresql語言環境(預設)取消勾選使用Stack Builder完成安裝後window選單會有pgAdminⅢ的資料庫管理程式,開啟後使用剛才的密碼成功連線資料庫1.2.2、postgis安裝

PostgreSQL安裝完成後,安裝postgis。

執行可安裝檔案勾選Create spatial database(完成安裝後自動建立空間資料庫檢驗安裝)安裝目標路徑需要選擇剛才postgresql的安裝目錄 輸入剛才設定的密碼設定空間資料庫模板名稱(預設即可)安裝即將完成時彈出三個確認框:都選擇是開啟pgAdmin發現多了一個模板

postgis安裝完成。

2、ArcGIS相關軟體安裝

ArcGIS相關軟體按照如下順序安裝。

2.1、ArcGIS Server安裝點選 下一步……選擇安裝路徑 選擇Python27安裝路徑 配置ArcGis Server Account的賬號、密碼 不匯出配置檔案安裝安裝中,時間會比較長,再喝一杯茶 安裝完成選擇許可檔案配置完許可後,會開啟ArcGis管理頁面,選擇建立新站點 填入使用者名稱和密碼選擇根服務目錄 登入ArcgisServer站點 在站點上已經有一個世界地圖的服務 用當前機器的ip也可以訪問服務站點2.2、ArcGIS License Manager安裝

許可證管理器。

下一步……自定義安裝路徑安裝中,時間也得一會兒

為了後面的破解ArcGis Desktop:

進入許可證服務管理介面生成的文字全部複製 新建一個文字,命名為service.txt,將上面複製的文字貼上進去 將將破解檔案 ARCGIS.exe、service.txt複製到License Manager 安裝路徑bin目錄下替換掉已有的這兩個檔案。 啟動,重新讀取許可 2.3、ArcGIS Desktop安裝點選可執行檔案 下一步……選擇Complete 選擇安裝路徑 選擇Python27路徑不選安裝中,再喝一杯茶二、釋出地圖服務1、建立空白地圖開啟ArcMap後,建立空白地圖。儲存地圖

可以直接把shp格式的檔案給拉進去,會建立新的圖層。

到了這裡,其實就已經可以釋出地圖服務了。 當然了,為了對資料進行管理,還是要進行接下來的操作。2、建立資料夾連線在CateLog裡選擇資料夾連線建立和我們的測試資料資料夾的連線3、建立與ArcGIS Server的連線

為了釋出地圖服務,得建立和Arcgis Server的連線

新增ArcGIS Server連線選擇管理ArcGIS Server 填入ArcGis Server站點的相關資訊連線上Arcgis Server,可以把Arcgis Server的地圖直接拖進去3、建立企業級地理資料庫

可以從ArcGIS Desktop(Desktop Standard 或 Desktop Advanced)執行建立企業級地理資料庫工具,或從 ArcGIS Desktop、ArcGIS Server 或 ArcGIS Engine 客戶端執行 Python 指令碼,來建立 sde 使用者、方案、表空間和地理資料庫。

這裡透過建立企業級地理資料庫工具來建立企業級空間資料庫,該工具位於“資料管理”工具箱的“地理資料庫管理”工具集中:

3.1、Oracle開啟建立企業級地理資料庫工具,從資料庫平臺下拉列表中選擇 Oracle。 需要填寫連線到 Oracle 例項的相關資訊: ♦ 如果已經將 Oracle 客戶端配置為使用 TNS 網路別名,則在例項文字框中輸入 Net 服務別名。 ♦ 如果尚未配置 Oracle 客戶端的網路別名,並且 Oracle 資料庫和客戶端均配置為使用 Easy Connect 字串,則在例項文字框中提供 Oracle Easy Connect 字串。 ♦ 必須以資料庫管理員身份連線到資料庫才能建立地理資料庫管理員和表空間。因此,資料庫管理員文字框中應填入sys 使用者名稱。 ♦在資料庫管理員密碼文字框中輸入 sys 使用者的密碼。 ♦在地理資料庫管理員文字框中輸入 sde——如果資料庫中不存在 sde 使用者,則該工具會建立此使用者並授予其建立地理資料庫所需的許可權。如果使用者已存在,則會向其授予所需的許可權。 ♦在地理資料庫管理員密碼文字框中輸入 sde 使用者的密碼——如果資料庫中已存在 sde 使用者,需要確保為現有使用者輸入正確的密碼;此工具不會更改密碼。如果建立的是 sde 使用者,則輸入的密碼會在建立 sde 使用者時使用。 ♦為 sde 使用者指定表空間(可選)——如果擁有可用於地理資料庫資料檔案庫的預配置表空間,則可在表空間名稱文字框中輸入其名稱。 ♦如果想要此工具建立表空間,可在表空間名稱文字框中輸入有效的名稱,該工具會在 Oracle 預設位置建立一個 400 MB 的表空間。如果不輸入表空間名稱,則會建立 SDE_TBS 表空間,並將其設定為 sde 使用者的預設表空間。 ♦ 要指定授權檔案,使用授權 ArcGIS Server Enterprise 的授權檔案。建立中,得一會兒 建立完成3.2、PostgreSQL3.2.1、st_geometry.dll複製在Desktop安裝目錄 --> DatabaseSupport資料夾 --> postgreSQL資料夾 --> 9.2資料夾 --> Window64資料夾中找到st_geometry.dll檔案。將st_geometry.dll檔案複製到postgresql安裝目錄 --> lib資料夾中。3.2.2、5個用於連線的dll檔案複製

由於desktop是32位,postgresql是64位,我們需要將:

libeay32.dlllibiconv-2.dlllibintl.dllibpd.dllssleay.dll 5個檔案複製到Desktop安裝目錄 --> bin資料夾中,複製時選擇全部替換。3.2.3、建立postgresql資料庫在pgAdmin中新建資料庫名稱為sample,所有者為postgres,模板為postgis_20建立模式(從ArcGIS Catalog連線postgresql資料庫匯入資料時,資料庫中必須有postgres模式)。執行如下語句並顯示成功:
create schema postgres;複製程式碼

OK,PostgreSQL的相關配置完成了,可以建立建立企業級地理資料庫。

3.2.4、建立企業級地理資料庫(postgresql)資料庫平臺選擇PostgreSQL。例項填入localhost(本機)。資料庫選擇剛才建立的sample資料庫。資料庫管理員為超級使用者postgres。資料庫管理員密碼為自己設定的密碼地理資料庫管理員密碼自己設定授權檔案選擇arcgis server的授權檔案。建立成功:4、建立資料庫連線

企業級地理資料庫建立完成之後,就可以連線了。

4.1、Oracle資料庫連線中新建連線 輸入上一步中的資料庫相關配置 連線成功之後,可以看到資料庫連線4.2、PostgreSQL

資料庫平臺選擇PostgreSQL 例項為localhost 資料庫身份驗證:使用者名稱為超級使用者。密碼為自己設定的密碼 資料庫選擇剛才建立的sample資料庫

6、地理資料庫匯入資料

地理資料庫連線之後,可以為地理資料庫匯入資料了。這裡有兩種匯入的方式。

6.1、直接匯入資料庫連線,右鍵,import,可以選擇匯入單個或多個匯入單個 資料成功匯入地理資料庫,可以將導進去的資料直接拖出來 6.2、透過檔案空間資料庫匯入

上面的方式比較快捷,但是匯入失敗的機率相對要大一些,所以推薦用下面的方式。

在資料夾連線,右鍵,建立檔案空間資料庫新建的檔案空間資料庫匯入資料匯入成功 可以直接拖拽進地理空間資料庫 直接拖入可能會因為空間座標系不一致的原因失敗,還可以在空間資料庫上直接import7、釋出地圖服務

資料已經成功匯入企業級地理資料庫,接下里可以釋出地圖服務了。

將資料拖進去 可以對圖層進行編輯,分類等操作 釋出地圖服務選擇之前建立的和Arcgis Server的連線選擇服務目錄,這裡新建了一個目錄釋出之前可以先分析一下 釋出 8、檢視釋出的地圖服務

成功釋出的服務可以在Arc Map裡預覽,這裡從Arcgis Server站點檢視

1、ArcGIS直連Oracle失敗
Executing: CreateEnterpriseGeodatabase Oracle localhost/orcl # DATABASE_AUTH sys ***** SDE_SCHEMA sde ***** # D:\SoftwareFile\易智瑞版\arcgisserver10.2.ecpStart Time: Thu Apr 02 18:07:32 2020Cannot connect to database because the database client software failed to load.  Be sure the database client software is installed and configured correctly.Failed to execute (CreateEnterpriseGeodatabase).Failed at Thu Apr 02 18:07:32 2020 (Elapsed Time: 0.01 seconds)複製程式碼

這個問題通常是這些原因導致的:

在ArcGIS for Desktop計算機上未安裝Oracle客戶端嘗試從ArcMap或ArcCatalog(這是32位應用程式)連線到Oracle時,僅安裝64位客戶端嘗試從ArcGIS for Server或ArcGIS Pro(64位應用程式)連線到Oracle時,僅安裝32位客戶端。

解決辦法:

要解決此問題,請確保已安裝Oracle客戶端,並且客戶端的位級別與連線的應用程式的位級別匹配。如果32位客戶端和64位客戶端都安裝在同一臺計算機上,則必須在Windows作業系統的PATH環境變數中首先列出64位客戶端。

我的錯誤原因是隻安裝了64位的客戶端,再裝一個32位的客戶端,把Path中64位的變數列在前面。

然後,重啟電腦,問題解決。

2、PostgreSQL作為資料庫沒有資料表

PostgreSQL作為企業級地理資料庫,剛連線的時候沒有資料

正常應該是這種:

另外,PostgreSQL匯入資料時,偶爾會失敗,原因還未排查出啦。

End!

20
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 龜兔賽跑python版:你不知道的turtle功能