14.2.?用法示例

  1. 准备空间数据库相关的.shp文件放到demo文件夹中备用。

    .shp 文件中存的是图形的信息。

    .dbf 文件中存的是属性的信息。

    .prj 文件中存的是坐标的信息。

    .sbn和.sbx 文件中存的空间索引。

    在此以导入.shp文件为例。

    注意

    要使用uxgis的.shp文件转换功能,必须要安装uxgis安装包(可找优炫技术人员获取),否则使用过程中会报找不到libwgeom-2.4.so.0库错误,如下图示:

    建议将安装包安装到默认路径下,因为Uxgis编译安装是在默认路径下进行的。

  2. Shape数据转换为sql文件。

    进入uxdbinstall/dbsql//bin目录下,创建demo文件夹,使用如下命令进行转换:

    shp2pgsql -s 3857 -c -W "GBK" /home/uxdb/Desktop/demo/hyd1_4l.shp >demo/hyd1_4l.sql

    参数说明:

    • -s 代表指定数据的SRID

    • -c 代表数据将新建一个表

    • -d 删除旧的表,重新建表并插入数据

    • -a 向现有表中追加数据

    • -p 仅创建表结构,不添加数据

    • -W Shape文件中属性的字符集

      有时Shape数据中的字符集是其他,就可能报“Unable to convert data value to UTF-8 (iconv reports "无效或不完整的多字节字符或宽字符"). Current encoding is "UTF-8". Try "LATIN1" (Western European)”错误,这时候指定正确的字符集即可解决问题。

  3. 建立空间数据库,并创建PostGIS相关扩展。

    1. 进入uxdbinstall/dbsql/bin目录下,创建数据库。

      initdb -W -D testdb
    2. 修改配置文件testdb/uxsinodb.conf,使其能进行postgis扩展。

      去掉shared_preload_libraries的注释,进行修改。

      shared_preload_libraries = 'postgres_adaptor'           # (change requires restart)

      设置adaptor_pg_ux_mode_switch。

      adaptor_pg_ux_mode_switch = on
    3. 使用uxdb命令启动数据库,并通过uxsql连接。

      uxdb -D testdb
    4. 创建postgis扩展。

      CREATE ROLE  gisdb;
      CREATE DATABASE shp2pgsqldemo WITH OWNER=gisdb;
      \c shp2pgsqldemo;
      CREATE EXTENSION postgis;
      CREATE EXTENSION fuzzystrmatch;
      CREATE EXTENSION postgis_sfcgal;
      CREATE EXTENSION postgis_topology;
      CREATE EXTENSION postgis_tiger_geocoder; 
      CREATE EXTENSION address_standardizer; 
      CREATE EXTENSION address_standardizer_data_us; 
  4. 使用uxsql向数据库导入使用Shape数据生成的.sql文件。

    uxsql -d shp2pgsqldemo -f demo/hyd1_4l.sql -W

    导入成功,结果展示:

  5. 验证数据。

    \d
    SELECT COUNT(*) FROM hyd1_4l;
    SELECT COUNT(*) FROM spatial_ref_sys;
    SELECT * FROM us_lex;
XML 地图 | Sitemap 地图