又熬夜了...sql
這篇博客可能會將QGIS數據管理部分和ArcGIS數據管理進行對比學習。數據庫
QGIS用的是shp文件、kml文件、geojson文件較多,gml也可...json
ArcGIS不用說,幾乎全都支持(請放棄使用遠古的Coverage格式···)數據結構
當前最通用仍是shp文件,不是由於它性能優秀,是由於歷史緣故。工具
QGIS我目前使用了GeoPackage這個本地數據庫,它有3個子文件組成:*.gpkg、*.gpkg-wal、*.gpkg-shmpost
ArcGIS本地數據庫有兩種,mdb已經不推薦了,大多數時候仍是gdb性能
ps:ArcGIS內置的數據結構規定了ArcGIS的數據庫只能是面向對象的。學習
爲了提升性能,通常採用關係數據庫。插件
QGIS我目前已經學會Postgresql的PostGIS插件,一般稱爲PostGIS數據庫對象
此外,QGIS還支持SpatialLite、SQLite、MySQL、Oracle、DB2這些數據庫MS
ArcGIS在ArcSDE的支持下,幾乎全部的第三方關係數據庫均可以鏈接上去,可是不必定是最新版本
PostGIS提供了一款shp/dbf2postgis工具,支持dbf或者shp文件(必須英文名)導入導出PostGIS數據庫
確定會有數據編輯的時候,我目前作過的操做是
在本地建立GeoPackage數據庫和矢量數據,編輯完成後轉存到PostGIS數據庫裏。
矢量數據編輯無非就兩種數據
第一種就是地理信息數據,也叫空間數據,通常在關係數據庫或者ArcGIS屬性表裏以幾何字段表示,這就是這份數據的幾何信息。
第二種就是非空間數據,也叫屬性數據。即關係數據庫裏的表或者ArcGIS屬性表的其餘列,能夠存儲對應的空間數據下的其餘信息。
(bb一句,空間分析圍繞着空間數據和非空間數據展開,能夠只分析空間數據,也能夠只分析非空間數據,固然也能夠兩者結合一塊兒分析)
固然也有一種簡便的空間數據編輯方法,即直接對PostGIS裏的矢量數據(被稱做表)進行編輯。
概念:模式。
模式就是一個虛擬的目錄。打個比方,見下圖
PracDB數據庫下就有5個模式,這至關於ArcGIS裏的要素數據集;而模式下的表即對應ArcGIS要素數據集下的要素類。只不過,ArcGIS要素數據集下的要素類遠遠不止普通的矢量數據罷了。
我在PracDB數據庫下新建了一個MyGZApp模式;其餘四個模式是PostGIS模板必須的模式,在不知道具體構成的狀況下,我先不改動這四個模式下的數據,建立本身的模式用於管理數據。
在QGIS3.4中,使用數據庫工具(或者菜單欄上的數據庫管理工具)便可進行PostGIS數據庫的數據操做。
使用表格菜單,能夠建立普通數據表,也能夠建立帶幾何字段的空間矢量數據,也能夠導入支持的全部類型的數據。
在建立表的時候,就能夠指定非空間數據所定義的列的信息了,好比列名(即屬性名)、列數據類型(整形浮點型文本型日期型等)、數據長度等。
建立空間數據時,須要指定幾何數據,不然就是普通的表格了。上圖中點矢量和普通表格的圖標仍是不一樣的(在MyGZA...那個模式下)
在這個表格菜單下的「編輯表格」按鈕,也能夠對已有的矢量數據進行列編輯,增刪改均可以(見下圖)。
注意:普通數據表在瀏覽面板裏是看不到的:
當前,貌似不支持手工輸入座標新建點,可是能夠用頂點編輯工具修改座標值:
激活這個工具,右鍵須要編輯的頂點,就能夠編輯其xy座標了,x是經度,y是緯度(假如你用的是GCS)
未完待續(還想試試導入csv或者其餘數據)