本文介紹如何將向量資料載入到GanosBase中,建議您使用的工具為shp2pgsql、ogr2ogr或QGIS。
準備工作
在載入向量資料之前,請確保在資料庫中已輸入如下命令,來建立ganos_geometry擴充:
CREATE EXTENSION ganos_geometry CASCADE;shp2pgsql命令列工具
shp2pgsql命令列工具是一個將Esri Shapefile檔案轉換為SQL檔案的命令列工具。通過將Shapefile轉換為SQL檔案,可以實現將Shapefile資料載入到GanosBase中。
文法
說明如果您已經安裝了PostGIS,那麼shp2pgsql工具預設包含在PostGIS安裝包中。您可以從PostGIS官方網站下載適用於您作業系統的安裝包,並按照安裝指南進行安裝。
如果您使用的是Linux作業系統,您可以嘗試通過包管理器安裝PostGIS。以CentOS為例,使用
yum -y install postgis命令,即可擷取shp2pgsql工具。
shp2pgsql -s <srid> -c -W <charset> <path_to_shpfile> <schema>.<table_name> | psql -d <dbname> -h <host> -U <user_name> -p <port>參數說明
參數名稱
描述
樣本
-s <srid>
空間參考ID。
4490
-c
建立一張新表。
您也可以選擇其他模式:
-a:追加
-d: 載入資料之前先刪除表
-p: 僅建立表結構SQL,不寫入空間資料
無
-W <charset>
shapefile字元集。
"GBK" 或 "UTF8"
<path_to_shpfile>
shapefile檔案路徑,需要被shp2pgsql命令工具訪問到。
/home/roads.shp
<schema>.<table_name>
建立的geometry表的名稱。
public.roads
-d <dbname>
資料庫名稱。
mydb
-h <host>
資料庫執行個體地址。
pgm-xxxxxxx.pg.rds.aliyuncs.com
-U <user_name>
使用者名稱。
my_name
-p <port>
連接埠號碼。
5432
樣本
5432shp2pgsql -s 4490 -c -W "GBK" /home/roads.shp public.roads | psql -d mydb -h pgm-xxxxxxx.pg.rds.aliyuncs.com -U my_name -p 5432說明如果需要在指令碼中大量匯入,為防止頻繁提示輸入密碼,可以在指令碼中設定環境變數PGPASSWORD:
export PGPASSWORD=my_pass。
ogr2ogr命令列工具
ogr2ogr是GDAL/OGR提供的向量資料轉換工具,支援Esri Shapefile,MapInfo和FileGDB等常見向量資料類型。向量資料類型參見向量資料類型。
使用ogr2ogr命令列工具載入向量資料,請先確保GDAL支援postgis驅動格式。
文法
說明如果您已經安裝了GDAL,那麼ogr2ogr工具預設包含在GDAL安裝包中。您可以從GDAL官方網站下載適用於您作業系統的安裝包,並按照安裝指南進行安裝。
如果您使用的是Linux作業系統,您可以嘗試通過包管理器安裝GDAL。以CentOS為例,使用如下命令,即可擷取
ogr2ogr工具。sudo yum install epel-release sudo yum install gdal gdal-devel ogr2ogr --version
ogr2ogr -nln <table_name> -f PostgreSQL PG:"dbname='<dbname>' host='<host>' port='<port>' user='<user_name>' password='<password>'" -lco SPATIAL_INDEX=GIST -lco FID=<FID_NAME> -overwrite "<PATH_TO_FILE>" -nlt GEOMETRY參數說明
參數名稱
描述
樣本
-nln <table_name>
向量表名稱。
roads
-f PostgreSQL PG:"dbname='<dbname>' host='<host>' port='<port>' user='<user_name>' password='<password>'"
PostgreSQL串連資訊。
dbname='mydb' host='pgm-xxxxxxx.pg.rds.aliyuncs.com' port='5432' user='my_name' password='my_pass'
-lco SPATIAL_INDEX=GIST
指定需要建立GisT空間索引。
無
-lco FID=<FID_NAME>
指定fid名稱。
fid
-overwrite
取代模式。
您也可以選擇其他模式: -append追加模式。
無
<PATH_TO_FILE>
向量資料檔案路徑,請確保ogr2ogr命令列工具擁有存取權限。
/home/roads.shp
-nlt GEOMETRY
指定幾何類型為geometry,在載入多邊形時建議指定,防止出現multipolygon類型與非multipolygon在同一個檔案中載入出錯問題。
無
樣本
ogr2ogr -nln roads -f PostgreSQL PG:"dbname='mydb' host='pgm-xxxxxxx.pg.rds.aliyuncs.com' port='5432' user='my_name' password='my_pass'" -lco SPATIAL_INDEX=GIST -lco FID=fid -overwrite "/home/roads.shp" -nlt GEOMETRY
QGIS案頭工具
QGIS(原稱Quantum GIS)是一個使用者介面友好的開源案頭軟體,支援多種向量、柵格格式以及資料庫作為資料來源,同時支援資料的可視化、管理、編輯、分析以及印刷地圖的製作。
建立GanosBase串連。
在Browser視窗中,右鍵PostgreSQL,單擊New Connection...,建立串連。

填入必要參數。

參數說明如下:
參數名稱
描述
Name
自訂串連。
Host
資料庫叢集的IP地址或PolarDB外網地址,可以從控制台中獲得。
Port
資料庫叢集的連接埠地址,可以從控制台中獲得。
Database
需要串連的資料庫名。
SSL Mode
是否使用SSL加密串連。
單擊Test Connection,在彈出的Enter Credentials視窗中輸入Username和Password,單擊ok,等待串連成功。
測試連接成功後,單擊ok,完成建立。
載入向量資料。
單擊功能表列。
在彈出的資料庫連接對話方塊中,選擇需要匯入的資料來源並單擊Import Layer/File...。
在彈出的匯入向量資料對話方塊中,指定需要匯入的向量資料並設定匯入選項,最後單擊OK執行匯入操作。