本文介绍如何将矢量数据加载到Ganos中,建议您使用的工具为shp2pgsql、ogr2ogr或QGIS。
在加载矢量数据之前,请确保在数据库中已输入如下命令,来创建ganos_geometry扩展:
语法
如果您已经安装了PostGIS,那么shp2pgsql工具默认包含在PostGIS安装包中。您可以从PostGIS官方网站下载适用于您操作系统的安装包,并按照安装指南进行安装。
如果您使用的是Linux操作系统,您可以尝试通过包管理器安装PostGIS。以CentOS为例,使用yum -y install postgis命令,即可获取shp2pgsql工具。
参数说明
参数名称
描述
示例
-s <srid>
空间参考ID。
4490
-c
创建一张新表。
您也可以选择其他模式:
-a:追加
-d: 加载数据之前先删除表
-p: 仅创建表结构SQL,不写入空间数据
-W <charset>
shapefile字符集。
"GBK" 或 "UTF8"
<path_to_shpfile>
shapefile 文件路径,需要被shp2pgsql命令工具访问到。
<schema>.<table_name>
创建的geometry表的名称。
-d <dbname>
数据库名称。
mydb
-h <host>
数据库实例地址。
-U <user_name>
用户名。
my_name
-p <port>
端口号。
5432
示例
如果需要在脚本中批量导入,为防止频繁提示输入密码,可以在脚本中设置环境变量PGPASSWORD:export PGPASSWORD=my_pass。
使用ogr2ogr命令行工具加载矢量数据,请先确保GDAL支持postgis驱动格式。
语法
如果您已经安装了GDAL,那么ogr2ogr工具默认包含在GDAL安装包中。您可以从GDAL官方网站下载适用于您操作系统的安装包,并按照安装指南进行安装。
如果您使用的是Linux操作系统,您可以尝试通过包管理器安装GDAL。以CentOS为例,使用如下命令,即可获取ogr2ogr工具。
参数说明
参数名称
描述
示例
-nln <table_name>
矢量表名称。
roads
-f PostgreSQL PG:"dbname='<dbname>' host='<host>' port='<port>' user='<user_name>' password='<password>'"
PostgreSQL连接信息。
-lco SPATIAL_INDEX=GIST
指定需要创建GisT空间索引。
-lco FID=<FID_NAME>
指定fid名称。
fid
-overwrite
改写模式。
您也可以选择其他模式: -append追加模式。
<PATH_TO_FILE>
矢量数据文件路径,请确保ogr2ogr命令行工具拥有访问权限。
-nlt GEOMETRY
指定几何类型为geometry,在加载多边形时建议指定,防止出现multipolygon类型与非multipolygon在同一个文件中加载出错问题。
示例
创建Ganos连接。
填入必要参数。
参数说明如下:
参数名称
描述
Name
自定义连接。
Host
数据库实例的IP地址或RDS或PolarDB外网地址,可以从aliyun控制台中获得。
Port
数据库实例的端口地址,可以从aliyun控制台中获得。
Database
需要连接的数据库名。
SSL Mode
是否使用SSL加密连接。
单击Test Connection,在弹出的Enter Credentials窗口中输入Username和Password,单击ok,等待连接成功。
测试连接成功后,单击ok,完成创建。
加载矢量数据。
单击菜单栏Database > DB Manager..。
在弹出的数据库连接对话框中,选择需要导入的数据源并单击Import Layer/File...。
在弹出的导入矢量数据对话框中,指定需要导入的矢量数据并设置导入选项,最后单击OK执行导入操作。
关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务