本文介绍如何将矢量数据加载到Ganos中,建议您使用的工具为shp2pgsql、ogr2ogr或QGIS。
准备工作
在加载矢量数据之前,请确保在数据库中已输入如下命令,来创建ganos_geometry扩展:
CREATE EXTENSION ganos_geometry CASCADE;shp2pgsql命令行工具
shp2pgsql命令行工具是一个将Esri Shapefile文件转换为SQL文件的命令行工具。通过将Shapefile转换为SQL文件,可以实现将Shapefile数据加载到Ganos中。
- 语法 说明- 如果您已经安装了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)是一个用户界面友好的开源桌面软件,支持多种矢量、栅格格式以及数据库作为数据源,同时支持数据的可视化、管理、编辑、分析以及印刷地图的制作。
- 创建Ganos连接。 - 在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执行导入操作。