PostGIS 結合Openlayers以及Geoserver實現最短路徑分析(一)


環境:

Win10

ArcMap10.4(用於數據處理)

postgresql9.4

postgis2.2.3

pgRouting2.3(postgresql插件)

##附上本文配套素材下載地址:https://download.csdn.net/download/guzicheng1990/11830419

說明:

在做網絡分析中,最麻煩的莫過於數據的配合了。接口寫對了,但是數據沒做好還是查不出數據,讓網絡分析功能大打折扣。

網絡分析也是gis眾多分析功能中對數據要求最高的了,其中要建立好拓撲關系,點在線上、點在線節點上、點在線外等等都會出不同的結果。

這里先把功能寫完,后續繼續研究,繼續填坑。

步驟:

 1、在ArcMap中新建線圖層,畫如圖網格

2、新增id字段,給id字段進行賦值:id = FID+1

#這里有個坑,后面shp文件用postgis自帶的shapefile導入工具導入postgis時,主鍵FID會變成gid,並且gid會比FID大1

#這樣在查看網絡分析得到的結果時,可以利用id在arcmap中搜索了

 

3、用ArcMap中,打開Advanced Editing工具,用其Line Intersection功能,將線兩兩打斷

 

 

 4、線最終打斷結果(為了邏輯清晰,我在線上顯示了id的標注)

 

 

5、繼續新增一個點圖層,在每個斷點處設置個點,並新增Id字段(暫時不賦值,留着后面用)

## Id字段在后面Postgis里建立完拓撲以后賦值(紅色標識,與source和target有對應關系,表示線段的兩個端點編號,最終成品如下

 

 

6、打開Postgis Shapefile導入工具,設置完數據庫連接,選擇Add File找到處理完的線圖層,設置坐標系,將Options最后一項選中,最后執行Import!

 

 

7、如果導入時報錯“Shapefile type: Arc PostGIS type: LINESTRING[2] We have a Multilinestring with 2 parts, can’t use -S switch!錯誤”,可以在ArcGIS中,把線打斷。

數據管理工具→要素→要素轉線(Data Management Tools-->Features-->Feature To Line)

 

 

8、導進Postgis后,這批第一步驟可以算告一段落,接下來的操作多數在Postgis中。

 后續:

在后續項目中,遇到了一個情況:我有批ArcGIS數據已經完成,這批數據是ArcSDE導入的,但是SDE導入的數據,沒有第六步檢驗是否有MULTI類型,導致后面pgRouting建拓撲時報錯。

而且ArcSDE里主鍵是objectid,圖形字段是shape;postgis導入工具導入主鍵是gid,圖形字段是geom。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM