CN108363736B - 一种线实体的存储方法、装置及存储系统 - Google Patents
一种线实体的存储方法、装置及存储系统 Download PDFInfo
- Publication number
- CN108363736B CN108363736B CN201810052113.4A CN201810052113A CN108363736B CN 108363736 B CN108363736 B CN 108363736B CN 201810052113 A CN201810052113 A CN 201810052113A CN 108363736 B CN108363736 B CN 108363736B
- Authority
- CN
- China
- Prior art keywords
- layer
- point
- axis
- points
- boundary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明的实施例提供一种线实体的存储方法、装置和系统,所述线实体的存储方法,包括:将实体坐标集按尺度遗漏规则划分成多层点集,并将每层存储空间均等划分成多个基本单元;根据设定阈值MAXPN,判断每层的点密度是否过大,如果点密度过大,则进行调整存储。根据本发明提供的线实体的存储方法、装置和系统,对线实体按照线实体‑>层‑>网格‑>网格点集的顺序依次进行存储,可以有效提高数据的动态调用与局部拓扑运算。
Description
技术领域
本发明涉及存储领域,尤其涉及一种线实体的存储方法、装置及存储系统。
背景技术
现有线实体存储技术中,都是按照线实体点集的线性坐标顺序直接在存储空间中进行存储,在进行大量复杂实体调用显示、拓扑运算时效率低,性能较差,亟待改进。
发明内容
有鉴于此,本发明实施例提供一种线实体的存储方法、装置和系统,对线实体按照线实体->层->网格->网格点集的顺序依次进行存储,采用该线实体存储方式,可以有效提高数据的动态调用与局部拓扑运算。
第一方面,本发明实施例提供一种线实体的存储方法,包括以下步骤:
S1:将实体坐标集按尺度遗漏规则划分成多层点集,并将每层存储空间均等划分成多个基本单元;
S2:根据设定阈值MAXPN,判断每层的点密度是否过大,如果点密度过大,则进行调整存储。
根据本发明的第一方面,所述步骤S1包括以下步骤:
S101:设线实体L的坐标集有N个点坐标,分别为[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)],设线实体L最小外接矩形边界为B,其四角坐标分别为(minX,minY),(minX,maxY),(maxX,maxY),(maxX,minY),其中minX=Min(X0,…,XN-1),minY=Min(Y0,…,YN-1),maxX=Max(X0,…,XN-1),maxY=Max(Y0,…,YN-1);
S102:按层划分不同的基本单元:将所述线实体在多个层进行存储,针对每一层,以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元;
S103:将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层,满足每一层中的任意两个相邻的点都不在该层的一个基本单元中。
根据本发明的第一方面,所述步骤S102中以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元包括:
第1层以B为边界,将区域B分别沿X轴和Y轴均分为k等份,每份基本单位大小为(((maxX-minX)/((2^0)*k)),((maxY-minY)/((2^0)*k)));第2层以B为边界,将区域B分别沿X轴和Y轴均分为2k等份,每份基本单位大小为(((maxX-minX)/((2^1)*k)),((maxY-minY)/((2^1)*k)));...;以此推论,第i层以B为边界,将区域B分别沿X轴和Y轴均分为(2^(i-1))*k等份,每份基本单位大小为(((maxX-minX)/((2^(i-1))*k)),((maxY-minY)/((2^(i-1))*k))),以下简写为(LiX,LiY),其中i=1,...,D,D表示存储的层数,k为设定自然数。
根据本发明的第一方面,所述步骤S103中将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层包括:
依次存放线实体L坐标中每一个点(Xn,Yn),n=0,1,...,N-1;对于每一个点,从第1层开始,逐层判断该层是否能够存放该点,判断条件为:如果第i层不存在点,则直接将点(Xn,Yn)放入Li层,如果第i层已经存在节点,则判断点(Xn,Yn)是否满足[Xn/LiX]!=[Xm/LiX]或[Yn/LiY]!=[Ym/LiY];[·]表示对括号中数值取整,i为层序号,i=1,...,D,LiX、LiY分别表示第i层中每个基本单元的长度和宽度,Xm、Ym为点(Xn,Yn)存放之前,最后放在第i层上的点坐标;如果满足该条件说明(Xn,Yn)与该层中相邻的上一个节点不在一个基本单元中,则将点(Xn,Yn)存入第i层,如果不满足,说明(Xn,Yn)与该层中相邻的上一个节点在一个基本单元中,则需要将点(Xn,Yn)存放如下一层即第i+1层,存储时判断条件和第i层的判断条件相同,依次类推,直至存储完线实体的所有N个点。
根据本发明的第一方面,所述步骤S2包括:
针对每一层Li(i=1,2,...,D),执行以下调整存储过程:
S201:统计第i层Li中的点个数LPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为第i层的区域B,转到步骤S202;
S202:以划分基础区域DB的中心点为原点,分别按X,Y轴方向对点集外接矩形进行切割,生成新的四个象限,依次对划分基础区域DB中的第j(j=1,2,...,LPN)个点(Xj,Yj)判断是否满足条件1:(Xj-1,Yj-1),(Xj,Yj),(Xj+1,Yj+1)在同一象限;若满足条件1,则将点(Xi,LYi)放入其自身所在象限;若不满足条件1,则将点(Xj,Yj)存入跨象限部分,其中跨象限部分是新增加的不同于第一二三四象限的第五部分;其中,当j-1<0时默认Xj-1=Xj,Yj-1=Yj,当j+1>LPN时默认Xj+1=Xj,Yj+1=Yj,层内网格划分完成;
S203:对于划分后的四个网格(第一二三四象限),分别判断每个网格内的点个数LPN是否大于所述设定阈值MXPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为该网格区域,转到步骤S202。
根据本发明的第一方面,包括以下步骤:
S3:根据当前调用参数,判断实体每块边界是否相交或包含,以及当前边界是否能满足显示比例,如果满足则调用。
根据本发明的第一方面,所述当前调用参数可以为对应数据边界和/或比例尺。
第二方面,本发明提供一种线实体的存储装置,包括:
分层存储单元,将实体坐标集按尺度遗漏规则划分成多层点集,并将每层存储空间均等划分成多个基本单元;
密度调整单元,根据设定阈值MAXPN,判断每层的点密度是否过大,如果点密度过大,则进行调整存储。
根据本发明的第二方面,所述分层存储单元执行以下步骤:
S101:设线实体L的坐标集有N个点坐标,分别为[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)],设线实体L最小外接矩形边界为B,其四角坐标分别为(minX,minY),(minX,maxY),(maxX,maxY),(maxX,minY),其中minX=Min(X0,…,XN-1),minY=Min(Y0,…,YN-1),maxX=Max(X0,…,XN-1),maxY=Max(Y0,…,YN-1);
S102:按层划分不同的基本单元:将所述线实体在多个层进行存储,针对每一层,以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元;
S103:将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层,满足每一层中的任意两个相邻的点都不在该层的一个基本单元中。
根据本发明的第二方面,所述步骤S102中以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元包括:
第1层以B为边界,将区域B分别沿X轴和Y轴均分为k等份,每份基本单位大小为(((maxX-minX)/((2^0)*k)),((maxY-minY)/((2^0)*k)));第2层以B为边界,将区域B分别沿X轴和Y轴均分为2k等份,每份基本单位大小为(((maxX-minX)/((2^1)*k)),((maxY-minY)/((2^1)*k)));...;以此推论,第i层以B为边界,将区域B分别沿X轴和Y轴均分为(2^(i-1))*k等份,每份基本单位大小为(((maxX-minX)/((2^(i-1))*k)),((maxY-minY)/((2^(i-1))*k))),以下简写为(LiX,LiY),其中i=1,...,D,D表示存储的层数,k为设定自然数。
根据本发明的第二方面,所述步骤S103中将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层包括:
依次存放线实体L坐标中每一个点(Xn,Yn),n=0,1,...,N-1;对于每一个点,从第1层开始,逐层判断该层是否能够存放该点,判断条件为:如果第i层不存在点,则直接将点(Xn,Yn)放入Li层,如果第i层已经存在节点,则判断点(Xn,Yn)是否满足[Xn/LiX]!=[Xm/LiX]或[Yn/LiY]!=[Ym/LiY];[·]表示对括号中数值取整,i为层序号,i=1,...,D,LiX、LiY分别表示第i层中每个基本单元的长度和宽度,Xm、Ym为点(Xn,Yn)存放之前,最后放在第i层上的点坐标;如果满足该条件说明(Xn,Yn)与该层中相邻的上一个节点不在一个基本单元中,则将点(Xn,Yn)存入第i层,如果不满足,说明(Xn,Yn)与该层中相邻的上一个节点在一个基本单元中,则需要将点(Xn,Yn)存放如下一层即第i+1层,存储时判断条件和第i层的判断条件相同,依次类推,直至存储完线实体的所有N个点。
根据本发明的第二方面,所述密度调整单元执行以下步骤:
针对每一层Li(i=1,2,...,D),执行以下调整存储过程:
S201:统计第i层Li中的点个数LPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为第i层的区域B,转到步骤S202;
S202:以划分基础区域DB的中心点为原点,分别按X,Y轴方向对点集外接矩形进行切割,生成新的四个象限,依次对划分基础区域DB中的第j(j=1,2,...,LPN)个点(Xj,Yj)判断是否满足条件1:(Xj-1,Yj-1),(Xj,Yj),(Xj+1,Yj+1)在同一象限;若满足条件1,则将点(Xi,LYi)放入其自身所在象限;若不满足条件1,则将点(Xj,Yj)存入跨象限部分,其中跨象限部分是新增加的不同于第一二三四象限的第五部分;其中,当j-1<0时默认Xj-1=Xj,Yj-1=Yj,当j+1>LPN时默认Xj+1=Xj,Yj+1=Yj,层内网格划分完成;
S203:对于划分后的四个网格(第一二三四象限),分别判断每个网格内的点个数LPN是否大于所述设定阈值MXPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为该网格区域,转到步骤S202。
根据本发明的第二方面,还包括以下单元:
调用单元,根据当前调用参数,判断实体每块边界是否相交或包含,以及当前边界是否能满足显示比例,如果满足则调用。
根据本发明的第二方面,所述当前调用参数可以为对应数据边界和/或比例尺。
本发明的第三方面提供一种线实体的存储系统,包括处理器以及存储设备,处理器执行上述线实体存储方法中的任一项,将线实体内容存储到存储设备中。
根据本发明提供的线实体的存储方法、装置和系统,对线实体按照线实体->层->网格->网格点集的顺序依次进行存储,可以有效提高数据的动态调用与拓扑运算。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例提供的线实体存储方法的一种流程图;
图2为本发明的实施例提供的将线实体L坐标集的N个点存放入层的一种示意图;
图3为本发明的实施例提供的调整点密度的一种示意图;
图4为本发明的实施例提供的调整点密度的另一种示意图;
图5为本发明的实施例提供的线实体存储装置的一种示意图;
图6为本发明的实施例提供的线实体存储系统的一种示意图;
图7为本发明的实施例提供的性能对比图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
第一方面,本发明实施例提供一种线实体的存储方法,参照图1,包括以下步骤:
S1:将实体坐标集按尺度遗漏规则划分成多层点集,并将每层存储空间均等划分成多个基本单元。
具体的按尺度遗漏规则划分多层点集如图2所示,包括以下步骤:
S101:设线实体L的坐标集有N个点坐标,分别为[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)],设线实体L最小外接矩形边界为B,其四角坐标分别为(minX,minY),(minX,maxY),(maxX,maxY),(maxX,minY),其中minX=Min(X0,…,XN-1),minY=Min(Y0,…,YN-1),maxX=Max(X0,…,XN-1),maxY=Max(Y0,…,YN-1)。
S102:按层划分不同的基本单元:将所述线实体在多个层进行存储,针对每一层,以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元。
具体的,第1层以B为边界,将区域B分别沿X轴和Y轴均分为k等份,每份基本单位大小为(((maxX-minX)/((2^0)*k)),((maxY-minY)/((2^0)*k)));第2层以B为边界,将区域B分别沿X轴和Y轴均分为2k等份,每份基本单位大小为(((maxX-minX)/((2^1)*k)),((maxY-minY)/((2^1)*k)));...;以此推论,第i层以B为边界,将区域B分别沿X轴和Y轴均分为(2^(i-1))*k等份,每份基本单位大小为(((maxX-minX)/((2^(i-1))*k)),((maxY-minY)/((2^(i-1))*k))),以下简写为(LiX,LiY),其中i=1,...,D,D表示存储的层数,k为设定自然数。
S103:将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层,满足每一层中的任意两个相邻的点都不在该层的一个基本单元中。
具体来说,依次存放线实体L坐标中每一个点(Xn,Yn),n=0,1,...,N-1。对于每一个点,从第1层开始,逐层判断该层是否能够存放该点,判断条件为:如果第i层不存在点,则直接将点(Xn,Yn)放入Li层,如果第i层已经存在节点,则判断点(Xn,Yn)是否满足[Xn/LiX]!=[Xm/LiX]或[Yn/LiY]!=[Ym/LiY];[·]表示对括号中数值取整,i为层序号,i=1,...,D,LiX、LiY分别表示第i层中每个基本单元的长度和宽度,Xm、Ym为点(Xn,Yn)存放之前,最后放在第i层上的点坐标;如果满足该条件说明(Xn,Yn)与该层中相邻的上一个节点不在一个基本单元中,则将点(Xn,Yn)存入第i层,如果不满足,说明(Xn,Yn)与该层中相邻的上一个节点在一个基本单元中,则需要将点(Xn,Yn)存放如下一层即第i+1层,存储时判断条件和第i层的判断条件相同,依次类推,直至存储完线实体的所有N个点。
S2:根据设定阈值MAXPN,判断每层的点密度是否过大,如果点密度过大,则进行调整存储。
具体的,参照图3,针对每一层Li(i=1,2,...,D),执行以下调整存储过程:
S201:统计第i层Li中的点个数LPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为第i层的区域B,转到步骤S202;
S202:以划分基础区域DB的中心点为原点,分别按X,Y轴方向对点集外接矩形进行切割,生成新的四个象限,依次对划分基础区域DB中的第j(j=1,2,...,LPN)个点(Xj,Yj)判断是否满足条件1:(Xj-1,Yj-1),(Xj,Yj),(Xj+1,Yj+1)在同一象限。若满足条件1,则将点(Xi,LYi)放入其自身所在象限;若不满足条件1,则将点(Xj,Yj)存入跨象限部分,其中跨象限部分是新增加的不同于第一二三四象限的第五部分。其中,当j-1<0时默认Xj-1=Xj,Yj-1=Yj,当j+1>LPN时默认Xj+1=Xj,Yj+1=Yj,层内网格划分完成;
S203:对于划分后的四个网格(第一二三四象限),分别判断每个网格内的点个数LPN是否大于所述设定阈值MXPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为该网格区域,转到步骤S202。
此过程也可以简化为五叉树存储,如图4所示,其中1,2,3,4,5分别代表网格点集(其中5代表跨象限部分)。
如图3所示,设定阈值MAXPN取3,对线实体L的各点存储情况如下:
S3:根据当前调用参数,判断实体每块边界是否相交或包含,以及当前边界是否能满足显示比例,如果满足则调用。
具体的,所述当前调用参数可以为对应数据边界和/或比例尺。
通过上述存储描述方式可知,本发明对线实体按照线实体->层->网格->网格点集的顺序依次进行存储,采用该线实体存储方式,可以有效提高数据的动态调用与局部拓扑运算。
第二方面,本发明实施例提供一种线实体的存储装置,如图5所示,包括以下单元:
分层存储单元:将实体坐标集按尺度遗漏规则划分成多层点集,并将每层存储空间均等划分成多个基本单元。
具体的,分层存储单元执行以下步骤:
S101:设线实体L的坐标集有N个点坐标,分别为[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)],设线实体L最小外接矩形边界为B,其四角坐标分别为(minX,minY),(minX,maxY),(maxX,maxY),(maxX,minY),其中minX=Min(X0,…,XN-1),minY=Min(Y0,…,YN-1),maxX=Max(X0,…,XN-1),maxY=Max(Y0,…,YN-1)。
S102:按层划分不同的基本单元:将所述线实体在多个层进行存储,针对每一层,以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元。
具体的,第1层以B为边界,将区域B分别沿X轴和Y轴均分为k等份,每份基本单位大小为(((maxX-minX)/((2^0)*k)),((maxY-minY)/((2^0)*k)));第2层以B为边界,将区域B分别沿X轴和Y轴均分为2k等份,每份基本单位大小为(((maxX-minX)/((2^1)*k)),((maxY-minY)/((2^1)*k)));...;以此推论,第i层以B为边界,将区域B分别沿X轴和Y轴均分为(2^(i-1))*k等份,每份基本单位大小为(((maxX-minX)/((2^(i-1))*k)),((maxY-minY)/((2^(i-1))*k))),以下简写为(LiX,LiY),其中i=1,...,D,D表示存储的层数,k为设定自然数。
S103:将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层,满足每一层中的任意两个相邻的点都不在该层的一个基本单元中。
具体来说,依次存放线实体L坐标中每一个点(Xn,Yn),n=0,1,...,N-1。对于每一个点,从第1层开始,逐层判断该层是否能够存放该点,判断条件为:如果第i层不存在点,则直接将点(Xn,Yn)放入Li层,如果第i层已经存在节点,则判断点(Xn,Yn)是否满足[Xn/LiX]!=[Xm/LiX]或[Yn/LiY]!=[Ym/LiY];[·]表示对括号中数值取整,i为层序号,i=1,...,D,LiX、LiY分别表示第i层中每个基本单元的长度和宽度,Xm、Ym为点(Xn,Yn)存放之前,最后放在第i层上的点坐标;如果满足该条件说明(Xn,Yn)与该层中相邻的上一个节点不在一个基本单元中,则将点(Xn,Yn)存入第i层,如果不满足,说明(Xn,Yn)与该层中相邻的上一个节点在一个基本单元中,则需要将点(Xn,Yn)存放如下一层即第i+1层,存储时判断条件和第i层的判断条件相同,依次类推,直至存储完线实体的所有N个点。
密度调整单元:根据设定阈值MAXPN,判断每层的点密度是否过大,如果点密度过大,则进行调整存储。
具体的,密度调整单元针对每一层Li(i=1,2,...,D),执行以下调整存储过程:
S201:统计第i层Li中的点个数LPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为第i层的区域B,转到步骤S202;
S202:以划分基础区域DB的中心点为原点,分别按X,Y轴方向对点集外接矩形进行切割,生成新的四个象限,依次对划分基础区域DB中的第j(j=1,2,...,LPN)个点(Xj,Yj)判断是否满足条件1:(Xj-1,Yj-1),(Xj,Yj),(Xj+1,Yj+1)在同一象限。若满足条件1,则将点(Xi,LYi)放入其自身所在象限;若不满足条件1,则将点(Xj,Yj)存入跨象限部分,其中跨象限部分是新增加的不同于第一二三四象限的第五部分。其中,当j-1<0时默认Xj-1=Xj,Yj-1=Yj,当j+1>LPN时默认Xj+1=Xj,Yj+1=Yj,层内网格划分完成;
S203:对于划分后的四个网格(第一二三四象限),分别判断每个网格内的点个数LPN是否大于所述设定阈值MXPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为该网格区域,转到步骤S202。
调用单元:根据当前调用参数,判断实体每块边界是否相交或包含,以及当前边界是否能满足显示比例,如果满足则调用。
通过上述存储装置的描述可知,本发明对线实体按照线实体->层->网格->网格点集的顺序依次进行存储,采用该线实体存储方式,可以有效提高数据的动态调用与局部拓扑运算。
第三方面,本发明实施例提供一种线实体的存储系统,如图6所示,包括处理器以及存储设备,处理器执行前述任一实施例提供的线实体存储方法,将线实体内容存储到存储设备中。处理器对上述步骤的具体执行过程可以参见前述实施例的描述,在此不再赘述。
在同一台计算机,基于相同的数据集索引模型下分别对采用该技术和常规存储方式的性能比较如图7所示。
将理解的是,上面描述的益处和优点可以涉及一个实施例,或者可以涉及若干实施例。这些实施例并不限于解决所陈述问题中的任何一个或全部的实施例或者具有所陈述益处和优点中的任何一个或全部的实施例。
对“一”项的任何提及是指这些项中的一个或多个。本文中使用术语“包括”来表示包含所标识的方法方框或元件,但是这样的方框或元件并不包括排他列表,并且装置可以包含额外的方框或元件,并且方法可以包含额外的操作或元素。
本文描述的方法的步骤可以以任何适当的顺序执行,或者在适当的情况下同时执行。此外,可以从任意方法中删除单独的方框,而不脱离本文描述的主题的精神和范围。上面描述的任意例子的方案可以与所描述的任意其它例子的方案组合,以形成其它例子,而不丧失所请求的效果。
将理解的是,仅仅通过例子的方式给出了优选实施例的以上描述,并且本领域技术人员可以做出各种修改。虽然上面以某种具体度或者参考一个或多个单独实施例描述了各个实施例,但是本领域技术人员可以对所公开的实施例做出大量的改变,而不脱离本发明的精神或范围。
Claims (13)
1.一种线实体的存储方法,其特征在于,包括:
S1:将实体坐标集按尺度遗漏规则划分成多层点集,并将每层存储空间均等划分成多个基本单元;
S2:根据设定阈值MAXPN,判断每层的点密度是否过大,如果点密度过大,则进行调整存储;
所述按尺度遗漏规则划分成多层点集,并将每层存储空间均等划分成多个基本单元包括:
S101:设线实体L的坐标集有N个点坐标,分别为[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)],设线实体L最小外接矩形边界为B,其四角坐标分别为(minX,minY),(minX,maxY),(maxX,maxY),(maxX,minY),其中minX=Min(X0,…,XN-1),minY=Min(Y0,…,YN-1),maxX=Max(X0,…,XN-1),maxY=Max(Y0,…,YN-1);
S102:按层划分不同的基本单元:将所述线实体在多个层进行存储,针对每一层,以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元;
S103:将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层,满足每一层中的任意两个相邻的点都不在该层的一个基本单元中。
2.根据权利要求1所述的线实体存储方法,其特征在于,所述步骤S102中以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元包括:
第1层以B为边界,将区域B分别沿X轴和Y轴均分为k等份,每份基本单位大小为(((maxX-minX)/((2^0)*k)),((maxY-minY)/((2^0)*k)));第2层以B为边界,将区域B分别沿X轴和Y轴均分为2k等份,每份基本单位大小为(((maxX-minX)/((2^1)*k)),((maxY-minY)/((2^1)*k)));...;以此推论,第i层以B为边界,将区域B分别沿X轴和Y轴均分为(2^(i-1))*k等份,每份基本单位大小为(((maxX-minX)/((2^(i-1))*k)),((maxY-minY)/((2^(i-1))*k))),以下简写为(LiX,LiY),其中i=1,...,D,D表示存储的层数,k为设定自然数。
3.根据权利要求1所述的线实体存储方法,其特征在于,所述步骤S103中将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层包括:
依次存放线实体L坐标中每一个点(Xn,Yn),n=0,1,...,N-1;对于每一个点,从第1层开始,逐层判断该层是否能够存放该点,判断条件为:如果第i层不存在点,则直接将点(Xn,Yn)放入Li层,如果第i层已经存在节点,则判断点(Xn,Yn)是否满足[Xn/LiX]!=[Xm/LiX]或[Yn/LiY]!=[Ym/LiY];[·]表示对括号中数值取整,i为层序号,i=1,...,D,LiX、LiY分别表示第i层中每个基本单元的长度和宽度,Xm、Ym为点(Xn,Yn)存放之前,最后放在第i层上的点坐标;如果满足该条件说明(Xn,Yn)与该层中相邻的上一个节点不在一个基本单元中,则将点(Xn,Yn)存入第i层,如果不满足,说明(Xn,Yn)与该层中相邻的上一个节点在一个基本单元中,则需要将点(Xn,Yn)存放入下一层即第i+1层,存储时判断条件和第i层的判断条件相同,依次类推,直至存储完线实体的所有N个点。
4.根据权利要求1所述的线实体存储方法,其特征在于,所述步骤S2包括:
针对每一层Li(i=1,2,...,D),执行以下调整存储过程:
S201:统计第i层Li中的点个数LPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为第i层的区域B,转到步骤S202;
S202:以划分基础区域DB的中心点为原点,分别按X,Y轴方向对点集外接矩形进行切割,生成新的四个象限,依次对划分基础区域DB中的第j(j=1,2,...,LPN)个点(Xj,Yj)判断是否满足条件1:(Xj-1,Yj-1),(Xj,Yj),(Xj+1,Yj+1)在同一象限;若满足条件1,则将点(Xi,LYi)放入其自身所在象限;若不满足条件1,则将点(Xj,Yj)存入跨象限部分,其中跨象限部分是新增加的不同于第一二三四象限的第五部分;其中,当j-1<0时默认Xj-1=Xj,Yj-1=Yj,当j+1>LPN时默认Xj+1=Xj,Yj+1=Yj,层内网格划分完成;
S203:对于划分后的四个网格(第一二三四象限),分别判断每个网格内的点个数LPN是否大于所述设定阈值MXPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为该网格区域,转到步骤S202。
5.根据权利要求1所述的线实体存储方法,其特征在于,还包括以下步骤:
S3:根据当前调用参数,判断实体每块边界是否相交或包含,以及当前边界是否能满足显示比例,如果满足则调用。
6.根据权利要求5所述的线实体存储方法,其特征在于,所述当前调用参数为对应数据边界和/或比例尺。
7.一种线实体的存储装置,其特征在于,包括:
分层存储单元,将实体坐标集按尺度遗漏规则划分成多层点集,并将每层存储空间均等划分成多个基本单元;
密度调整单元,根据设定阈值MAXPN,判断每层的点密度是否过大,如果点密度过大,则进行调整存储;
所述分层存储单元执行以下步骤:
S101:设线实体L的坐标集有N个点坐标,分别为[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)],设线实体L最小外接矩形边界为B,其四角坐标分别为(minX,minY),(minX,maxY),(maxX,maxY),(maxX,minY),其中minX=Min(X0,…,XN-1),minY=Min(Y0,…,YN-1),maxX=Max(X0,…,XN-1),maxY=Max(Y0,…,YN-1);
S102:按层划分不同的基本单元:将所述线实体在多个层进行存储,针对每一层,以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元;
S103:将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层,满足每一层中的任意两个相邻的点都不在该层的一个基本单元中。
8.根据权利要求7所述的线实体的存储装置,其特征在于,所述步骤S102中以上述最小外接矩形边界B为边界,分别沿X轴和Y轴将区域B均分成多个基本单元包括:
第1层以B为边界,将区域B分别沿X轴和Y轴均分为k等份,每份基本单位大小为(((maxX-minX)/((2^0)*k)),((maxY-minY)/((2^0)*k)));第2层以B为边界,将区域B分别沿X轴和Y轴均分为2k等份,每份基本单位大小为(((maxX-minX)/((2^1)*k)),((maxY-minY)/((2^1)*k)));...;以此推论,第i层以B为边界,将区域B分别沿X轴和Y轴均分为(2^(i-1))*k等份,每份基本单位大小为(((maxX-minX)/((2^(i-1))*k)),((maxY-minY)/((2^(i-1))*k))),以下简写为(LiX,LiY),其中i=1,...,D,D表示存储的层数,k为设定自然数。
9.根据权利要求7所述的线实体的存储装置,其特征在于,所述步骤S103中将线实体L坐标集的N个点[(X0,Y0),(X1,Y1),…,(XN-1,YN-1)]依次存放入相应层包括:
依次存放线实体L坐标中每一个点(Xn,Yn),n=0,1,...,N-1;对于每一个点,从第1层开始,逐层判断该层是否能够存放该点,判断条件为:如果第i层不存在点,则直接将点(Xn,Yn)放入Li层,如果第i层已经存在节点,则判断点(Xn,Yn)是否满足[Xn/LiX]!=[Xm/LiX]或[Yn/LiY]!=[Ym/LiY];[·]表示对括号中数值取整,i为层序号,i=1,...,D,LiX、LiY分别表示第i层中每个基本单元的长度和宽度,Xm、Ym为点(Xn,Yn)存放之前,最后放在第i层上的点坐标;如果满足该条件说明(Xn,Yn)与该层中相邻的上一个节点不在一个基本单元中,则将点(Xn,Yn)存入第i层,如果不满足,说明(Xn,Yn)与该层中相邻的上一个节点在一个基本单元中,则需要将点(Xn,Yn)存放入下一层即第i+1层,存储时判断条件和第i层的判断条件相同,依次类推,直至存储完线实体的所有N个点。
10.根据权利要求7所述的线实体的存储装置,其特征在于,所述密度调整单元执行以下步骤:
针对每一层Li(i=1,2,...,D),执行以下调整存储过程:
S201:统计第i层Li中的点个数LPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为第i层的区域B,转到步骤S202;
S202:以划分基础区域DB的中心点为原点,分别按X,Y轴方向对点集外接矩形进行切割,生成新的四个象限,依次对划分基础区域DB中的第j(j=1,2,...,LPN)个点(Xj,Yj)判断是否满足条件1:(Xj-1,Yj-1),(Xj,Yj),(Xj+1,Yj+1)在同一象限;若满足条件1,则将点(Xi,LYi)放入其自身所在象限;若不满足条件1,则将点(Xj,Yj)存入跨象限部分,其中跨象限部分是新增加的不同于第一二三四象限的第五部分;其中,当j-1<0时默认Xj-1=Xj,Yj-1=Yj,当j+1>LPN时默认Xj+1=Xj,Yj+1=Yj,层内网格划分完成;
S203:对于划分后的四个网格(第一二三四象限),分别判断每个网格内的点个数LPN是否大于所述设定阈值MXPN,如果LPN小于等于所述设定阈值MXPN,直接按坐标顺序进行存储;否则如果LPN大于所述设定阈值MAXPN时,设定划分基础区域DB为该网格区域,转到步骤S202。
11.根据权利要求7所述的线实体的存储装置,其特征在于,还包括以下单元:
调用单元,根据当前调用参数,判断实体每块边界是否相交或包含,以及当前边界是否能满足显示比例,如果满足则调用。
12.根据权利要求11所述的线实体的存储装置,其特征在于,所述当前调用参数为对应数据边界和/或比例尺。
13.一种线实体的存储系统,包括处理器以及存储设备,处理器执行所述权利要求1-6中任一项的线实体存储方法,将线实体内容存储到存储设备中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810052113.4A CN108363736B (zh) | 2018-01-19 | 2018-01-19 | 一种线实体的存储方法、装置及存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810052113.4A CN108363736B (zh) | 2018-01-19 | 2018-01-19 | 一种线实体的存储方法、装置及存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108363736A CN108363736A (zh) | 2018-08-03 |
CN108363736B true CN108363736B (zh) | 2022-01-25 |
Family
ID=63006594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810052113.4A Active CN108363736B (zh) | 2018-01-19 | 2018-01-19 | 一种线实体的存储方法、装置及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108363736B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674003A (zh) * | 2004-03-23 | 2005-09-28 | 三菱电机株式会社 | 查询信息检索装置和使用该装置的查询信息检索系统 |
CN101625689A (zh) * | 2009-07-17 | 2010-01-13 | 王玮 | 基于地理体系的互联网信息发布和呈现系统及其方法 |
CN102253932A (zh) * | 2010-05-17 | 2011-11-23 | 北京大学深圳研究生院 | 一种gis系统及其地理位置标定和查询方法 |
CN104350498A (zh) * | 2012-06-05 | 2015-02-11 | 谷歌公司 | 用于存储和检索地理空间数据的系统和方法 |
CN105045869A (zh) * | 2015-07-14 | 2015-11-11 | 国家信息中心 | 基于多数据中心的自然资源地理空间数据组织方法和系统 |
CN106898045A (zh) * | 2017-02-24 | 2017-06-27 | 郑州大学 | 一种基于sgog瓦块的大区域真三维地理场景自适应构建方法 |
CN107018407A (zh) * | 2016-01-20 | 2017-08-04 | 索尼互动娱乐股份有限公司 | 信息处理装置、评价用图、评价系统、以及性能评价方法 |
CN107341191A (zh) * | 2017-06-14 | 2017-11-10 | 童晓冲 | 一种三维空间的多尺度整数化编码方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015048557A1 (en) * | 2013-09-27 | 2015-04-02 | Stout Partners LP | System and apparatus for assessing reach, engagement, conversation or other social metrics based on domain tailored evaluation of social media exposure |
-
2018
- 2018-01-19 CN CN201810052113.4A patent/CN108363736B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674003A (zh) * | 2004-03-23 | 2005-09-28 | 三菱电机株式会社 | 查询信息检索装置和使用该装置的查询信息检索系统 |
CN101625689A (zh) * | 2009-07-17 | 2010-01-13 | 王玮 | 基于地理体系的互联网信息发布和呈现系统及其方法 |
CN102253932A (zh) * | 2010-05-17 | 2011-11-23 | 北京大学深圳研究生院 | 一种gis系统及其地理位置标定和查询方法 |
CN104350498A (zh) * | 2012-06-05 | 2015-02-11 | 谷歌公司 | 用于存储和检索地理空间数据的系统和方法 |
CN105045869A (zh) * | 2015-07-14 | 2015-11-11 | 国家信息中心 | 基于多数据中心的自然资源地理空间数据组织方法和系统 |
CN107018407A (zh) * | 2016-01-20 | 2017-08-04 | 索尼互动娱乐股份有限公司 | 信息处理装置、评价用图、评价系统、以及性能评价方法 |
CN106898045A (zh) * | 2017-02-24 | 2017-06-27 | 郑州大学 | 一种基于sgog瓦块的大区域真三维地理场景自适应构建方法 |
CN107341191A (zh) * | 2017-06-14 | 2017-11-10 | 童晓冲 | 一种三维空间的多尺度整数化编码方法和装置 |
Non-Patent Citations (1)
Title |
---|
浅谈平面坐标和地理坐标之间的转算方法;臧歌等;《中华建设科技》;20111231(第11期);第165-166页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108363736A (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111445566B (zh) | 一种信息处理方法、装置及计算机可读存储介质 | |
CN105654552B (zh) | 一种面向任意分布大规模点云数据的快速Delaunay构网方法 | |
CN115618479B (zh) | 一种基于bim的幕墙高封闭性安装方法 | |
CN108595268A (zh) | 一种基于MapReduce的数据分配方法、装置及计算机可读存储介质 | |
WO2021243862A1 (zh) | 数据处理方法及装置 | |
CN115457226A (zh) | 矢量地图生成方法、装置、电子设备和可读存储介质 | |
CN112002021B (zh) | 一种基于unity3d的聚合打点可视化方法及装置 | |
US20230298237A1 (en) | Data processing method, apparatus, and device and storage medium | |
CN108509532B (zh) | 一种应用于地图的聚点方法和装置 | |
CN117541457B (zh) | 一种曲面细分顶点的缓存方法、电子设备及存储介质 | |
CN108363736B (zh) | 一种线实体的存储方法、装置及存储系统 | |
WO2022067722A1 (zh) | 模型的展示方法、装置、电子设备及计算机可读存储介质 | |
CN106998489B (zh) | 一种焦点越界搜索方法及装置 | |
CN117009447A (zh) | 一种三维地图海量poi显示方法、终端设备及存储介质 | |
WO2023155348A1 (zh) | 游戏数据处理方法、装置、计算机设备及存储介质 | |
CN113591208B (zh) | 一种基于舰船特征提取的超大模型轻量化方法及电子设备 | |
CN114797109A (zh) | 对象编辑方法、装置、电子设备和存储介质 | |
CN114723024A (zh) | 用于存算一体芯片的基于线性规划的神经网络映射方法 | |
CN114091400A (zh) | 一种pcb线路自动布线方法、装置及存储介质 | |
CN113362340A (zh) | 一种动态空间球搜索点云k邻域方法 | |
CN112835660A (zh) | 媒体图层展示方法、装置及系统、存储介质 | |
CN113361226B (zh) | 一种减小版图文件大小的方法及电子设备 | |
CN114706687B (zh) | 计算任务的分配方法、装置、计算机设备和存储介质 | |
CN118710768B (zh) | 一种基于树形结构图的图像生成方法、装置以及电子设备 | |
CN117152300B (zh) | 用于dcs系统流程图绘制性能优化的图层动态规划算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |