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