全部產品
Search
文件中心

PolarDB:載入向量資料

更新時間:Oct 15, 2024

本文介紹如何將向量資料載入到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)是一個使用者介面友好的開源案頭軟體,支援多種向量、柵格格式以及資料庫作為資料來源,同時支援資料的可視化、管理、編輯、分析以及印刷地圖的製作。

  1. 建立GanosBase串連。

    1. Browser視窗中,右鍵PostgreSQL,單擊New Connection...,建立串連。image.png

    2. 填入必要參數。

      image.png

      參數說明如下:

      參數名稱

      描述

      Name

      自訂串連。

      Host

      資料庫叢集的IP地址或PolarDB外網地址,可以從控制台中獲得。

      Port

      資料庫叢集的連接埠地址,可以從控制台中獲得。

      Database

      需要串連的資料庫名。

      SSL Mode

      是否使用SSL加密串連。

    3. 單擊Test Connection,在彈出的Enter Credentials視窗中輸入UsernamePassword,單擊ok,等待串連成功。

    4. 測試連接成功後,單擊ok,完成建立。

  2. 載入向量資料。

    1. 單擊功能表列Database > DB Manager..

    2. 在彈出的資料庫連接對話方塊中,選擇需要匯入的資料來源並單擊Import Layer/File...

    3. 在彈出的匯入向量資料對話方塊中,指定需要匯入的向量資料並設定匯入選項,最後單擊OK執行匯入操作。