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

栏目归类:人大金仓数据库
发布时间:2024-03-26 18:58:22

支持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产品手册》

文章来源:https://blog.csdn.net/weixin_44312518/article/details/134190682
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
Acepe 技术分享站