最近一直在從事 arcGIS 的相關(guān)工作,從地圖服務(wù)搭建宣蔚、開發(fā)到發(fā)布也算是完整體驗(yàn)了一遍,這里開個(gè)專欄把積累的經(jīng)驗(yàn)分享一下认境。首先要感謝大佬一直以來的支持和講解胚委,不勝感激,這里是他的博客 CSDN - 頑皮的石頭叉信,里面涉及到了有關(guān) GIS 的更多內(nèi)容亩冬,有興趣的朋友可以閱讀一下。
本篇不涉及任何專業(yè)知識(shí)茉盏,簡(jiǎn)單講一下發(fā)布地圖服務(wù)需要用到的軟件鉴未、技術(shù)和名詞。本篇(上)介紹地圖發(fā)布中用到的軟件和流程鸠姨,(下)講一下地理信息處理中的一些基本名詞。如果你之前從來沒接觸過這類技術(shù)的話淹真,讀完本文會(huì)讓你對(duì)地圖技術(shù)有一個(gè)大體的認(rèn)知讶迁。
OK,廢話少數(shù)核蘸,現(xiàn)在開始吧巍糯。
什么是 arcGIS 啸驯?
作為本系列的標(biāo)題,arcGIS 可能是你會(huì)接觸到的最多的一個(gè)詞祟峦。arcGIS 是一大堆地理數(shù)據(jù)相關(guān)的軟件罚斗,功能非常齊全。由地理界扛把子 ESRI 開發(fā)宅楞,arcGIS 官網(wǎng)請(qǐng)點(diǎn) 這里 针姿。我們發(fā)布地圖服務(wù)就是用其中的 arcGIS Server。
arcGIS 中有兩個(gè)重要分支 arcGIS Desktop 和 arcGIS Online厌衙,兩者功能差不多距淫,區(qū)別就是一個(gè)是在桌面級(jí)電腦中處理地圖數(shù)據(jù),而一個(gè)是在線處理數(shù)據(jù)婶希。而在本專欄中榕暇,我們只會(huì)用到 arcGIS Desktop 其中的一個(gè)軟件 arcMap。
什么是 arcGIS Server 喻杈?
如果你是從事軟件開發(fā)的話彤枢,你可以簡(jiǎn)單的將其理解成 tomcat 或者 nginx。我們給 arcGIS Server 提供數(shù)據(jù)來源和一個(gè)地圖文檔(.mxd
文件)筒饰,它就會(huì)將數(shù)據(jù)處理成地圖文檔中規(guī)定好的樣子堂污,并對(duì)外提供 gis web 服務(wù)。我們最終會(huì)把地圖服務(wù)通過它發(fā)布到網(wǎng)絡(luò)上龄砰。
你可以點(diǎn)擊 這里 查看更多關(guān)于 arcGIS Server 的信息盟猖。也可以點(diǎn)擊 這里 查看一個(gè)免費(fèi)的由 arcGIS Server 發(fā)布的地圖服務(wù)。
什么是 arcMap 换棚?
arcMap 是本專欄的核心式镐,它是一個(gè)收費(fèi)的桌面應(yīng)用,我們可以用它來從零開始制作一個(gè)地圖固蚤,并進(jìn)行非常詳細(xì)的地圖樣式設(shè)計(jì)娘汞。arcMap 中還提供了很多地理數(shù)據(jù)處理相關(guān)的工具,方便你進(jìn)行地理信息的篩選和分析夕玩。
并且它還支持從多個(gè)渠道(例如一個(gè)普通文件夾你弦,或是一個(gè)企業(yè)級(jí)地理數(shù)據(jù)庫)導(dǎo)入數(shù)據(jù),方便我們處理其中的地理數(shù)據(jù)燎孟。也支持添加 arcGIS Server禽作,從而管理或者使用其中發(fā)布的地圖服務(wù)。
arcMap 還有很多其他功能揩页,包括提供了一個(gè) python 包 arcpy
旷偿,從而實(shí)現(xiàn)了用代碼批量處理地理數(shù)據(jù)。這里不再深入展開。點(diǎn)擊 這里 來查看官方介紹萍程。
而我們要用它做的就是幢妄,將搭建好的 arcGIS Server 和地理數(shù)據(jù)庫連接進(jìn)來,然后將數(shù)據(jù)庫中的數(shù)據(jù)處理好后(形成 .mxd 文檔)發(fā)布到 arcGIS Server茫负。
存儲(chǔ)地理數(shù)據(jù)
保存地理數(shù)據(jù)的方式有很多蕉鸳,大致上可以分為兩種,文件存儲(chǔ) 和 數(shù)據(jù)庫存儲(chǔ)忍法。
文件存儲(chǔ)
顧名思義潮尝,文件存儲(chǔ)就是將地理數(shù)據(jù)以文件的形式存儲(chǔ)起來。其中最常用的就是 Shapefile
(.shp
文件 )缔赠,這個(gè)格式也是由上面提到的那個(gè) ESRI 開發(fā)衍锚,目前已經(jīng)成為了地理信息軟件界的開放標(biāo)準(zhǔn)。
另外兩種文件格式分別是.mdb
和.gdb
嗤堰,把這兩者歸類到文件存儲(chǔ)類型中其實(shí)不太準(zhǔn)確戴质,因?yàn)檫@兩種本身就是個(gè)數(shù)據(jù)庫,詳細(xì)見下方解釋踢匣。但是由于這兩者我們直接導(dǎo)入到 arcMap 中就可以使用告匠,不用安裝額外的數(shù)據(jù)庫軟件,所以這里將其歸類到文件存儲(chǔ)中离唬。
.mdb
和.gdb
有什么不同后专?
mdb
文件:中文名“個(gè)人地理數(shù)據(jù)庫”∈漭海可以通過 Microsoft Access 進(jìn)行訪問戚哎,ArcGIS 也可以通過 mdb 數(shù)據(jù)庫發(fā)布地圖,該文件最大大小只有 2GB嫂用。只能用在 windows 系統(tǒng)下型凳。
gdb
文件:中文名“地理數(shù)據(jù)庫”或“空間數(shù)據(jù)庫”≈龊可以用于直接向Web地圖服務(wù)器軟件提供數(shù)據(jù)甘畅,如 ArcGIS Server。GDB 沒有最大空間限制往弓,可以在各種操作系統(tǒng)中使用疏唾,并且性能優(yōu)于 MDB。
我們從客戶手中拿到的地理數(shù)據(jù)一般都是 mdb 或者 gdb 格式函似。而在平時(shí)的地理數(shù)據(jù)處理中一般使用 shp 文件作為臨時(shí)存儲(chǔ)槐脏。
數(shù)據(jù)庫存儲(chǔ)
這里的數(shù)據(jù)庫存儲(chǔ)和上面 mdb/gdb 不同的地方在于,我們需要為其安裝額外的基礎(chǔ)數(shù)據(jù)庫軟件缴淋,在本專欄中准给,我會(huì)使用地理數(shù)據(jù)存儲(chǔ)中比較常見的postgreSQL
配合postGIS
插件進(jìn)行存儲(chǔ)泄朴。
什么是 postgreSQL ?
PostgreSQL 是開源的對(duì)象-關(guān)系數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)重抖。在地理數(shù)據(jù)存儲(chǔ)中有著非常廣泛的應(yīng)用露氮。并且 PostgreSQL 擁有數(shù)量眾多的插件,你可以使用這些插件靈活的進(jìn)行拓展钟沛。
什么是 postGIS ?
postGIS 是 PostgreSQL 上的一個(gè)插件畔规,安裝該插件后我們就可以在 PostgreSQL 中存儲(chǔ)地理數(shù)據(jù)。
完成這兩者的安裝之后恨统,我們就可以使用 postGIS 自帶的導(dǎo)入工具將上文中提到的文件存儲(chǔ)形式的地理數(shù)據(jù)導(dǎo)入到 PostgreSQL 數(shù)據(jù)庫中叁扫。不僅如此,我們還可以通過 arcMap 在 PostgreSQL 數(shù)據(jù)庫中創(chuàng)建更高級(jí)的企業(yè)級(jí)地理數(shù)據(jù)庫 SDE
(同樣需要安裝 postGIS 插件 )畜埋。
這兩中數(shù)據(jù)存儲(chǔ)方式有什么不同呢莫绣?使用 postGIS 自帶工具導(dǎo)入的數(shù)據(jù)會(huì)保存成 postGIS 原生格式,就可以 使用更多更全面的數(shù)據(jù)處理工具進(jìn)行操作悠鞍,但是由于 arcGIS 在處理這種格式的數(shù)據(jù)時(shí)需要先轉(zhuǎn)換成自己可以處理的格式对室,所以在 地圖處理和地圖發(fā)布時(shí)會(huì)更慢。
而使用 SDE
進(jìn)行存儲(chǔ)時(shí)咖祭,arcGIS 無需進(jìn)行格式狀態(tài)就可以直接使用掩宜,所以 速度會(huì)更快。而同樣的么翰,我們可用的工具就會(huì)變少牺汤。不過對(duì)于我們來說并不需要這么多的數(shù)據(jù)處理工具,而且用戶在使用時(shí)會(huì)更注重服務(wù)的反應(yīng)速度浩嫌。所以本專欄中將會(huì)采用 SDE
的形式保存地理數(shù)據(jù)檐迟。
小結(jié)
本文簡(jiǎn)單介紹了在地圖發(fā)布中會(huì)用到的軟件,在后面我們會(huì)一一對(duì)其進(jìn)行介紹:
地圖制作:arcMAP码耐。
地圖發(fā)布:arcGIS Server追迟。
地理數(shù)據(jù)存儲(chǔ):postgreSQL + postGIS。
點(diǎn)擊繼續(xù)閱讀 arcGIS 基本介紹(下)伐坏,你也可以訪問 arcGIS 發(fā)布地圖服務(wù) 來了解更多信息怔匣。