暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓KFS支持KES-MYSQL数据库GIS数据类型

KFS补给站 2023-10-27
390


支持KES-MYSQL数据库GIS数据类型

关键字:

Kingbase FlySync、GIS、数据同步

KESGIS V8R6几何存储类型

在KES中支持几何数据类型表示二维的空间物体,主要包括:point,占16字节,表示平面上的一个点,用(x,y)描述;line,占32字节,表示无限长的线,用{A,B,C}描述,A,B,C分别代表表达式AX+BY+C=0中的三个参数;lseg,占32字节,表示有限线段,用((x1,y1),(x2,y2));box,占32字节,表示矩形框,用((x1,y1),(x2,y2)描述,两个点分别代表矩形框的两个对角顶点;path,占16+16n字节,用[(x1,y1)…]描述,当点存在环的时候表示封闭路径类似于多边形,当点无法形成环时表示开放路径;polygon,占40+16n个字节,表示多边形,类似于封闭路径,用((x1,y1)…)描述;circle,占24字节,表示平面上的一个圆,用<(x,

y),r>描述,(x,y)表示圆心,r表示圆的半径。KES中支持的几个类型与KESGIS中支持的GIS类型有相似但不相同,KINGBASEGIS表示安装了KGIS插件的KES数据库,由KGIS支持的GIS对象是OpenGIS Consortium (OGC)定义的GIS“简单特性”的超集。 KGIS插件支持OGC标准中“SQL简单特性”所涉及的所有对象和特性,同时扩展了这个标准以便支持: 3DZ(即 x,y,z 三个维度),3DM(即 x,y,m 三个维度,其中 m 为“测量值”,具体含义由应用决定)和4D(即 x,y.z.m 四个维度)坐标。 此外,KGIS 还支持 SQL-MM 规范第三部分中定义的几何类型。GIS对象有多种不同的表示形式,以WKT为例:KGIS表示空间对象特征如下:

POINT(0 0)

LINESTRING(0 0,1 1,1 2)

POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))

MULTIPOINT((0 0),(1 2))

MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))

MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))

GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))。

在基本类型的基础上,还可以增加参数Z、M、ZM用来表示3DZ,3DM、4D类型数据。

MYSQL GIS存储类型

MYSQL对几何图形的类型支持都建立对GIS支持的基础上的,MYSQL的GIS功能也遵守OGC,支持其定义的空间数据类型的一个子集,但是对几何类型的支持没有KES支持的丰富,其支持的几何类型包括point、linestring、polygon都属于Geometry类型的子类型,Geometry类型不可实例化为数据类型,但是可以作为一个列的类型,存储任何一种其他类型的数据,这其中包括:point,表示点;linestring,表示线;polygon,表示多边形;multipoint表示点集合;multilinestring,表示线集合;multipolygon,表示多比边形集合;geometrycollection,表示空间对象集合。其中,geometry、point、linestring、polygon用于保存单个空间数据,并且geometry可以存储其他任意单个空间类型,即如果一个字段定义为geometry类型,那么该字段可以存储除集合以外的任意空间类型,但是当一个字段定义为其他某个类型时,则只能存储特定的类型数据。

Mysql中每个GIS对象都具有一定的属性,并且mysql提供了一系列的函数获取这些属性,通过这些属性可以更好的描述该类型的数据,这些属性包括:

类型(type):每个GIS类型的对象都会有一个类型属性,为上述类型的其中一种;

空间参考标识符(SRID):每一个GIS类型的对象对有对应的空间参考标识符,表示该对象是在哪个参考系下定义的;

坐标:每一个非空GIS对象都有一个坐标,至少有一对(x,y)坐标,坐标加上SRID,表示唯一表示该对象的位置信息;

最小边界矩形(MBR):由空间对象最外部顶点为界构造出的矩形;

简单(simple):用来标识一个对象是否为简单对象,只有linestring、multipoint、multilinestring具备这一属性,没有交叉点的线是简单的,没有相同点的点集合是简单的,集合中所有的线都是简单的线集合是简单的;

闭合(colesd):表示一个对象是否闭合;

边界:每一个对象都在空间中占据一部分位置,对象外部指对象未占据的位置,对象内部指对象占据的位置,两者之间的就是边界;

空(empty):表示对象是否为空;

维度:表示对象的空间维度;

KES到MYSQL数据库GIS类型适配

由于Mysql对GIS的支持只包括geometry及其子类型point、linestring、polygon和类型集合,因此在KES到MYSQL的类型适配中,主要适配geometry类型,将KES的point、lseg和polygon适配成MYSQL数据库中的point、linestring、polygon类型。

参考资料

《KingbaseES V8R6 KGIS简介与测试指导书v3.0》

《KingbaseES产品手册》

最后修改时间:2023-10-27 18:10:37
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论