CN116028588B - Incremental complex polygon updating method based on topological relation - Google Patents

Incremental complex polygon updating method based on topological relation Download PDF

Info

Publication number
CN116028588B
CN116028588B CN202310301446.7A CN202310301446A CN116028588B CN 116028588 B CN116028588 B CN 116028588B CN 202310301446 A CN202310301446 A CN 202310301446A CN 116028588 B CN116028588 B CN 116028588B
Authority
CN
China
Prior art keywords
overlap
contain
create
disjoint
polygon
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
Application number
CN202310301446.7A
Other languages
Chinese (zh)
Other versions
CN116028588A (en
Inventor
周晓光
唐振鸣
侯东阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Central South University
Original Assignee
Central South University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Central South University filed Critical Central South University
Priority to CN202310301446.7A priority Critical patent/CN116028588B/en
Publication of CN116028588A publication Critical patent/CN116028588A/en
Application granted granted Critical
Publication of CN116028588B publication Critical patent/CN116028588B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

The invention relates to a method for updating incremental complex polygons of topological relations, which comprises the following steps: preprocessing the ground state data and the incremental data, and recording the preprocessed ground state data and the preprocessed incremental data in a professional vector database; b traversing the incremental data, and searching the ground state data adjacent to the current incremental data space in the professional vector ground state database; c, calculating the topological relation between the incremental data and the ground state data adjacent to the incremental data; d, according to the incremental data and the topological relation of the ground state data adjacent to the incremental data, carrying out updating processing one by one according to an incremental updating rule; e, topology checking and quality control. The invention provides a method for incremental updating when the ground state data and the incremental data are complex polygons with holes, which realizes the automatic updating of the complex incremental polygons and the maintenance of topology consistency.

Description

Incremental complex polygon updating method based on topological relation
Technical Field
The invention relates to an electronic map and a digital map drawing method, in particular to an incremental complex polygon updating method based on topological relation.
Background
Along with the construction of a national basic geographic vector database with multiple scales and versions, the linkage update of the one-year multi-scale vector data is basically realized, but the automatic update of all elements, particularly some more complex ground feature elements, has some problems.
In terms of face element topology description, there have been many description models such as a four-cross (4I) model, a nine-cross (9I) model, a region join algorithm (RCC) model, a Voronoi diagram-based hybrid description (V9I) model, and the like. However, most of these models can only distinguish 8 spatial topological relations between simple surface elements, and the topological relations between the surface elements with holes cannot be accurately described.
In the prior art, as shown in fig. 1, a complex polygon M with a hole is decomposed into a part in an outer ring of the polygon and a hole part of the polygon, a topological relation description model between a simple polygon N and the complex polygon M with a single hole is provided, an incremental update rule is designed according to a polygon two-dimensional intersection subdivision type, a quadtree index taking into consideration the inclusion relation of the complex polygon is established to realize that a ground state polygon is a complex polygon, and the incremental polygon is the efficient incremental update of earth surface coverage data of the simple polygon. According to the method, the situation that the surface coverage incremental data does not have a complex polygon is not considered, but the situation that the incremental data is a complex polygon can occur in the process of acquiring the basic geographic information vector data in an increment.
In view of the above problems, the present invention provides a topology-based incremental complex polygon updating method.
Disclosure of Invention
The invention aims to provide a topology relation-based incremental complex polygon updating method, which can perform incremental updating when the ground state data and the incremental data are complex polygons with holes, and realizes automatic updating of the complex incremental polygons and maintenance of topology consistency.
In order to solve the technical problems, the invention provides a topology relation-based incremental complex polygon updating method, which comprises the following steps:
preprocessing the ground state data and the incremental data, and recording the preprocessed ground state data and the preprocessed incremental data in a professional vector database;
b traversing the incremental data, and searching the ground state data adjacent to the current incremental data space in the professional vector ground state database;
c, calculating the topological relation between the incremental data and the ground state data adjacent to the incremental data;
d, according to the incremental data and the topological relation of the ground state data adjacent to the incremental data, carrying out updating processing one by one according to an incremental updating rule;
e, topology checking and quality control.
Specifically, the ground state data and the incremental data are preprocessed to form a complex polygon with a cavity.
Preferably by means of a mould
Judging the topological relation between the incremental data and the ground state data adjacent to the incremental data;
wherein A is the complex polygon of the delta data, B is the complex polygon of the ground state data,for the outer ring portion of the complex polygon A of the delta data outside the hole, < >>For the hole part of the complex polygon A of the delta data,/and/or>For the outer ring portion of the complex polygon B of the ground state data outside the hole, +.>Is a hole portion of the complex polygon B of the delta data.
Further, the topological relation includes a phase-out disjunction, a phase-out Meet, a partial Overlap, an overlay by, an internal Inside, a containing a content and an Equal:
the said{ Disjoint, meet, overlap, cover, coveredBy, inside, contain, equal }; said->{ Disjoint, meet, overlap, cover, coveredBy, inside, contain, equal }; said->{ Disjoint, meet, overlap, cover, coveredBy, inside, contain, equal }; said->{Disjoint、Meet、Overlap、Cover、CoveredBy、Inside、Contain、Equal}。
Further, the method for updating processing comprises the following steps:
(1) Inserting a polygon N:
Create(N)
(2) Deleting polygon N:
Delete(N)
(3) Inserting polygon N into a specialized vector database:
InsertHistory(N)
(4) Polygonal N 1 Is to wipe polygon M from the portion of polygon N:
N 1= Cut(M,N)
wherein M is、/>、/>And->Any one of N is->、/>、/>And->Any one of them.
Further, the updating process includes adding a polygon N 1 The polygon N 1 The attribute values of (2) are the same as those of polygon N:
SetAttribute(,N)。
further, the updating process further includes modifying the outer ring portion of the polygon N to a polygon M:
ModifyOuterRing(M,N);
alternatively, the updating process further includes modifying the hole portion of the polygon N to be the polygon M:
ModifyInnerRing(M,N)。
further, the updating process further includes adding a new hole portion to the polygon N, where the hole portion is shaped as a polygon M:
CreateHole(M,N)。
further, the updating process further includes merging the polygon M with the polygon N:
Union(M,N)。
specifically, the types of update processing include adding Create, deleting Delete, and modifying Modify.
Through the technical scheme, the invention has the following beneficial effects:
according to the method, a set of complex incremental polygon incremental updating method based on topological relation is designed aiming at the condition that the incremental polygon is a complex polygon, enumeration reasoning of the topological relation between the complex incremental polygon and the inner ring and the outer ring of the base state complex polygon is carried out by the method to obtain 152 topological relations, the 152 topological relations are generalized and designed to obtain effective rules of the incremental polygon, and automatic updating and topology consistency maintenance of the complex incremental polygon are achieved.
Other advantages and technical effects of the preferred embodiments of the present invention will be further described in the following detailed description.
Drawings
FIG. 1 is a diagram of a prior art topology relationship of the incremental complex polygon update method of the present invention based on the topology relationship;
FIG. 2 is a flow chart of the incremental complex polygon update method based on topology according to the present invention;
fig. 3 is a diagram showing the comparison of the ground state data and the incremental data before the updating of the tago lake in the incremental complex polygon updating method based on the topological relation;
fig. 4 is a graph of the updated result of the tagol lake of the incremental complex polygon updating method based on the topological relation of the present invention.
Detailed Description
The following describes specific embodiments of the present invention in detail with reference to the drawings. It should be understood that the detailed description and specific examples, while indicating and illustrating the invention, are not intended to limit the invention.
In addition, the technical features of the different embodiments of the present invention described below may be combined with each other as long as they do not collide with each other.
As shown in fig. 2, as an embodiment of the incremental complex polygon updating method based on topological relation provided by the invention, the method comprises the following steps:
preprocessing the ground state data and the incremental data, and recording the preprocessed ground state data and the preprocessed incremental data in a professional vector database;
b traversing the incremental data, and searching the ground state data adjacent to the current incremental data space in the professional vector database;
c, calculating the topological relation between the incremental data and the ground state data adjacent to the incremental data;
d, according to the incremental data and the topological relation of the ground state data adjacent to the incremental data, carrying out updating processing one by one according to an incremental updating rule;
e, topology checking and quality control.
Specifically, the ground state data and the incremental data are preprocessed to form complex polygons with holes, and then the complex polygons are modeled
Judging the topological relation between the incremental data and the ground state data adjacent to the incremental data;
wherein A is the complex polygon of the delta data, B is the complex polygon of the ground state data,for the outer ring portion of the complex polygon A of the delta data outside the hole, < >>For the hole part of the complex polygon A of the delta data,/and/or>For the outer ring portion of the complex polygon B of the ground state data outside the hole, +.>Is a hole portion of the complex polygon B of the delta data.
By comparing the outer ring portions of the complex polygon ASaid outer ring part of said complex polygon B +.>Said outer ring portion of said complex polygon A +.>Said hole part +.>Said cavity part of said complex polygon A->Said outer ring part of said complex polygon B +.>And said hollow part of said complex polygon A +.>Said hole part +.>The topological relation between the two can be obtained to 4096 (8 4 ) The theoretical topological relation is removed, and 152 topological relations are obtained under the condition of no practical significance.
In order to realize automatic updating of all elements, especially for the case that the base state and the increment are complex polygons, the topological consistency of the elements before and after updating is maintained, and the topological relation among the complex polygons must be considered in the updating process. A set of complex polygon incremental update rules is designed according to 152 topological relations among the complex polygons.
In the case of complex polygon incremental update, if the type of Changetype is Create directly inserted, and if the type of Changetype is Delete or Modify, update processing is required, except that the Modify type processing finally needs to insert an incremental polygon, and the description will be given below taking the type of Changetype as Modify as an example.
1) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Disjoint/Meet,Disjoint, Disjoint,Disjoint]Or[Contain,Contain,Cover/Contain/Equal,Contain]Or[Inside,CoveredBy/Inside/Equal,Inside,Inside]When the polygon B is directly inserted:
Create(B);
2) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Disjoint/Meet, Disjoint,Disjoint]When the complex polygon A is inserted into the history database, the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),=Cut(/>,/>),Create(B);
3) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Disjoint,Meet/ Overlap,Disjoint]Or[Overlap,Meet,Meet/Overlap,Disjoint]Or[Overlap,Contain,Overlap,Cover/Contain]Or[Cover,Contain,Overlap,Cover/Contain]When the complex polygon A is inserted into the history database, the polygon A is newly added>The attribute value is the same as that of the complex polygon A, the geometric shape is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B, then erases the hole part of the complex polygon, inserts the complex polygon B, and deletes the complex polygon A:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(Cut(/>,/>),),Create(B);
4) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Disjoint, CoveredBy/Inside,Disjoint]Or[Overlap,Meet,CoveredBy/Inside,Disjoint]Or[Overlap,Contain,CoveredBy,Cover/Contain]Or[Overlap,Contain,Inside,Cover/Contain/Equal]Or[Cover,Contain,CoveredBy,Cover/Contain]Or[Cover,Contain,Inside,Equal/Contain]When the complex polygon A is inserted into the history database, the polygon A is newly added>The attribute value is the same as that of the complex polygon A, the geometric shape is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
Create(B),Delete(A);
5) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Contain,Inside, Inside]Or[Cover,Contain,Inside,Inside]When the complex polygon A is inserted into the history database, the polygon A is newly added>The attribute value is the same as that of the complex polygon A, the geometric shape is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B, the outer ring part of the complex polygon A is modified into the outer ring part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
ModifyOuterRing(,A),Create(B);
6) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Overlap, Inside,Overlap/CoveredBy]Or[Inside,Overlap,Inside,Overlap/CoveredBy]When the complex polygon A is inserted into the history database, the polygon A is newly added>The attribute value is the same as that of the complex polygon A, the geometric shape is that the outer ring part of the complex polygon A and the hole part of the complex polygon B are crossed, the hole part of the complex polygon is erased, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(Intersection(,/>),/>),Create(B),Delete(A);
7) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Disjoint/ Meet,Inside,Disjoint]Or[CoveredBy,Contain,Inside,Cover/Contain/Equal ]Or[Inside,Disjoint/Meet,Inside,Disjoint]Or[Inside,Contain,Inside,Contain/CoveredBy/Equal]Or[Equal,Contain,Contain,Cover/Contain/Equal]When the complex polygon A is inserted into the history database, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(B),Delete(A);
8) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover,Meet, Disjoint]Or[Overlap,Cover,Overlap,Disjoint/Meet]Or[Overlap,Contain,Meet,Disjoint]Or[Overlap,Contain,Overlap,Disjoint/Meet]Or[Overlap,Contain,Meet,Disjoint]Or[Overlap,Contain,Overlap,Disjoint/Meet]When the complex polygon A is inserted into the history database, the polygon A is newly added>And->The attribute values are all the same as the complex polygon A, < >>The geometry of the complex polygon A is that the outer ring part of the complex polygon B is erased, and then the hollow part of the complex polygon is erased, < >>The geometric shape of the polygon is a cavity part of a complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(/>,A),/>=Cut(Cut(/>,/>),/>),/>=/>,Create(B),Delete(A);
9) When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain, CoveredBy,Meet]Or[Contain,Contain,Inside,Overlap]When the complex polygon A is inserted into the history database, the polygon A is newly added>The attribute value is the same as the complex polygon A, and the geometric shape is complexThe hetero-polygon A erases the hollow part of the complex polygon B, modifies the hollow part of the complex polygon A into the outer ring part of the complex polygon B, and inserts the complex polygon B:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
ModifyInnerRing(,A),Create(B);
10 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap, CoveredBy,Disjoint/Meet]When Or [ overlay, ind, disjoin/Meet, the complex polygon A is inserted into the history database, newly added polygon->And->The attribute values are all the same as the complex polygon A, < >>Is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B,/>The geometric shape of the complex polygon A is that the outer ring part of the complex polygon A is intersected with the hole part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(/>,A),/>=Cut(/>,/>),/>=Intersection(/>,/>),Create(B),Delete(A);
11 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover, CoveredBy,Disjoint/Meet]Or[Overlap,Cover,Inside,Disjoint/Meet]Or[Overlap,Contain,CoveredBy,Disjoint/Meet]Or[Overlap,Contain,Inside,Disjoint/Meet]Or[Cover,Contain,CoveredBy,Disjoint/Meet]Or[Cover,Contain,Inside,Disjoint/Meet]When the complex polygon A is inserted into the history database, the polygon A is newly added>And->The attribute values are all the same as the complex polygon a,is a complex polygon a outer ring partial eraseOuter ring part of complex polygon B, +.>The geometric shape of the polygon is a cavity part of a complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(/>,A),/>=Cut(/>,/>),/>=/>,Create(B),Delete(A);
12 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Cover, Inside,Disjoint/Meet]When the complex polygon A is inserted into the history database, the polygon A is newly added>The attribute value is the same as that of the complex polygon A, the geometric shape is the hollow part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,Creat(B),Delete(A);
13 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Cover/ Contain,Inside,Inside]Or[Inside,Cover/Contain,Inside,Inside]Or[Inside,Equal,Inside,Contain]When the complex polygon A is inserted into the history database, the outer ring part of the complex polygon A is modified into the hollow part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),ModifyOuterRing(,A),Create(B),Delete(A);
14 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain, CoveredBy,Disjoint/Meet]Or [ Contain, contain, inside, disjoin/Meet, newly added polygonsThe attribute value is the same as that of the complex polygon A, the geometric shape is the hollow part of the complex polygon B, the hollow part of the complex polygon A is modified into the outer ring part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,ModifyInnerRing(/>,A),Create(B);
15 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Overlap, Cover/Contain]When the complex polygon A is modified, the hollow part of the complex polygon A is changed into the outer ring part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),ModifyInnerRing(,A),Create(B);
16 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover, CoveredBy,Disjoint]Or[Overlap,Cover,Inside,Overlap/Inside]Or[Overlap,Contain,CoveredBy/Inside,Overlap]Or[Overlap,Contain,Inside,CoveredBy]Or[Cover,Contain,CoveredBy/Inside,Overlap]Or[Cover,Contain,Inside,CoveredBy]When the complex polygon A is inserted into the history database, the polygon A is newly added>And->The attribute values are all the same as the complex polygon A, < >>Is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B,/>The geometrical shape of the complex polygon B is that the cavity part of the complex polygon A is erased, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(/>,A),/>=Cut(/>,/>),/>=Cut(/>,/>),Create(B),Delete(A);
17 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap, CoveredBy,Overlap]Or[Overlap,Overlap,Inside,Overlap/CoveredBy]Complex polygon A is inserted into history database, newly added polygon ++>And->The attribute values are all the same as the complex polygon A, < >>Is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B,/>The geometric shape of the complex polygon A is that the outer ring part of the complex polygon A is intersected with the hole part of the complex polygon B, then the hole part of the complex polygon B is erased, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(/>,A),/>=Cut(/>,/>),/>=Cut(Intersection(/>,/>),/>),Create(B),Delete(A);
18 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,Meet, Disjoint]Or[Overlap,Overlap,Overlap,Disjoint/Meet]When complex polygon A is inserted into history database, newly added polygon ++>And->The attribute values are all the same as the complex polygon A, < >>The geometry of the complex polygon A is that the outer ring part of the complex polygon B is erased, and then the hollow part of the complex polygon A is erased, < >>The geometric shape of the complex polygon A is that the outer ring part of the complex polygon A is intersected with the hole part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(/>,A),/>=Cut(Cut(/>,/>),/>),/>=Intersection(/>,/>),Create(B),Delete(A);
19 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Cover, Inside,Inside]Or[Inside,Overlap,Inside,Inside]When the complex polygon A is inserted into the history database, the outer ring part of the complex polygon A is modified to be intersected with the hollow part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),ModifyOuterRing(Intersection(,/>),A),Create(B);
20 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Overlap, Inside,Disjoint/Meet]Or[Inside,Overlap,Inside,Disjoint/Meet]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the geometric shape is the intersection of the outer ring part of the complex polygon A and the cavity part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Intersection(/>,),Create(B),Delete(A);
21 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap/Cover,Contain, Disjoint,Disjoint]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as the complex polygon A, < +.>The geometric shape of the ring-shaped part is a hollow part of a complex polygon B, the outer ring part of the complex polygon A is modified to be the outer ring part of the complex polygon A, the outer ring part of the complex polygon B is erased, and the complex polygon B is inserted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,ModifyOuterRing(Cut(/>,/>),A),Create(B);
22 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain, Contain, CoveredBy, Cover/Contain]Or [Contain, Contain, Inside, Cover/Contain/Equal]When the complex polygon A is inserted into the history database, modifying the hollow part of the complex polygon A into the outer ring part of the complex polygon B, and inserting the complex polygon B:
InsertHistory(A),ModifyOuterRing(,A),Create(B);
23 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Overlap, Disjoint/Meet]Or[Contain,Contain,Meet,Disjoint]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the geometric shape is the hole part of the complex polygon B, the hole part of the complex polygon A is modified into the union of the hole part of the complex polygon A and the outer ring part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,ModifyInnerRing(Union(/>,/>),A),Create(B);
24 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Overlap, Inside,Overlap]Or[CoveredBy,Cover,Inside,Inside/Disjoint]Or[Covered,Contain,Inside,Overlap]Or[Inside,Overlap,Inside,Inside]Or[Inside,Cover,Inside,Disjoint]Or[Inside,Equal,Inside,Inside]Or[Equal,Contain,Contain,Overlap]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the outer ring part of the complex polygon A is erased by the hole part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
Create(B),Delete(A);
25 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap/Cover,Contain, Overlap,Overlap]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the geometric shape is the hollow part of the complex polygon B, the outer ring part of the complex polygon A is modified to be the outer ring part of the complex polygon A, and the complex polygon B is erasedAn outer ring portion, inserted into the complex polygon B:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,ModifyOuterRing(Cut(/>,/>),A),Create(B);
26 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Contain,Inside, Disjoint/Meet]Or[Inside,Cover,Inside,Disjoint/Meet]Or[Inside,Contain,Inside,Disjoint/Meet]Or[Equal,Contain,Inside,Disjoint/Meet]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the geometric shape is the hollow part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,Create(B),Delete(A);
27 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Inside,Contain,Inside, Overlap/Cover]When complex polygon A is inserted into history database, it is newly addedShape->The attribute value is the same as that of the complex polygon A, the cavity part of the complex polygon A is erased by the cavity part of the complex polygon B, the complex polygon B is inserted, and the complex polygon A is deleted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
Create(B),Delete(A);
28 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Inside, Inside]When the complex polygon A is inserted into the history database, the new polygon is added>The attribute value is the same as that of the complex polygon A, the geometric shape is the hollow part of the complex polygon B, and the polygon is given +.>And adding a hole part, wherein the size of the hole part is that of the complex polygon A, modifying the hole part of the complex polygon A into an outer ring part of the complex polygon B, and inserting the complex polygon B:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,CreateHole(/>,/>),ModifyInnerRing(/>,A),Create(B);
29 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,Inside, Inside]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the geometric shape is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B, the outer ring part of the complex polygon A is modified to be the intersection of the outer ring part of the complex polygon A and the cavity part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
ModifyInnerRing(Intersection(),A),Create(B);
30 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,Disjoint, Disjoint]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the geometric shape is that the outer ring part of the complex polygon A is intersected with the hole part of the complex polygon B, the outer ring part of the complex polygon B is modified to erase the outer ring part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Intersection(),ModifyInnerRing(Cut(/>),A),Create(B);
31 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover,Inside, Inside]Complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the geometric shape is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B, the outer ring part of the complex polygon A is modified into the hollow part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
ModifyOuterRing(,A),Create(B);
32 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Inside, CoveredBy]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, the hole part of the complex polygon A is erased by the hole part of the complex polygon B, the hole part of the complex polygon A is modified into the outer ring part of the complex polygon B, and the complex polygon B is inserted:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
ModifyOuterRing(,A),Create(B);
33 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,Overlap, Overlap]When complex polygon A is inserted into history database, newly added polygon ++>And->The attribute values are all the same as the complex polygon A, < >>The geometric shape of the ring part of the complex polygon A is intersected with the cavity part of the complex polygon B, and then the cavity part of the complex polygon A is erased; />The geometric shapes of the complex polygon A are that the outer ring part of the complex polygon A is erased, then the hollow part of the complex polygon A is erased, the complex polygon B is inserted, and the complex polygon A is deleted: />
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(/>,A),/>=Cut(Intersection(/>,/>),/>),/>=Cut(Cut(/>,/>),/>),Create(B),Delete(A);
34 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Overlap, Overlap]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, and the geometrical shape is that the outer ring part of the complex polygon A is erased by the hollow part of the complex polygon B; modifying the hollow part of the complex polygon A into a union of the hollow part of the complex polygon A and the outer ring part of the complex polygon B; inserting a complex polygon B:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),
ModifyInnerRing(Union(,/>),A),Create(B);
35 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover,Overlap, Overlap]When complex polygon A is inserted into history database, newly added polygon ++>And->The attribute values are all the same as the complex polygon A, < >>The geometric shape of the ring part is that the outer ring part of the complex polygon A erases the outer ring part of the complex polygon B, and then erases the cavity part of the complex polygon A; />The geometrical shape of the complex polygon B is that the cavity part of the complex polygon A is erased; inserting a complex polygon B, and deleting a complex polygon A:
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(/>,A),/>=Cut(Cut(/>,/>),/>),/>=Cut(/>,/>),Create(B),Delete(A);
36 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Disjoint, Disjoint]When complex polygon A is inserted into history database, newly added polygon ++>The attribute value is the same as that of the complex polygon A, and the geometric shape is the cavity part of the complex polygon B; adding a hollow part to the complex polygon A, wherein the hollow part is in the shape of an outer ring part of the complex polygon B; inserting a complex polygon B:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,CreateHole(/>,A),Create(B)。
37 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap, Overlap, Inside, Inside]When the base state polygon A is inserted into the history database, the outer ring of the base state polygon A is the intersection of the outer ring of the base state polygon A and the inner ring of the increment polygon B; newly added polygon->The attribute value is the same as that of the ground state polygon A, and the geometric shape is the outer ring of the ground state polygon A and the outer ring of the incremental polygon B is erased; inserting an increment polygon B:
InsertHistory(A),=Intersection(/>,/>) Create(/>), SetAttribute(/>, A),/>=Cut(/>,/>), Create(B)。
to verify the validity of the complex delta polygon delta updates herein based on topological relationships, under the development environment of visual studio2012 and arcgisegine10.2, using PostgreSQL13 database, 1: the 50000 basic geographic information vector data automatic updating system realizes the increment updating of complex increment polygon.
The experimental area herein is berlin, germany, and the data contains three element layers RESA (residential floor), hyta (water system surface) and VEGA (vegetation surface), wherein the number of ground state data is 10096, the number of increment data is 1807, and the data is shown in the following table 1.
TABLE 1
In the experimental data, 103 different topological relations among complex polygons are calculated, and 31 complex polygon increment updating rules are used. The elements in the full element automated incremental local update details shown in fig. 3 and 4 are the portions of the tengo lake in the hyta layer (the upper half in fig. 3 represents the ground state and the lower half represents the increment), which are the partial boundaries of the tengo lake and the partial islands within the lake. The topological relation calculation result of the lake ground state and the increment element is [ T ],/>),T(,/>),T(/>,/>),T(/>,/>)]=[Overlap,Contain,Inside,Overlap]Is suitable for updating rule 16, and removing the broken polygon after the updating operation.
The incremental update plays an important role in the active maintenance of the basic geographic information vector data, and the construction of the national basic geographic vector database is directly affected by solving the problems of the incremental update and the topological consistency maintenance. According to the method, a set of complex incremental polygon incremental updating method based on topological relation is designed aiming at the condition that the incremental polygon is a complex polygon, enumeration reasoning of the topological relation between the complex incremental polygon and the inner ring and the outer ring of the base state complex polygon is carried out by the method to obtain 152 topological relations, the 152 topological relations are generalized and designed to obtain effective rules of the incremental polygon, and automatic updating and topology consistency maintenance of the complex incremental polygon are achieved. And finally, developing a complex incremental polygon updating prototype system, and verifying the validity of the set of rules by taking the basic geographic information vector data of the Berlin city in Germany as test data.
The preferred embodiments of the present invention have been described in detail above with reference to the accompanying drawings, but the present invention is not limited to the specific details of the above embodiments, and various simple modifications can be made to the technical solution of the present invention within the scope of the technical concept of the present invention, and all the simple modifications belong to the protection scope of the present invention.
In addition, the specific features described in the foregoing embodiments may be combined in any suitable manner, and in order to avoid unnecessary repetition, the present invention is not limited to the various possible combinations, so long as the concept of the present invention is not violated.

Claims (4)

1. The incremental complex polygon updating method based on the topological relation is characterized by comprising the following steps of:
preprocessing the ground state data and the incremental data, and recording the preprocessed ground state data and the preprocessed incremental data in a professional vector database;
b traversing the incremental data, and searching the ground state data adjacent to the current incremental data space in a professional vector ground state database;
c through the modelCalculating the topological relation between the incremental data and the basic state data adjacent to the incremental data, wherein A is a complex polygon of the incremental data, B is a complex polygon of the basic state data, and +.>For the outer ring portion of the complex polygon A of the delta data outside the hole, < ->For the hole part of the complex polygon A of the delta data,/and/or>An outer ring portion of the complex polygon B outside the hole, which is the ground state data,/->For the hole portion of the complex polygon B of the delta data,for the outer ring part->Is->Is->For the outer ring portionIs->Is->For the hollow part->Is->Is->For the hollow part->Is->Is a topological relation of (1);
d according to the incremental data and the incremental dataThe topological relation of the adjacent ground state data is updated one by one according to an incremental updating rule, and the incremental updating rule is based on a model [ T ],/>),T(/>,),T(/>,/>),T(/>,/>)]The incremental update rule includes:
1) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Disjoint/Meet,Disjoint,Disjoint,Disjoint]Or[Contain,Contain,Cover/Contain/Equal,Contain]Or[Inside,CoveredBy/Inside/Equal,Inside,Inside]When (1):
Create(B);
2) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Disjoint/Meet,Disjoint,Disjoint]When (1):
InsertHistory(A),=Cut(/>,/>),Create(B);
3) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Disjoint,Meet/Overlap,Disjoint]Or[Overlap,Meet,Meet/Overlap,Disjoint]Or[Overlap,Contain,Overlap,Cover/Contain]Or[Cover,Contain,Overlap,Cover/Contain]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(Cut(/>,/>),/>),Create(B);
4) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Disjoint,CoveredBy/Inside,Disjoint]Or[Overlap,Meet,CoveredBy/Inside,Disjoint]Or[Overlap,Contain,CoveredBy,Cover/Contain]Or[Overlap,Contain,Inside,Cover/Contain/Equal]Or[Cover,Contain,CoveredBy,Cover/Contain]Or[Cover,Contain,Inside,Equal/Contain]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),Create(B),Delete(A);
5) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Contain,Inside,Inside]Or[Cover,Contain,Inside,Inside]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),ModifyOuterRing(/>,A),Create(B);
6) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Overlap,Inside,Overlap/CoveredBy]Or[Inside,Overlap,Inside,Overlap/CoveredBy]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(Intersection(/>,),/>),Create(B),Delete(A);
7) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Disjoint/Meet,Inside,Disjoint]Or[CoveredBy,Contain,Inside,Cover/Contain/Equal]Or[Inside,Disjoint/Meet,Inside,Disjoint]Or[Inside,Contain,Inside,Contain/CoveredBy/Equal]Or[Equal,Contain,Contain,Cover/Contain/Equal]When (1):
InsertHistory(A),Create(B),Delete(A);
8) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover,Meet,Disjoint]Or[Overlap,Cover,Overlap,Disjoint/Meet]Or[Overlap,Contain,Meet,Disjoint]Or[Overlap,Contain,Overlap,Disjoint/Meet]Or[Overlap,Contain,Meet,Disjoint]Or[Overlap,Contain,Overlap,Disjoint/Meet]When (1):
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(,A),/>=Cut(Cut(/>,/>),/>),/>=/>,Create(B),Delete(A);
9) When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,CoveredBy,Meet]Or[Contain,Contain,Inside,Overlap]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),ModifyInnerRing(/>,A),Create(B);
10 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,CoveredBy,Disjoint/Meet]Or [ overlay, inside, disjoint/Meet:
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(,A),/>=Cut(/>,/>),/>=Intersection(/>,/>),Create(B),Delete(A);
11 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover,CoveredBy,Disjoint/Meet]Or[Overlap,Cover,Inside,Disjoint/Meet]Or[Overlap,Contain,CoveredBy,Disjoint/Meet]Or[Overlap,Contain,Inside,Disjoint/Meet]Or[Cover,Contain,CoveredBy,Disjoint/Meet]Or[Cover,Contain,Inside,Disjoint/Meet]When (1):
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(,A),/>=Cut(/>,/>),/>=/>,Create(B),Delete(A);
12 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Cover,Inside,Disjoint/Meet]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,Creat(B),Delete(A);
13 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Cover/Contain,Inside,Inside]Or[Inside,Cover/Contain,Inside,Inside]Or[Inside,Equal,Inside,Contain]When (1):
InsertHistory(A),ModifyOuterRing(,A),Create(B),Delete(A);
14 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,CoveredBy,Disjoint/Meet]Or [ Contain, contain, inside, disjoin/Meet:
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,ModifyInnerRing(/>,A),Create(B);
15 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Overlap,Cover/Contain]When (1):
InsertHistory(A),ModifyInnerRing(,A),Create(B);
16 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover,CoveredBy,Disjoint]Or[Overlap,Cover,Inside,Overlap/Inside]Or[Overlap,Contain,CoveredBy/Inside,Overlap]Or[Overlap,Contain,Inside,CoveredBy]Or[Cover,Contain,CoveredBy/Inside,Overlap]Or[Cover,Contain,Inside,CoveredBy]When (1):
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(,A),/>=Cut(/>,/>),/>=Cut(/>,/>),Create(B),Delete(A);
17 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,CoveredBy,Overlap]Or[Overlap,Overlap,Inside,Overlap/CoveredBy]When (1):
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(,A),/>=Cut(/>,/>),/>=Cut(Intersection(/>,/>),/>),Create(B),Delete(A);
18 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,Meet,Disjoint]Or[Overlap,Overlap,Overlap,Disjoint/Meet]When (1):
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(,A),/>=Cut(Cut(/>,/>),/>),/>=Intersection(/>,/>),Create(B),Delete(A);
19 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Cover,Inside,Inside]Or[Inside,Overlap,Inside,Inside]When (1):
InsertHistory(A),ModifyOuterRing(Intersection(,/>),A),Create(B);
20 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Overlap,Inside,Disjoint/Meet]Or[Inside,Overlap,Inside,Disjoint/Meet]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Intersection(/>,/>),Create(B),Delete(A);
21 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap/Cover,Contain,Disjoint,Disjoint]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,ModifyOuterRing(Cut(/>,/>),A),Create(B);
22 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain, Contain, CoveredBy, Cover/Contain] Or [Contain, Contain, Inside, Cover/Contain/Equal]When (1):
InsertHistory(A),ModifyOuterRing(,A),Create(B);
23 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Overlap,Disjoint/Meet]Or[Contain,Contain,Meet,Disjoint]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,ModifyInnerRing(Union(/>,/>),A),Create(B);
24 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Overlap,Inside,Overlap]Or[CoveredBy,Cover,Inside,Inside/Disjoint]Or[Covered,Contain,Inside,Overlap]Or[Inside,Overlap,Inside,Inside]Or[Inside,Cover,Inside,Disjoint]Or[Inside,Equal,Inside,Inside]Or[Equal,Contain,Contain,Overlap]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),Create(B),Delete(A);
25 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap/Cover,Contain,Overlap,Overlap]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,ModifyOuterRing(Cut(/>,/>),A),Create(B);
26 When model
[T(,/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[CoveredBy,Contain,Inside,Disjoint/Meet]Or[Inside,Cover,Inside,Disjoint/Meet]Or[Inside,Contain,Inside,Disjoint/Meet]Or[Equal,Contain,Inside,Disjoint/Meet]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,Create(B),Delete(A);
27 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Inside,Contain,Inside,Overlap/Cover]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),Create(B),Delete(A);
28 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Inside,Inside]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,CreateHole(/>,/>),ModifyInnerRing(/>,A),Create(B);
29 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,Inside,Inside]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),ModifyInnerRing(Intersection(/>),A),Create(B);
30 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,Disjoint,Disjoint]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Intersection(/>),ModifyInnerRing(Cut(/>),A),Create(B);
31 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover,Inside,Inside]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),ModifyOuterRing(/>,A),Create(B);
32 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Inside,CoveredBy]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),ModifyOuterRing(/>,A),Create(B);
33 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Overlap,Overlap,Overlap]When (1):
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(,A),/>=Cut(Intersection(/>,/>),/>),/>=Cut(Cut(/>,/>),/>),Create(B),Delete(A);
34 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Overlap,Overlap]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=Cut(/>,/>),ModifyInnerRing(Union(/>,/>),A),Create(B);
35 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap,Cover,Overlap,Overlap]When (1):
InsertHistory(A),Create(),Create(/>),SetAttribute(/>,A),SetAttribute(,A),/>=Cut(Cut(/>,/>),/>),/>=Cut(/>,/>),Create(B),Delete(A);
36 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Contain,Contain,Disjoint,Disjoint]When (1):
InsertHistory(A),Create(),SetAttribute(/>,A),/>=/>,CreateHole(/>,A),Create(B);
37 When model [ T ],/>),T(/>,/>),T(/>,/>),T(/>,/>)]=[Overlap, Overlap, Inside, Inside]When (1):
InsertHistory(A),=Intersection(/>,/>) Create(/>), SetAttribute(/>, A), />=Cut(/>,/>), Create(B);
wherein the disjoin representations are separated, the Meet representations are connected, the overlay representations are partially overlapped, the Cover representation is covered, the Cover by representation is covered, the Inside representation is internal, the content representation contains and the Equal representation is Equal;
in the update process, create (N) represents inserting a polygon N, delete (N) represents deleting the polygon N, insertHistory (N) represents inserting the polygon N into a history database, N 1= Cut (M, N) represents a polygon N 1 The geometry of (a) is that a polygon M is erased to be a part of the polygon N, and setAttribute isN) represents adding one of the polygons N 1 The polygon N 1 The attribute values of (a) and (b) are the same as those of the polygon N, modyOuterRing (M, N) indicates that an outer ring part of the polygon N is modified into the polygon M, modyInnenrring (M, N) indicates that a hole part of the polygon N is modified into the polygon M, createHole (M, N) indicates that the hole part is newly added into the polygon N, the shape of the hole part is the polygon M, union (M, N) indicates that the polygon M and the polygon N are combined, and Interaction (M, N) indicates that the polygon M and the polygon N are intersected;
e, topology checking and quality control.
2. The incremental complex polygon updating method based on topological relation according to claim 1, wherein the ground state data and the incremental data are preprocessed to form complex polygons with holes.
3. The topology-based incremental complex polygon updating method of claim 1, wherein the{ Disjoint, meet, overlap, cover, coveredBy, inside, contain, equal }; the said{ Disjoint, meet, overlap, cover, coveredBy, inside, contain, equal }; the said{ Disjoint, meet, overlap, cover, coveredBy, inside, contain, equal }; the said{Disjoint、Meet、Overlap、Cover、CoveredBy、Inside、Contain、Equal}。
4. The topology-based delta complex polygon updating method of claim 1, wherein the types of updating processes include adding Create, deleting Delete, and modifying Modify.
CN202310301446.7A 2023-03-27 2023-03-27 Incremental complex polygon updating method based on topological relation Active CN116028588B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310301446.7A CN116028588B (en) 2023-03-27 2023-03-27 Incremental complex polygon updating method based on topological relation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310301446.7A CN116028588B (en) 2023-03-27 2023-03-27 Incremental complex polygon updating method based on topological relation

Publications (2)

Publication Number Publication Date
CN116028588A CN116028588A (en) 2023-04-28
CN116028588B true CN116028588B (en) 2023-10-10

Family

ID=86077880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310301446.7A Active CN116028588B (en) 2023-03-27 2023-03-27 Incremental complex polygon updating method based on topological relation

Country Status (1)

Country Link
CN (1) CN116028588B (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942331A (en) * 2014-04-30 2014-07-23 中南大学 Automatic updating processing method for increments of land utilization vector database
CN105551028A (en) * 2015-12-09 2016-05-04 中山大学 Method and system for dynamically updating geographic space data based on remote sensing image
CN106447777A (en) * 2016-10-21 2017-02-22 西南大学 Three-dimensional topological relation expressing and mapping achieved under support of Boolean operation
CN108829953A (en) * 2018-06-01 2018-11-16 上汽通用五菱汽车股份有限公司 Manifold modeling method, device and computer readable storage medium
US10769850B1 (en) * 2017-02-13 2020-09-08 Ansys, Inc. Systems and methods for efficient updating of an analysis mesh
CN113312363A (en) * 2020-11-12 2021-08-27 中南大学 Automatic method for updating overpass increment and maintaining topological connectivity of overpass increment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126307A1 (en) * 2006-11-29 2008-05-29 Bor-Tsuen Lin Method for recognizing feature of 3D solid model
US8284192B2 (en) * 2008-11-07 2012-10-09 Landworks, Inc. Polygon dissection in a geographic information system
US20120320087A1 (en) * 2011-06-14 2012-12-20 Georgia Tech Research Corporation System and Methods for Parallelizing Polygon Overlay Computation in Multiprocessing Environment
US9104770B2 (en) * 2013-02-28 2015-08-11 Oracle International Corporation Methods for query processing of topological relationships among complex spatial objects

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942331A (en) * 2014-04-30 2014-07-23 中南大学 Automatic updating processing method for increments of land utilization vector database
CN105551028A (en) * 2015-12-09 2016-05-04 中山大学 Method and system for dynamically updating geographic space data based on remote sensing image
CN106447777A (en) * 2016-10-21 2017-02-22 西南大学 Three-dimensional topological relation expressing and mapping achieved under support of Boolean operation
US10769850B1 (en) * 2017-02-13 2020-09-08 Ansys, Inc. Systems and methods for efficient updating of an analysis mesh
CN108829953A (en) * 2018-06-01 2018-11-16 上汽通用五菱汽车股份有限公司 Manifold modeling method, device and computer readable storage medium
CN113312363A (en) * 2020-11-12 2021-08-27 中南大学 Automatic method for updating overpass increment and maintaining topological connectivity of overpass increment

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
一种存储复杂多边形包含关系的四叉树索引;汪红松;周晓光;;湖南大学学报(自然科学版)(04);全文 *
基于拓扑联动的增量更新方法研究――以地籍数据库为例;陈军;周晓光;;测绘学报(03);全文 *
复合地块的拓扑类型计算与应用;陈斐;周晓光;;测绘地理信息(06);第52-55页 *
面向带洞面状对象间的拓扑关系描述模型;沈敬伟;周廷刚;朱晓波;;测绘学报(06);全文 *

Also Published As

Publication number Publication date
CN116028588A (en) 2023-04-28

Similar Documents

Publication Publication Date Title
Cavalcante Neto et al. An algorithm for three-dimensional mesh generation for arbitrary regions with cracks
Pilouk Integrated modelling for 3D GIS
CN105117573B (en) Auto hydraulic model building method based on CAD drainage pipeline networks drawing informations
Perucchio et al. Automatic mesh generation from solid models based on recursive spatial decompositions
CN109977162A (en) A kind of urban and rural planning data transfer device, system and computer readable storage medium
US8438186B2 (en) Method and apparatus for creating topological features inside a database system
Gammon A review of common geometry issues affecting mesh generation
Yang et al. A map‐algebra‐based method for automatic change detection and spatial data updating across multiple scales
CN111272179A (en) Building space unmanned aerial vehicle route planning method based on seed search
CN116028588B (en) Incremental complex polygon updating method based on topological relation
CN1979545A (en) City-planning digit reporting-for-construction software system
CN115033936B (en) Material model management method for SolidWorks system
CN117150595A (en) Automatic modeling method and system for BIM software interoperation based on artificial intelligence
CN107506417A (en) High-fidelity ground mulching data iteration update method and system
Gold Spatial data structures—the extension from one to two dimensions
Lewis et al. Aspects of adaptive mesh generation based on domain decomposition and Delaunay triangulation
Lee et al. Automating Generalization–Tools and Models
Chen et al. A new DEM generalization method based on watershed and tree structure
Siejka et al. Correction of topological errors in geospatial databases
CN113312363B (en) Automatic method for incremental update and topology connectivity maintenance of overpass
CN107610229A (en) The three-dimensional building thing model self-repairing method corroded based on heuristic envelope
CN112612840A (en) Heterogeneous data processing method, device, equipment and storage medium
CN107066574B (en) A kind of method and device of ore body reserves block mark circle matching and update
CN107704540B (en) Method for rapidly extracting road network in designated administrative district from OSM data
Brugman et al. Validating a 3D topological structure of a 3D space partition

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