本文先介紹了arcgis 10.x連接postgresql數據庫的通用規則,然後對在postgresql中創建sde進行說明,最後對postgresql+postgis存儲空間數據的兩種方式進行比較,說明他們各自的特點。
1、arcgis 10.x可以連接postgresql/postgis數據庫,對版本沒有明確的限制;
(1)Arcgis desktop連接postgis,對desktop和postgis版本沒有明確要求,只因desktop是32位,故需要從32位版本的 postgresql中拷貝 幾個文件(一般直接下載32bit的 binary文件,下載地址https://www.enterprisedb.com/download-postgresql-binaries):
libeay32.dll、libintl.dll、libpq.dll 和 ssleay32.dll (也有說以下5個文件的:libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll 和 ssleay32.dll)到arcgis desktop安裝目錄bin下面(ArcGIS\Desktop10.3);
(2)通過arcgis dedktop連接postgis,創建sde並實現對數據的入庫、編輯等,對arcgis desktop及postgis有版本要求,需保持兩者版本的協調性,如10.3:
連接的詳細信息,可參考 https://www.cnblogs.com/esrichina/p/4389109.html
此時需要把\ArcGIS\Desktop10.3\DatabaseSupport\PostgreSQL 路徑下對應版本的 st_geometry.dll 和 libst_raster_pg.dll拷貝到 pg安裝目錄下!
2、若需要通過arcgis toolbox中的 創建企業級數據庫 在postgis中創建企業級地理數據庫,對arcgis 及 postgis的版本有明確的要求,詳細參考 desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/gdbs-in-postgresql/overview-geodatabases-postgresql.htm;
3、postgis對空間數據的存儲,分爲兩種:
一是postgis默認的存儲,可通過自帶工具實現數據的入庫;
二是通過arcgis創建企業級地理數據庫,這種方式是arcsde的方式,可使用arcgis desktop進行數據管理。
兩種方式區別:
第一種方式,支持所有桌面軟件(包括arcgis desktop)及geoserver的連接,可作爲通用數據源;
通過arcgis desktop連接加載數據,速度相對慢一些(需要計算數據範圍),且發佈arcgis server服務過程中,出現錯誤突然崩掉~
第二種方式,只支持arcgis desktop的連接,geoserver中連接需要額外的插件,不支持qgis、udig等。
此種方式,postgresql+postgis相當於一個基礎數據庫,空間庫的存儲及管理依賴arcgis 的空間數據引擎arcsde,可通過arcgis desktop進行數據的入庫、編輯等,但已不支持postgis的空間函數~
具體用哪種方式對數據進行存儲和管理,需要根據具體需求確定,我目前更多使用postgis默認的存儲方式。