干货分享|优炫数据库支撑GIS融合的探索

发布于:2023-01-02 ⋅ 阅读:(544) ⋅ 点赞:(0)

研究表明,人类活动80%的信息与地理位置有关,地理信息是准确掌握国情国力的重要前提。在“数字中国”和“新基建”建设的浪潮中,国家信息化发展步入新的阶段,维护地理信息安全,容不得半点马虎。

优炫数据库支持GIS的地理信息应用,支持PostGIS、ArcGIS及国产GIS软件,支持 OpenGIS 联盟(开放地理信息系统,OGC)抽象数据类型的 SQL3 规范,提供对地理矢量数据、3D 模型、线性参考数据的组织、存储、空间索引和管理。支持面向 LBS 位置的数据处理能力,满足交通、公安刑侦、物流、地质、气象、水利等多行业对地理信息的处理需求。

UXGIS插件工具,是基于优炫数据库针对空间数据存储和操作的扩展。该扩展可以有效的将空间数据类型、空间索引和空间函数组合在一起,提供了灵活的结构用于优化性能和分析。

UXGIS的主要功能

1

以插件的形式对底层数据库的扩展;

2

通过SQL语言操纵空间数据;

3

支持点、线、面、栅格等空间数据类型;

4

提供B-tree、R-tree等空间索引;

5

提供转换、管理、检索、比较等空间函数。

6

UXGIS使用场景为海量GIS数据的高效存储,丰富的数据类型和多样的数据处理。

在国家生态环境信息化工程项目中,优炫数据库提供对空间数据的存储和数据管理能力,有效的保障了业务系统与 GIS 系统的顺畅对接;在某省三地国土资源局农村房地一体确权项目中,提供优炫数据库,按照地籍调查数据文件命名规划、空间数据分层要求和属性数据库结构,建立空间数据库和属性数据库,支持PostGIS、ArcGIS接入,保障了地理信息的实时录入与调用,同时提供数据备份、透明加密、审计、脱敏等产品,确保地理信息应用与数据安全。

此外,优炫数据库积极与业内主流国产GIS厂商如超图、武大吉奥、南方数码、中地数码等完成产品兼容适配工作,力求能够与国产主流GIS产品取得良好的协同应用效果,助力地理空间信创产业生态建设。

以下为UXGIS用法介绍

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

.shp 文件中存的是图形的信息。.dbf 文件中存的是属性的信息。.prj 文件中存的是坐标的信息。.sbn和.sbx 文件中存的空间索引。在此以导入.shp文件为例。

注意 :要使用uxgis的.shp文件转换功能,必须要安装uxgis安装包(可找优炫技术人员获取),否则使用过程中会报找不到libwgeom2.4.so.0库错误,建议将安装包安装到默认路径下,因为uxgis编译安装是在默认路径下进行的。

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

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

shp2pgsql-s3857-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.建立空间数据库,并创建uxgis相关扩展。

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

initdb -W -D testdb

b.修改配置文件testdb/uxsinodb.conf,使其能进行uxgis扩展。

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

shared_preload_libraries = 'postgres_adaptor' # (change requires restart)

设置adaptor_pg_ux_mode_switch。

adaptor_pg_ux_mode_switch = on

使用uxdb命令启动数据库,并通过uxsql连接。

uxdb -D testdb

c.使用uxdb命令启动数据库,并通过uxsql连接。

uxdb -D testdb

d.创建uxgis扩展。

CREATE ROLE  gisdb;
CREATE DATABASE shp2pgsqldemo WITH OWNER=gisdb;
\c shp2pgsqldemo;
CREATE EXTENSION uxgis;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION uxgis_sfcgal;
CREATE EXTENSION uxgis_topology;
CREATE EXTENSION uxgis_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;
SELECTCOUNT(*)FROM spatial_ref_sys;
SELECT * FROM us_lex;