15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 【第五章 空间数据库】达梦数据库DMGEO 包

【第五章 空间数据库】达梦数据库DMGEO 包

时间:2023-05-07 15:45:02 | 来源:网站运营

时间:2023-05-07 15:45:02 来源:网站运营

【第五章 空间数据库】达梦数据库DMGEO 包:随着政府项目对信创要求的不断推进,国产化数据库也大势所趋,很多项目要求使用达梦数据库。数据库迁移的过程中,对于空间数据的支持也是非常重要的一项内容。

实际应用中,主要考虑这几个方面:

(1)空间数据的入库和导出;

(2)空间索引和基础空间函数的支持;

(3)地图服务的发布支持;

满足这几个需求的话,项目中大部分的问题基本都能得到解决。

达梦的空间模块支持通过DMGEO库进行实现

官方文档 https://eco.dameng.com/document/dm/zh-cn/pm/dmgeo-package#2.3.2%20SF_CHECK_GEO_SYS

(1)空间模块扩展支持

执行 SP_INIT_GEO_SYS(1);即可

(2)空间数据类型

基本参照postgis,二维矢量数据支持没有问题。

(3)空间函数

支持的函数并不多,不可能有postgis那样强大。但是最基础的几何要素的定义、空间关系判断、简单的空间分析、geojson等格式转换、坐标转换等都有。

#插入要素INSERT INTO testdmgeo VALUES(1,'test1',dmgeo.ST_PolyFromText('polygon((114 22,114.5 22,114.5 22.5,114 22.5,114 22))',4326));#计算面积,直接根据坐标系统单位计算select dmgeo.ST_Area(dmgeo.ST_PolyFromText('polygon((114 22,114.5 22,114.5 22.5,114 22.5,114 22))',4326));0.25#距离也一样select dmgeo.ST_Distance(dmgeo.ST_PointFromText('point(113 22)',4326),dmgeo.ST_PolyFromText('polygon((114 22,114.5 22,114.5 22.5,114 22.5,114 22))',4326)); 1.0#进行投影转换后,返回平面坐标值,单位是米select dmgeo.ST_Area(dmgeo.ST_TRANSFORM(dmgeo.ST_PolyFromText('polygon((114 22,114.5 22,114.5 22.5,114 22.5,114 22))',4326),4547))2.8536572519374533E9#生成geojsonselect dmgeo.ST_AsGEOJSON(dmgeo.ST_PointFromText('point(113 22)',4326)){"type": "Point","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"coordinates":[[113.000000000000000,22.000000000000000]]}#判断是否相交select dmgeo.ST_Intersects(dmgeo.ST_PointFromText('point(113 22)',4326),dmgeo.ST_PolyFromText('polygon((114 22,114.5 22,114.5 22.5,114 22.5,114 22))',4326));0(4)空间索引

官方文档实在没找到多余的描述,应该就是常规的R树索引。

CREATE TABLE testdmgeo(id int, name varchar(20), geom ST_polygon); create spatial index idxtestdmspatial on testdmgeo(geom); (5)空间数据入库

通过dmshp2st命令行入库

通过ArcGIS软件入库,经测试没有问题

(6)geoserver地图服务发布



关键词:数据,空间

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭