DE60211086T2 - Verfahren zur Bestimmung von Überschneidungen - Google Patents

Verfahren zur Bestimmung von Überschneidungen Download PDF

Info

Publication number
DE60211086T2
DE60211086T2 DE60211086T DE60211086T DE60211086T2 DE 60211086 T2 DE60211086 T2 DE 60211086T2 DE 60211086 T DE60211086 T DE 60211086T DE 60211086 T DE60211086 T DE 60211086T DE 60211086 T2 DE60211086 T2 DE 60211086T2
Authority
DE
Germany
Prior art keywords
polygon
boundary
intersection
union
polygons
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.)
Expired - Lifetime
Application number
DE60211086T
Other languages
English (en)
Other versions
DE60211086D1 (de
Inventor
Xiangheng Glenview Yang
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.)
Here North America LLC
Original Assignee
Navteq North America LLC
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 Navteq North America LLC filed Critical Navteq North America LLC
Application granted granted Critical
Publication of DE60211086D1 publication Critical patent/DE60211086D1/de
Publication of DE60211086T2 publication Critical patent/DE60211086T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Instructional Devices (AREA)
  • Image Analysis (AREA)
  • Navigation (AREA)
  • Image Generation (AREA)
  • Measurement Of Mechanical Vibrations Or Ultrasonic Waves (AREA)
  • Gyroscopes (AREA)
  • Purification Treatments By Anaerobic Or Anaerobic And Aerobic Bacteria Or Animals (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Verfahren zur Bestimmung der Schnittfläche oder Vereinigung zweier Polygone, besonders hinsichtlich der Bestimmung der Schnittfläche oder Vereinigung zweier Polygone, die geographische Merkmale repräsentieren.
  • In geographischen Datenbanken werden Polygone zur Darstellung zweidimensionaler Gebiete benutzt, wie z. B. Seen, Erholungsparks, Städte, Landkreise, Staaten, Golfplätze und dergleichen. In einigen Arten geographischer Datenbanken sind Polygone durch eine Reihe miteinander verknüpfter Verbindungsglieder dargestellt, um den geschlossenen Umfang des Polygons zu bilden.
  • Eine allgemein benötigte Funktion, die bei der Verwendung einer geographischen Datenbank ausgeführt wird, ist das Auffinden desjenigen Teils eines zweidimensionalen geographischen Merkmals (wie z. B. eines Sees, eines Erholungsparks, und dergleichen), der sich innerhalb eines weiteren geographischen Merkmals (wie z. B. einer Stadt, eines Landkreises, eines Staates und dergleichen) befindet. Die Lösung kann gefunden werden, indem die Schnittflächen der zur Darstellung der zweidimensionalen geographischen Merkmale benutzten Polygone bestimmt werden.
  • Es gibt bereits ältere Verfahren zur Schnittflächenbestimmung von Polygonen. Ein bekannter Algorithmus zur Schnittflächenbestimmung von Polygonen ist in Computational Geometry (O'Rourke, Joseph, Zweite Auflage, Cambridge University Press, 1998) beschrieben. Dieser Algorithmus zieht die Formpunkte zweier Polygone heran, sortiert diese nach ihrem Y-Koordina- tenwert und durchsucht alle Liniensegmente jedes Formpunktes von oben nach unten. Wenn sich ein Liniensegment in beiden Polygonen befindet, dann ist es eine Schnittflächengrenze. Wenn bei diesem älteren Algorithmus n Formpunkte in zwei Polygonen vorhanden sind, ist die gesamte Komplexität gleich n·log(n). Auch wenn dieser ältere Algorithmus zufriedenstellend arbeitet, ist er rechenaufwändig und benötigt daher einen relativ hohen Zeitaufwand, um ein Ergebnis zu erzielen.
  • Eine weitere allgemein erforderliche Funktion, die bei Verwendung einer geographischen Datenbank ausgeführt wird, ist das Auffinden der Vereinigung zweier zweidimensionaler geographischer Merkmale. Die Lösung kann gefunden werden, indem die Vereinigung der zur Darstellung zweidimensionaler geographischer Merkmale benutzten Polygone bestimmt wird. Es gibt Verfahren des Standes der Technik zur Bestimmung der Vereinigungen von Polygonen. Jedoch sind Verfahren des Standes der Technik rechenaufwendig und benötigen daher einen relativ hohen Zeitaufwand, um ein Ergebnis zu erzielen.
  • WO 00/43953 offenbart ein Verfahren zum Erzeugen und zum Gebrauch von Polygonen, um Straßen und Schnittflächen darzustellen, wobei die Straßen eine Straßenbreite aufweisen.
  • Es besteht daher Bedarf an schnelleren Wegen zur Bestimmung der Schnittfläche oder der Vereinigung zweier Polygone.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Um diese und andere Aufgaben zu lösen, umfasst die vorliegende Erfindung ein Verfahren zur Bestimmung einer Polygonschnittfläche eines erstes Polygons und eines zweiten Polygons. Eine Schnittfläche der Grenze des ersten Polygons mit der Grenze des zweiten Polygons wird lokalisiert durch Auffinden eines Knotenpunktes, von dem wenigstens drei Teile (d. h. Verbindungen) von Polygongrenzen abgehen. Von diesem Knotenpunkt wird ein erster Teil der Grenze der Polygonschnittfläche bestimmt, indem ein Abschnitt der Grenze des ersten Polygons identifiziert wird, der sich inner halb des zweiten Polygons befindet. Jeder nachfolgende Abschnitt der Grenze der Polygonschnittfläche wird bestimmt durch Auswählen desjenigen Abschnitts der Grenze entweder des ersten Polygons oder des zweiten Polygons, der (1) an das führende Ende eines aktuellen Abschnitts der Grenze der Polygonschnittfläche anschließt, und der (2) einen minimalen Winkel mit dem aktuellen Abschnitt der Grenze der Polygonschnittfläche bildet.
  • Gemäß einem weiteren Aspekt der offenbarten Erfindung werden durchschnittene Löcher oder Inseln bestimmt, wenn sich diese in beiden Polygonen befinden.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zur Bestimmung einer Polygonvereinigung eines ersten Polygons und eines zweiten Polygons offenbart. Eine Schnittfläche der Grenze des ersten Polygons mit der Grenze des zweiten Polygons wird lokalisiert durch das Auffinden eines Knotenpunktes, von dem wenigstens drei Teile (d. h. Verbindungen) von Polygongrenzen abgehen. Von diesem Knotenpunkt wird ein erster Abschnitt der Grenze der Polygonvereinigung bestimmt durch Identifizieren eines Abschnitts der Grenze des ersten Polygons, der sich außerhalb des zweiten Polygons befindet. Jeder nachfolgende Abschnitt der Grenze der Polygonvereinigung wird bestimmt durch Auswählen desjenigen Abschnitts der Grenze entweder des ersten Polygons oder des zweiten Polygons, der (1) an das führende Ende eines aktuellen Abschnitts der Grenze der Polygonvereinigung anschließt, und (2) den maximalen Winkel mit dem aktuellen Abschnitt der Grenze der Polygonvereinigung bildet.
  • Ein weiterer Aspekt der offenbarten Erfindung ist verantwortlich für die Löcher oder Inseln, die im ersten Polygon, aber nicht im zweiten Polygon enthalten sind, und Löcher oder Inseln, die im zweiten Polygon, aber nicht im ersten Polygon enthalten sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Diagramm, das eine geographische Region und Datendarstellungen einiger in dieser geographischen Region befindlicher Merkmale veranschaulicht.
  • 2 ist ein Diagramm, das ein Polygon veranschaulicht, das der Darstellung einer zweidimensionalen geographischen Region und der Datendarstellung des Polygons dient.
  • 3 ist ein Blockdiagramm, das ein Softwareprogramm veranschaulicht, das die Schnittflächen zweier Polygone bestimmt.
  • 4 beschreibt zwei sich schneidende Polygone und veranschaulicht die Arbeitsweise eines vom Softwareprogramm aus 3 durchgeführten Prozesses.
  • 5A-5C sind ein Ablaufdiagramm des vom Softwareprogramm aus 3 durchgeführten Prozesses.
  • 6 beschreibt einen Schritt im Prozess der 5A-5C.
  • 7A und 7B beschreiben einen weiteren Schritt im Prozess der Fig. 5A-5C.
  • 8 beschreibt einen weiteren Schritt im Prozess der 5A-5C.
  • 9 zeigt ein Polygon mit einem Loch und die Datendarstellung desselben.
  • 10 zeigt eine Schnittfläche von Polygonen mit Löchern in der Schnittfläche.
  • 11 ist ein Blockdiagramm, das ein Softwareprogramm veranschaulicht, welches die Vereinigung zweier Polygone bestimmt.
  • 12A und 12B beschreiben zwei Polygone und veranschaulichen die Arbeitsweise des Prozesses, der vom Softwareprogramm der 11 durchgeführt wird.
  • 13A-13C sind ein Flussdiagramm des Prozesses, der vom Softwarepro gramm der 11 durchgeführt wird.
  • 14 beschreibt einen Schritt im Prozess der 13A-13C.
  • 15A und 15B beschreiben einen weiteren Schritt im Prozess der 13A-13C.
  • 16 beschreibt einen weiteren Schritt im Prozess der 13A-13C.
  • 17 beschreibt einen Schritt im Prozess der 13A-13C zum Umgang mit vereinigten Löchern/Inseln.
  • GENAUE BESCHREIBUNG DER DERZEIT BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 1. DIE GEOGRAPHISCHE DATENBANK
  • Wie in 1 gezeigt ist, beinhaltet eine geographische Datenbank 100 eine Datenmenge 104, die Merkmale darstellt, die sich in der abgebildeten Region 108 befinden. Zum Beispiel kann die geographische Datenbank 100 Daten enthalten, die Straßen 112 und Sehenswürdigkeiten 116 verkörpern. Die geographische Datenbank 100 enthält ferner Daten 120, die zweidimensionale Merkmale oder Gebilde 124 verkörpern. Einige der unterschiedlichen Arten zweidimensionaler Merkmale, die in der geographischen Datenbank 100 vertreten sein können, beinhalten Geländemerkmale (z. B. Gebirgszüge), Wasserlandschaften (z. B. Seen, Teiche, Sümpfe, Feuchtgebiete), Erholungs- und Sportanlagen (z. B. Golfplätze, Parkanlagen, Stadien, Waldschutzgebiete), Einkaufszentren, Industriegebiete und politische Verwaltungseinheiten (z. B. Großstädte, Städte, Staaten, Gemeinden, Kommunen, Länder, Schulbezirke), wie auch andere Arten von Gebieten.
  • Wie in 2 gezeigt ist, werden in der geographischen Datenbank 100 zweidimensionale Merkmale durch Polygone dargestellt. Mit anderen Worten, in der geographischen Datenbank 100 beschreiben die zur Darstellung zweidimensionaler Merkmale genutzten Daten diese Merkmale als Polygone. In der geographischen Datenbank 100 entspricht die Grenze des Polygons der Grenze des zweidimensionalen Merkmals.
  • Die folgende Terminologie findet Anwendung zur Darstellung zweidimensionaler Merkmale in der geographischen Datenbank 100.
  • "Knotenpunkt" – Ein Punkt, der eine Verbindung abschließt.
  • "Liniensegment" – Eine gerade Linie, die zwei Punkte verbindet.
  • "Verbindung" (oder "Kante") – Eine anliegende, nicht abzweigende Reihe eines oder mehrerer Liniensegmente, die an jedem Ende in einem Knotenpunkt abschließt.
  • "Formpunkt" – Ein Punkt entlang einer Verbindung zwischen zwei Knotenpunkten.
  • "Orientierte Verbindungen" – Eine Verbindung mit einem Startknotenpunkt (auch "Referenzknotenpunkt" genannt) und einem Endknotenpunkt (auch "Nicht-Referenzknotenpunkt" genannt).
  • "Einfaches Polygon" – Ein innerer Bereich einer Außengrenze, gebildet von einer Reihe orientierter Verbindungen, die an einem Knotenpunkt beginnen und enden. (Ein einfaches Polygon kreuzt sich nicht selbst.) "Polygon" – Der Bereich, der von einer äußeren Grenze und keiner oder wenigstens einer inneren Grenze (z. B. ein Loch oder eine Insel) begrenz ist. Ein Polygon wird gebildet durch ein äußeres einfaches Polygon und keinem oder wenigstens einem einfachen inneren Polygon. Ein Polygon ist einfach, wenn es aus nur einem einfachen Polygon besteht oder komplex, wenn es mindestens ein inneres einfaches Polygon beinhaltet.
  • Die geographische Datenbank 100 folgt verschiedenen Richtlinien. Zum Beispiel kreuzen sich Verbindungen nicht selbst und auch nicht untereinander, ausgenommen an einem Knotenpunkt. Ebenso gibt es keine mehrfachen Formpunkte, Knotenpunkte oder Verbindungen. Zwei Verbindungen, die aneinander anschließen, haben einen gemeinsamen Knotenpunkt. In der geographischen Datenbank 100 werden überlappende zweidimensionale Merkmale durch überlappende Polygone dargestellt. Wenn Polygone überlappen, kreuzt die Grenze des einen Polygons die Grenze des anderen Polygons. In der geographischen Datenbank 100 ist die Stelle, an der die Grenze des einen Polygons die Grenze des anderen Polygons schneidet, durch einen Knotenpunkt dargestellt. (Ein Knotenpunkt kann zur Darstellung anderer Stellen an der Grenze eines Polygons als der Stelle, an der die Grenze des Polygons die Grenze eines anderen Polygons schneidet, verwendet werden.) Ein Formpunkt wird nicht zur Darstellung eines Schnittpunktes zwischen der Grenze eines Polygons und der Grenze eines anderen Polygons verwendet.
  • In der geographischen Datenbank 100 enthält die Datendarstellung 132 eines Polygons, das ein zweidimensionales Merkmals repräsentiert, eine Liste 136, die jede orientierte Verbindung erkennt, die die Grenze des Polygons bildet. Entsprechend den in der geographischen Datenbank herrschenden Richtlinien, erkennt die Liste 136 die orientierten Verbindungen im Uhrzeigersinn. Wenn das Polygon ein Loch aufweist, (d. h. ein zweites Polygon befindet sich vollständig innerhalb des ersten Polygons), wird das Loch anhand einer Liste von im Gegenuhrzeigersinn aufgeführten orientierten Verbindungen identifiziert.
  • II. VERFAHREN ZUR BESTIMMUNG DER SCHNITTFLÄCHE VON POLYGONEN
  • Wie oben beschrieben ist, ist es bei Anwendungen, die auf geographischen Datenbanken basieren, manchmal notwendig, zu bestimmen, ob zwei zweidimensionale Merkmale überlappen und, wenn zutreffend, den zweidimensionalen Bereich, der die Schnittfläche der beiden zweidimensionalen Merkmale bildet (d. h. die überlappende Teilmenge) zu bestimmen. Hinsichtlich Polygonen, die diese zweidimensionalen Merkmale darstellen, ist es notwendig, die Schnittflächen der Polygone zu bestimmen.
  • Ein Verfahren zur Bestimmung der Schnittflächen von Polygonen wird in Zusammenhang mit den 3-10 beschrieben. Wie in 3 gezeigt ist, ist das Verfahren durch ein Softwareprogramm 200 implementiert, das die geographische Datenbank 100 benutzt, die Datendarstellungen von Polygonen enthält, wie in Zusammenhang mit 1 und 2 beschrieben worden ist. Das Softwareprogramm 200 erhält zwei Datendarstellungen von Polygonen als Eingabe (die zwei Datendarstellungen von Polygonen entsprechen den in 2 beschriebenen.) Das Softwareprogramm 200 liefert als Ausgabe eine Datendarstellung eines jeden Polygons, das eine Polygonschnittfläche der beiden Datendarstellungen repräsentiert, die als Eingabe geliefert wurden.
  • Das Softwareprogramm 200 kann auf einem Navigationssystem 210 installiert werden, das eine geographische Datenbank benutzt, um navigationsbezogene Dienste an einen Autofahrer zu übermitteln. Ebenso kann das Softwareprogramm 200 auf einem Server installiert werden, der eine geographische Datenbank benutzt, um navigationsbezogene Dienste an verschiedene Anwendergruppen zu übermitteln, wie u. a. an Autofahrer, Nicht-Autofahrer, Anwender von Taschencomputern (PDA's), Mobiltelephonbenutzern und dergleichen. Der Server, der die geographische Datenbank nutzt, kann an das Internet oder an ein anderes Kommunikationsnetzwerk angeschlossen sein. Das Softwareprogramm 200 kann ebenso zur Zusammenstellung einer geographischen Datenbank verwendet werden, d. h. zur Erzeugung eines von einer Quelldatenbank abgeleiteten Datenbankprodukts. Ferner kann das Softwareprogramm 200 auf einem eigenständigen Computer verwendet werden, der eine geographische Datenbank benutzt, um Daten aus navigationsbezogenen, kartenbezogenen oder anderweitigen Merkmalen zu übermitteln.
  • Bei all diesen unterschiedlichen Systemen kann das Softwareprogramm 200 auf einem computerlesbaren Medium gespeichert, vom Datenträger in den Systemspeicher geladen und nach Bedarf aufgerufen werden.
  • Die Bestimmung der polygonalen Schnittmenge zweier Polygone wird mit Bezug auf 4-10 beschrieben. 4 zeigt zwei Polygone, bezeichnet mit P(A) und P(B). Bei der Verwendung der offenbarten Vorgehensweise wird die Schnittfläche P(I) der Polygone P(A) und P(B) bestimmt.
  • Die 5A-5C zeigen Schritte in einem Prozess 220, durchgeführt vom Softwareprogramm 200, um die Schnittflächen der Polygone P(A) und P(B) zu bestimmen. Der Prozess 220 beginnt mit einem Schritt, in dem die Datendarstellungen der beiden Polygone empfangen werden (Schritt 224). Der Prozess 220 beinhaltet einen Schritt, der minimale Hüllrechtecke für die zwei Polygone P(A) und P(B) bildet (Schritt 228). 6 beschreibt die Bildung dieser minimalen Hüllrechtecke für P(A) und P(B), die mit MBR(A) bzw. MBR(B) bezeichnet sind. Zur Bestimmung der Schnittflächen werden die minimalen Hüllrechtecke MBR(A) und MBR(B) miteinander verglichen (Schritt 232). Wenn sich die minimalen Hüllrechtecke von P(A) und P(B) nicht schneiden, dann schneiden sich die Polygone P(A) und P(B) nicht und es erfolgt eine negative Rückmeldung (Schritt 236). Wenn sich die minimalen Hüllrechtecke von MBR(A) und MBR(B) schneiden, schneiden sich möglicherweise die Polygone P(A) und P(B) und der Prozess 220 wird fortgesetzt.
  • Der Prozess setzt sich mit der Bildung einer Knotenpunkt-Verbindungs-Karte fort. Die Knotenpunkt-Verbindungs-Karte wird erstellt aus der Polygonschnittfläche MBR(A_B) der minimalen Hüllrechtecke MBR(A) und MBR(B) der Polygone P(A) und P(B). Diese Polygonschnittfläche P(A_B) wird bestimmt, wie in 6 gezeigt ist. Zur Bildung der Knotenpunkt-Verbindungs-Karte wird jede Verbindung des Polygons, sowohl von P(A) als auch P(B), die sich vollständig innerhalb der Polygonschnittfläche P(A_B) der minimalen Hüllrechtecke MBR(A) und MBR(B) der Polygone P(A) und P(B) befindet, identifiziert (Schritt 244). (Eine Verbindung befindet sich vollständig innerhalb der Schnittfläche MBR(A_B) der minimalen Hüllrechtecke MBR(A) und MBR(B), wenn beide Enden der Verbindung sich innerhalb der Schnittfläche MBR(A_B) der minimalen Hüllrechtecke MBR(A) und MBR(B) befinden.) Dann ist jeder Knotenpunkt dieser erkannten Verbindungen identifiziert. (Formpunkte können in diesem Schritt ignoriert werden.) Jeder dieser erkannten Knotenpunkte wird dann als Eintrag zur Knotenpunkt-Verbindungs-Karte hinzugefügt (Schritt 248). Zu jedem als Eintrag der Knotenpunkt-Verbindungs-Karte hinzugefügten Knotenpunkt werden alle an den Knotenpunkt anschließenden Verbindungen identifiziert und in der Karte dem Knotenpunkt zugeordnet.
  • Die Knotenpunkt-Verbindungs-Karte dient der Identifizierung eines Knoten punktes (hier als "N(START)" bezeichnet), der sich am Polygon P(I) befindet, das die Schnittfläche der Polygone P(A) und P(B) bildet. Beim Gebrauch der Knotenpunkt-Verbindungs-Karte, wird ein Knotenpunkt erkannt, der über drei (oder mehr) mit sich verknüpften Verbindungen verfügt (Schritt 252). Ein Knotenpunkt der Knotenpunkt-Verbindungs-Karte mit drei (oder mehr) mit ihm verknüpften Verbindungen befindet sich auf dem Polygon (P(I), das die Schnittfläche der zwei Polygone P(A) und P(B) bildet. Da dieser Knotenpunkt auf dem Polygon P(I) angeordnet ist, das die Schnittfläche der beiden Polygone P(A) und P(B) bildet, sind zwei (und nur zwei) der drei (oder mehr) Verbindungen, die an den Knotenpunkt N(START) anschließen, Verbindungen des Schnittflächenpolygons P(I). Der nächste Schritt besteht darin, zu erkennen, welche der beiden von den drei oder mehr Verbindungen Teil des Schnittflächenpolygons P(I) sind.
  • Um zu erkennen, welche der zu N(START) führenden Verbindungen Teil des Schnittflächenpolygons P(I) sind, läuft ein Prozess ab, der eine Verbindung eines der Ursprungspolygone P(A) oder P(B) erkennt, die innerhalb des anderen Ursprungspolygons P(A) oder P(B) liegt (Schritt 254). Eine Verbindung eines Ursprungspolygons innerhalb des anderen Ursprungspolygons ist Teil des Schnittflächenpolygons P(I). Diese Verbindung wird auch als "VERBINDUNG(START)" bezeichnet. Details des Prozesses 400 zum Erkennen dieser Verbindung sind in den 7A, 7B und 8 dargestellt.
  • Wie in den 7A und 7B gezeigt ist, sind in P(A) und P(B) alle Kanten im Uhrzeigersinn angeordnet. Der Knotenpunkt N ist der Startknotenpunkt, da vier Kanten an ihn anschließen, d. h. ae1 und ae2 von P(A) und be1 und be2 von P(B). Wenn sich ae2 auf der rechten Seite von be1 und be2 befindet, dann liegt ae2 innerhalb von P(B) und kann als Startkante der Polygonschnittfläche (wie in 7A gezeigt) ausgewählt werden. Befindet sich ae1 auf der rechten Seite von be1 und be2, dann liegt ae1 innerhalb von P(B) und kann als Startkante der Polygonschnittfläche ausgewählt werden. Befinden sich weder ae2 und ae1 auf der rechten Seite von be1 und be2, liegt keine Schnittfläche bei N vor (wie in 7B gezeigt ist). Um zu bestimmen, ob ae2 auf der rechten Seite von be1 und be2 liegt, kann der in 8 gezeigte Prozess 500 verwendet werden. Bei Anwendung des Prozesses 500 in 8, werden der Formpunkt bp1 von be1, der Formpunkt bp2 von be2 und der Formpunkt ap2 von ae2 gewählt. Diese Formpunkte werden gewählt, weil sie auf ihrer jeweiligen Kante die dem Knotenpunkt N(Punkt p) nächstgelegenen Formpunkte sind, auch wenn ebenso andere Formpunkte auf diesen Kanten gewählt werden können. Der Prozess 500 in 8 wird verwendet, um zu überprüfen, ob sich ap2 auf der rechten Seite des Liniensegments bp1_p und p_bp2 befindet. Wenn ja, befindet sich ae2 auf der rechten Seite von be1 und be2 (siehe 7A). Wenn nicht, befindet sich ae2 nicht auf der rechten Seite von be1 und be2 (siehe 7B).
  • Nachdem Verbindung(START) identifiziert ist, wird die nächste Verbindung identifiziert, die das Schnittflächenpolygon P(I) bildet. Diese nächste Verbindung wird identifiziert, indem sämtliche Verbindungen untersucht werden, die an das im Uhrzeigersinn liegende Ende von Verbindung(START) anschließenden. Wie in 5B gezeigt ist, wird das im Uhrzeigersinn liegende Ende von VERBINDUNG(START) bestimmt anhand der im Uhrzeigersinn angeordneten Verbindungen des Ursprungspolygons (P(A) oder P(B)), von denen VERBINDUNG(START) genommen wurde (Schritt 264).
  • Wenn es nur eine weitere Verbindung gibt, die an das im Uhrzeigersinn liegende Ende der Verbindung VERBINDUNG(START) anknüpft, dann ist diese Verbindung die nächste Verbindung des Schnittflächenpolygons P(I). Die diese nächste Verbindung markierenden Daten werden in die zur Darstellung des Schnittflächenpolygons P(I) erstellte Liste aufgenommen (Schritte 272 und 276).
  • Wenn es zwei oder mehr weitere Verbindungen gibt, die an das im Uhrzeigersinn liegende Ende von VERBINDUNG (START) anschließen, dann ist die Verbindung, die im Gegenuhrzeigersinn den kleinsten Winkel bildet, die nächste Verbindung des Schnittflächenpolygons P(I). Die Daten, die diese nächste Verbindung markieren, werden in die zur Darstellung des Schnittflächenpolygons P(I) erstellte Liste aufgenommen (Schritte 272, 278 und 276).
  • Nachdem diese Verbindung (d. h. die Verbindung nach VERBINDUNG(START)) in die zur Darstellung des Schnittflächenpolygons P(I) erstellte Liste aufgenommen wurde, setzt der Prozess mit der Bestimmung der nächsten das Schnittflächenpolygon P(I) bildenden Verbindung fort. Diese nächste Verbindung wird in ähnlicher Weise wie soeben beschrieben bestimmt. Das bedeutet, alle Verbindungen, die an das im Uhrzeigersinn liegende Ende der Verbindung anschließen, werden identifiziert (nochmals Schritte 264 und 272). Wenn es nur eine einzige weitere Verbindung gibt, wird diese Verbindung zu der Liste der Verbindungen, die das Schnitiflächenpolygon P(I) bilden, hinzugefügt. Wenn es zwei oder mehr weitere Verbindungen gibt, ist die nächste Verbindung diejenige, die im Gegenuhrzeigersinn den kleinsten Winkel mit der Verbindung bildet, die zuletzt als Teil des Schnittflächenpolygons P(I) identifiziert wurde (erneut Schritt 278).
  • Dieser Prozess wird solange fortgesetzt, bis N(START) erreicht wird (Schritt 280). Wenn N(START) erreicht ist, ist ein einfaches Polygon identifiziert (das einen Teil oder die ganze Polygonschnittfläche P(I) von P(A) und P(B) bildet). Die Daten, die dieses einfache Polygon beschreiben, sind in der Liste 258 enthalten. Diese Daten werden zu einer Liste von einfachen Polygonen in einer Datendarstellung 318 (in 5C) des gesamten Schnittflächepolygons P(I) von P(A) und P(B) hinzugefügt (Schritt 284).
  • Alle benutzten Verbindungen und Knotenpunkte in der Knotenpunkt-Verbindungs-Karte werden entfernt (Schritt 288). Wenn sich nach der Erkennung einer einfachen Polygonschnittfläche (Schritt 292 in 5B) noch weitere Knotenpunkte mit drei oder mehr Verbindungen in der Knotenpunkt-Verbindungs-Karte befinden, existiert noch mindestens eine weitere unterschiedliche einfache Polygonschnittfläche zwischen dem ersten und dem zweiten Polygon. Der Prozess wird erneut ausgeführt (beginnend bei Schritt 252 in 5A) um jede weitere einfache polygonale Schnittfläche zu erkennen. Der Prozess wird solange wiederholt, bis sich innerhalb der Knotenpunkt-Verbindungs-Karte kein Knotenpunkt mit mehr als drei anschließenden Verbindungen mehr befindet.
  • Der Prozess 220 erkennt Löcher und Inseln in P(A) und P(B). Einige der in der geographischen Datenbank 100 dargestellten zweidimensionalen Merkmale sind vollständig von weiteren dargestellten zweidimensionalen Merkmalen umgeben. So liegt z. B. eine Insel vollständig innerhalb eines Wasserkörpers. In der geographischen Datenbank 100 wird ein zweidimensionales Merkmal, das vollständig von einem anderen zweidimensionalen Merkmal umgeben ist, als Loch innerhalb eines Polygons dargestellt.
  • Die Datendarstellung eines Polygons, das ein Loch enthält, beinhaltet (1) eine Liste von Kanten, die die Grenzen des gesamten Polygons definieren (d. h. ähnlich wie oben gezeigt in 2), und (2) eine Liste von Kanten, die die Grenzen des Loches innerhalb des Polygons definieren. Gemäß der Vorgehensweise in der geographischen Datenbank 100, ist die Liste der Kanten zur Datendarstellung eines Loches innerhalb eines Polygons im Gegenuhrzeigersinn angeordnet. 9 zeigt ein Polygon mit Loch und dessen Datendarstellung.
  • Bei der Bestimmung der Schnittfläche zweier Polygone mit Löchern, ist es möglich, dass sich die Löcher innerhalb der Schnittfläche befinden. 10 zeigt die Schnittfläche zweier Polygone mit Löchern/Inseln innerhalb ihrer Schnittfläche.
  • Wenn der offenbarte Prozess 220 zur Bestimmung der Polygonschnittfläche zweier Polygone benutzt wird, beinhaltet die Datendarstellung der Polygonschnittfläche eine Abbildung eines jeden Loches innerhalb eines der ursprünglichen Polygone, die sich innerhalb der Polygonschnittfläche befinden. Zuerst wird bestimmt, ob sich das minimale Hüllrechteck des Loches innerhalb der Schnittfläche der minimalen Hüllrechtecke der beiden Ursprungspolygone befindet. Wenn sich das minimale Hüllrechteck des Loches nicht vollständig innerhalb der Schnittfläche der minimalen Hüllrechtecke der beiden Ursprungspolygone befindet, dann befindet sich das Loch nicht innerhalb der Polygonschnittfläche. Wenn sich das minimale Hüllrechteck des Loches innerhalb der Schnittfläche der Hüllrechtecke der beiden Ursprungspolygone befindet, dann wird eine Bestimmung vorgenommen, ob sich ein Punkt (z. B. ein Knotenpunkt) des Loches innerhalb des anderen Polygons befindet.
  • 5C zeigt Schritte im Prozess 220 zum Umgang mit Löchern/Inseln im Schnittflächenpolygon P(I). Beginnend mit einer Insel/einem Loch in Polygon A, wird eine Suche durchgeführt um ein unmittelbar verwandtes einfaches Polygon in Polygon B zu finden. Wenn ein einfaches Polygon in B gefunden wird und dieses im Uhrzeigersinn ausgerichtet ist, dann ist die Insel/das Loch in Polygon A ein einfaches Schnittflächenpolygon. Wenn sich in B kein verwandtes Polygon befindet, oder das einfache, verwandte Polygon in B entgegen dem Uhrzeigersinn ausgerichtet ist, dann ist die Insel/das Loch von Polygon A kein einfaches Schnittflächenpolygon (Schritt 302). Diese Schritte werden wiederholt, bis alle Inseln/Löcher in Polygon A herangezogen wurden.
  • Der Prozess fährt fort mit der Betrachtung einer Insel/eines Loches von Polygon B und der Suche nach einem unmittelbar verwandten, einfachen Polygon in Polygon A. Wenn sich ein einfaches Polygon in A befindet und dieses im Uhrzeigersinn ausgerichtet ist, dann ist die Insel/das Loch von Polygon B ein einfaches Schnittflächenpolygon. Wenn sich kein verwandtes Polygon in A befindet oder die Ausrichtung des verwandten, einfachen Polygons in A im Gegenuhrzeigersinn verläuft, dann ist die Insel/das Loch von Polygon B kein einfaches Schnittflächenpolygon (Schritt 306). Dieser Prozess wird solange wiederholt, bis alle Inseln/Löcher von Polygon B abgefragt wurden.
  • Nach Berücksichtigung aller Löcher oder Inseln in der Schnittfläche, wird eine Datendarstellung der gesamten, komplexen Polygonschnittfläche P(I), aus der Liste/den Listen der erfassten einfachen Polygone 318 aufgebaut (Schritt 307). Die Schnittfläche von P(A) und P(B) kann ein oder mehrere Polygone beinhalten, wovon jedes einfach oder komplex sein kann. Die Datendarstellung der Polygonschnittfläche kann dann von anderen Anwendungen des Systems, in dem das Softwareprogramm 200 installiert ist, benutzt werden, die Daten benötigen, welche die Polygonschnittfläche von P(A) und P(B) anzeigen (Schritt 288).
  • III. VERFAHREN ZUR BESTIMMUNG DER VEREINIGUNG VON POLYGONEN
  • Wie oben erwähnt worden ist, besteht bei der Verwendung von geographischen Datenbanken manchmal die Notwendigkeit, die Vereinigung von zwei (oder mehr) zweidimensionalen Merkmalen zu bestimmen. In Fällen, in denen Polygone zur Darstellung dieser zweidimensionalen Merkmale benutzt werden, ist es notwendig, die Polygonvereinigung zu bestimmen.
  • Ein Verfahren zur Bestimmung der Polygonvereinigung wird in Zusammenhang mit 11-17 beschrieben. Bezug nehmend auf 11, ist das Verfahren in einem Softwareprogramm 600 implementiert, das die geographische Datenbank 100 nutzt, die Datendarstellungen von Polygonen enthält, wie in Zusammenhang mit 1 und 2 beschrieben worden ist. Das Softwareprogramm 600 erhält zwei Datendarstellungen von Polygonen als Eingabe. (Die zwei Datendarstellungen von Polygonen entsprechen den in 2 beschriebenen.) Das Softwareprogramm 600 liefert, als Ausgabe, eine Datendarstellung eines Polygons (d. h. die Vereinigung) der beiden Datendarstellungen von Polygonen, die als Eingabe geliefert wurden.
  • Das Softwareprogramm 600 ist auf einem Computersystem 610 installiert. Das Computersystem 610 kann das gleiche Computersystem 210 sein, wie in 3 gezeigt ist, oder kann ein unterschiedliches Computersystem sein. Das Softwareprogramm 600 kann auf einem computerlesbaren Medium gespeichert werden, vom Medium in den Systemspeicher geladen werden und, nach Bedarf, gestartet werden.
  • Die Bestimmung der Polygonvereinigung zweier Polygone wird mit Bezug auf 12-17 beschrieben. 12 zeigt zwei Polygone, die mit P(A) und P(B) bezeichnet sind. Bei Verwendung der vorliegenden Ausführungsform, erfolgt die Bestimmung der Vereinigung P(U) der Polygone P(A) und P(B).
  • 13A-13C zeigen Schritte im Prozess 620, der vom Softwareprogramm 600 durchgeführt wird, um die Vereinigung der Polygone P(A) und P(B) zu bestimmen. Der Prozess 620 beginnt mit einem Schritt, in dem die Datendarstellungen der beiden Polygone empfangen werden (Schritt 624). Der Prozess 620 beinhaltet einen Schritt, der die minimalen Hüllrechtecke für die beiden Polygone P(A) und P(B) bildet (Schritt 628). 14 skizziert die Bildung dieser minimalen Hüllrechtecke für P(A) und P(B), die mit MBR(A) bzw. MBR(B) bezeichnet sind. Die minimalen Hüllrechtecke, MBR(A) und MBR(B), werden verglichen, um festzustellen, ob sie sich schneiden (Schritt 632). Wenn sich die minimalen Hüllrechtecke von P(A) und P(B) nicht schneiden, liegt keine Vereinigung zwischen den Polygonen P(A) und P(B) vor, und es erfolgt eine negative Rückmeldung (Schritt 636). Wenn die minimalen Hüllrechtecke MBR(A) und MBR(B) sich schneiden (oder auch berühren), dann kann eine Vereinigung zwischen den Polygonen P(A) und P(B) vorliegen, und der Prozess 620 wird fortgeführt.
  • Der Prozess fährt fort mit der Erstellung einer Knotenpunkt-Verbindungs-Karte. Die Knotenpunkt-Verbindungs-Karte wird erstellt unter Verwendung der Polygonschnittfläche MBR(A_B) der minimalen Hüllrechtecke MBR(A) und MBR(B) der Polygone P(A) und P(B). Diese Polygonschnittfläche P(A_B) wird bestimmt, wie in 14 gezeigt ist. Zur Erstellung der Knotenpunkt-Verbindungs-Karte, wird jede Verbindung eines jeden Polygons P(A) oder P(B) identifiziert, die sich vollständig innerhalb der Polygonschnittfläche P(A_B) der minimalen Hüllrechtecke MBR(A) und MBR(B) der Polygone P(A) und P(B) befindet (Schritt 644). (Eine Verbindung befindet sich vollständig innerhalb der Schnittfläche MBR(A_B) der minimalen Hüllrechtecke MBR(A) und MBR(B), wenn sich beide Enden der Verbindung innerhalb der Schnittmenge MBR(A_B) der minimalen angrenzenden Rechtecke MBR(A) und MBR(B) befinden.) Dann ist jeder Knotenpunkt dieser identifizierten Verbindungen identifiziert. (Formpunkte können bei diesem Schritt ignoriert werden.) Jeder dieser identifizierten Knotenpunkte wird dann als Eintrag in die Knotenpunkt-Verbindungs-Karte hinzugefügt (Schritt 648). Für jeden Knotenpunkt, der als Eintrag in die Knotenpunkt-Verbindungskarte hinzugefügt wird, werden alle Verbindungen, die an den Knotenpunkt anknüpfen, identifiziert und in der Karte dem Knotenpunkt zugeordnet.
  • Die Knotenpunkt-Verbindungs-Karte wird verwendet, um einen Knotenpunkt (hier "N(START)" genannt) zu identifizieren, der sich auf dem Polygon P(U) befindet, das die Vereinigung der Inputpolygone P(A) und P(B) bildet. Bei Verwendung der Knotenpunkt-Verbindungs-Karte, wird ein Knotenpunkt identifiziert, der drei (oder mehr) mit ihm verknüpfte Verbindungen aufweist (Schritt 652). Ein Knotenpunkt der Knotenpunkt-Verbindungskarte, der drei (oder mehr) mit ihm verknüpfte Verbindungen aufweist, befindet sich auf dem Polygon P(U), das die Vereinigung der beiden Polygone P(A) und P(B) bildet. Weil sich dieser Knotenpunkt auf dem Polygon P(U) befindet, das die Vereinigung der beiden Polygone P(A) und P(B) bildet, sind zwei (und zwar genau zwei) der drei oder mehr Verbindungen, die zum Knotenpunkt N(START) führen, Verbindungen des Vereinigungspolygons P(I). Der nächste Schritt besteht darin, festzustellen, welche zwei der drei oder mehr Verbindungen Teil des Vereinigungspolygons P(U) sind.
  • Um festzustellen, welche der Verbindungen, die an N(START) anknüpfen, Teil des Vereinigungspolygons P(U) sind, wird ein Prozess durchgeführt, der eine Verbindung eines der Ursprungspolygone P(A) oder P(B) identifiziert, die außerhalb des anderen Ursprungspolygons, P(A) oder P(B) liegt (Schritt 654). Eine Verbindung eines der Ursprungspolygone, die außerhalb des anderen Ursprungspolygons liegt, ist Teil des Vereinigungspolygons P(U)(Schritt 660). Diese Verbindung wird als "VERBINDUNG(START)" bezeichnet. Details des Prozesses 697 zum Auffinden dieser Verbindung sind in 15A, 15B und 16 dargestellt.
  • Wie in den 15A und 15B gezeigt ist, sind in P(A) und P(B) alle Kanten im Uhrzeigersinn angeordnet. Der Knotenpunkt N wird als Startknotenpunkt bestimmt, weil vier Kanten mit ihm verbunden sind, nämlich ae1 und ae2 von P(A), be1 und be2 von P(B). Wenn sich ae1 auf der linken Seite von be1 und be2 befindet, dann liegt ae1 außerhalb von P(B) und kann als Startkante der Polygonvereinigung gewählt werden (wie in 15A gezeigt ist). Wenn ae2 und ae1 sich beide auf der linken Seite von be1 und be2 befinden, dann liegen ae1 und ae2 außerhalb von P(B) und können beide als Startkante der Polygonvereinigung gewählt werden (wie in 15b gezeigt). Zur Bestimmung, ob ae1 sich auf der linken Seite von be1 und be2 befindet, kann der in 16 gezeigte Prozess 700 herangezogen werden. Bei Verwendung von Prozess 700 aus 16, wird ein Formpunkt bp1 von be1 gewählt, ein Formpunkt bp2 wird von be2 gewählt und der Formpunkt ap1 wird von ae1 gewählt. Diese Formpunkte werden gewählt, weil sie die auf ihren jeweiligen Kanten die dem Knotenpunkt N(punkt p) nächstgelegen Formpunkte sind, obwohl auch andere Formpunkte auf diesen Kanten ausgewählt werden können. Der Prozess 700 in 16 wird verwendet, um zu überprüfen, ob Punkt ap1 auf der linken Seite des Liniensegments bp1_p und p_bp2 liegt. Wenn dies zutrifft, liegt ae1 links von be1 und be2 (wie in 15A gezeigt ist), und liegt deshalb außerhalb von P(B).
  • Nach der Identifizierung von VERBINDUNG(START), wird die nächste Verbindung, die die Polygonvereinigung P(U) bildet, identifiziert. Diese nächste Verbindung wird identifiziert, indem alle Verbindungen überprüft werden, die an das nicht referenzierte Ende von VERBINDUNG(START) anschließen. Wie in 13B gezeigt ist, erfolgt die Bestimmung des nicht referenzierten Endes von VERBINDUNG(START) durch die Vorgehensweise zum Polygonaufbau (im Uhrzeigersinn für eine Insel, im Gegenuhrzeigersinn für ein Loch, Schritt 664).
  • Wenn nur eine einzige weitere Verbindung vorhanden ist, die an das nicht referenzierte Ende der Verbindung, VERBINDUNG(START) anschließt, ist diese Verbindung die nächste Verbindung der Polygonvereinigung P(U). Daten, die diese nächste Verbindung anzeigen, werden in die Liste aufgenommen, die zur Darstellung des Vereinigungspolygons P(U) erstellt wurde (Schritte 672 und 678).
  • Bei zwei oder mehr Verbindungen, die an das nicht referenzierte Ende von VERBINDUNG(START) anschließen, ist diejenige Verbindung, die im Gegenuhrzeigersinn den größtmöglichen Winkel zu VERBINDUNG(START) bildet, die nächste Verbindung des Vereinigungspolygons P(U). Daten, die diese nächste Verbindung anzeigen, werden in die Liste aufgenommen, die zur Darstellung des Vereinigungspolygons P(U) erstellt wurde (Schritte 672, 678 und 676).
  • Nachdem diese Verbindung (d. h. die Verbindung nach VERBINDUNG(START)) in die Liste, die zur Darstellung des Vereinigungspolygons P(U) erstellt wurde, aufgenommen worden ist, fährt der Prozess mit der Bestimmung der nächsten Verbindung fort, die das Vereinigungspolygon P(U) bildet. Diese nächste Verbindung wird auf ähnliche Weise wie oben beschrieben bestimmt. Damit sind alle Verbindungen, die an das nichtreferenzierte Ende der Verbindung anschließen, identifiziert (erneut Schritte 664 und 672). Wenn es nur eine einzige weitere Verbindung gibt, dann wird diese Verbindung der Liste der Verbindungen, die das Vereinigungspolygon P(U) bilden, hinzugefügt. Gibt es zwei oder mehr weitere Verbindungen, dann ist die nächste Verbindung diejenige, die im Gegenuhrzeigersinn den größten Winkel zu der Verbindung bildet, die als letzte als Teil des Vereinigungspolygons P(U) identifiziert wurde (erneut Schritt 678).
  • Der Prozess wird solange fortgesetzt, bis N(START) erreicht wird (Schritt 680). Wenn N(START) erreicht wird, dann ist ein einfaches Polygon (das einen Teil oder die Gesamtheit der Polygonvereinigung P(U)von P(A) und P(B) bildet) identifiziert. Die Datenbebeschreibung dieses einfachen Polygons ist in der Liste 658 enthalten. Diese Daten werden einer Liste einfacher Polygone hinzugefügt, innerhalb einer Datendarstellung 718 (in 13C) des gesamten Vereinigungspolygons P(U) von P(A) und P(B) (Schritt 684).
  • Alle verwendeten Verbindungen und Knotenpunkte in der Knotenpunkt-Verbindungskarte werden entfernt (Schritt 688). Wenn sich nach der Erkennung einer einfachen Polygonvereinigung noch weitere Knotenpunkte mit drei oder mehr angeschlossenen Verbindungen in der Knotenpunkt-Verbindungskarte befinden (Schritt 692 in 13B), dann gibt es mindestens eine weitere, unterschiedliche einfache Polygonvereinigung zwischen dem ersten und dem zweiten Polygon. Der Prozess wird wiederholt (beginnend mit Schritt 652 in 13A), um jede zusätzliche einfache Polygonvereinigung zu bestimmen. Der Prozess wird solange wiederholt, bis sich kein Knotenpunkt mehr in der Knotenpunkt-Verbindungskarte befindet, der mehr als drei mit ihm verknüpfte Verbindungen aufweist.
  • Der Prozess 620 findet vereinigte Löcher und Inseln in P(A) und P(B). Löcher und Inseln in Polygonen wurden oben in Zusammenhang mit 9 beschrieben.
  • Bei der Bestimmung der Vereinigung zweier Polygone mit Löchern, ist es möglich, dass einige der Löcher sich innerhalb der Vereinigung befinden. 17 zeigt die Vereinigung von zwei Polygonen, die Löcher/Inseln in ihrer Vereinigung haben.
  • Wenn der aufgeführte Prozess 620 bei der Bestimmung der Polygonvereinigung von zwei Polygonen Anwendung findet, enthält die Datendarstellung der Polygonvereinigung eine Darstellung eines jeden Loches in jedem der Ursprungspolygone, das sich innerhalb der Polygonvereinigung befindet. Zuerst findet eine Bestimmung statt, ob das minimale Hüllrechteck des Loches außerhalb der Schnittfläche der minimalen Hüllrechtecke der beiden Ursprungspolygone liegt. Wenn das minimale Hüllrechteck nicht vollständig innerhalb der Vereinigung der minimalen Hüllrechtecke der beiden Ursprungspolygone liegt, dann befindet sich das Loch innerhalb der Polygonvereinigung. Wenn das minimale Hüllrechteck des Loches innerhalb der Schnittfläche der minimalen Hüllrechtecke der beiden Ursprungspolygone liegt, dann findet eine Bestimmung statt, ob irgendein Punkt (d. h. ein Knotenpunkt) des Loches innerhalb des anderen Polygons liegt.
  • 13C zeigt Schritte im Prozess 620 zum Umgang mit Löchern/Inseln in der Polygonvereinigung P(U). Beginnend mit einer Insel/einem Loch aus Polygon A, wird eine Suche zum Auffinden eines unmittelbar verwandten einfachen Polygons in Polygon B ausgeführt. Wenn in B kein verwandtes Polygon liegt, oder wenn es ein unmittelbar verwandtes einfaches Polygon in B gibt und dieses im Gegenuhrzeigersinn ausgerichtet ist, dann ist die Insel/das Loch von Polygon A ein einfaches Vereinigungspolygon. Wenn das verwandte einfache Polygon in B im Uhrzeigersinn ausgerichtet ist, dann ist die Insel/das Loch aus Polygon A kein einfaches Vereinigungspolygon (Schritt 702). Diese Schritte werden solange wiederholt, bis alle Inseln/Löcher aus Polygon A berücksichtigt worden sind.
  • Der Prozess fährt fort mit der Berücksichtigung einer Insel/eines Loches von Polygon B und der Suche nach einem unmittelbar verwandten einfachen Polygon in Polygon A. Wenn es kein verwandtes Polygon in Polygon A gibt, oder wenn es ein einfaches Polygon in A gibt und es im Gegenuhrzeigersinn ausgerichtet ist, dann ist die Insel/das Loch von Polygon B ein einfaches Vereinigungspolygon. Wenn das Polygon mit unmittelbarem Ursprung in A im Uhrzeigersinn ausgerichtet ist, dann ist die Insel/das Loch aus Polygon B kein einfaches Vereinigungspolygon (Schritt 706). Diese Schritte werden solange wiederholt, bis alle Inseln/Löcher aus Polygon B berücksichtigt worden sind.
  • Dieser Prozess ist in 17 dargestellt. In 17, hat P(A) vier Löcher, a2, a3, a4, a6 und eine Insel a5, die sich innerhalb von a4 befindet. P(B) hat drei Löcher, b2, b3, b4. Aus P(A) befinden sich a3 und a4 nicht in P(B) und werden deshalb als vereinigte Löcher betrachtet. a4, a6 und a5 befinden sich in P(B) und werden deshalb nicht als vereinigte Löcher betrachtet. Aus P(B) befinden sich b3 und b4 nicht in P(A) und werden deshalb als vereinigte Löcher betrachtet. b3 befindet sich in P(A) und wird deshalb nicht als vereinigtes Loch betrachtet.
  • Nach dem Aufzählen eines jeden Loches 1 einer jeden Insel in der Vereinigung, wird eine Datendarstellung der gesamten komplexen Polygonvereinigung P(U) mit Hilfe der Liste(n) von einfachen Polygonen 718 erstellt (Schritt 707). Die Vereinigung von P(A) und P(B) kann entweder einfach oder komplex sein. Die Datendarstellung P(U) kann von anderen Anwendungen benutzt werden, die Informationen über die Vereinigung von P(A) und P(B) benötigen.
  • IV. VORTEILE
  • Das vorliegende Verfahren zur Bestimmung von Schnittfläche und Vereinigung von Polygonen und zum Aufbau von Polygonen ist mit weniger Rechenaufwand verbunden als vorherige Verfahren. Die vorliegende Methode erreicht diesen Nutzen teilweise dadurch, dass nur die Kanten der Polygone herangezogen werden, anstelle ganzer Liniensegmente, und hierdurch der rechnerische Aufwand in großem Maße verringert wird.
  • V. WEITERE BETRACHTUNGEN
  • Einheitliche Reihenfolge – im Uhrzeigersinn oder im Gegenuhrzeigersinn
  • In den obenbeschriebenen Ausführungsformen wurde erläutert, dass die Datendarstellungen von Polygonen Listen von Verbindungen beinhalten, die dazu genutzt werden, die Grenzen von Polygonen darzustellen, und dass in einer Liste enthaltene Verbindungen entsprechend einem im Uhrzeigersinn gerichteten Durchlauf der dargestellten Polygongrenze durch die Verbindungen angeordnet waren. Es ist nicht erforderlich, dass die zur Darstellung von Polygonen genutzte Liste von Verbindungen die Verbindungen im Uhrzeigersinn identifiziert, solange die Reihenfolge, in der die Verbindungen aufgelistet sind, in der gesamten geographischen Datenbank beibehalten wird. So können zum Beispiel, entsprechend einer alternativen Vorgehensweise, Verbindungen, die Polygongrenzen bilden, anstelle der Auflistung im Uhrzeigersinn, von Datendarstellungen von Polygonen auch im Gegenuhrzeiger sinn aufgelistet werden.
  • Wenn eine Reihenfolge im Gegenuhrzeigersinn für Polygongrenzen benutzt wird, kann es vorteilhaft sein, eine Reihenfolge im Uhrzeigersinn zur Darstellung von Löchern in Polygonen zu verwenden.
  • Es ist beabsichtigt, dass die vorhergegangene ausführliche Beschreibung als veranschaulichend und nicht als einschränkend betrachtet wird, und dass verstanden wird, dass die nachfolgenden Ansprüche den Umfang der Erfindung definieren.

Claims (18)

  1. Verfahren zur Bestimmung einer Polygonschnittfläche (P(I)) eines ersten Polygons (P(A)) und eines zweiten Polygons (P(B)), umfassend: an einem Schnittpunkt einer Grenze des ersten Polygons mit einer Grenze des zweiten Polygons das Bestimmen eines ersten bekannten Abschnitts einer Grenze der Polygonschnittfläche als einen Abschnitt der Grenze des ersten Polygons umfassend, der innerhalb des zweiten Polygons angeordnet ist; und Bestimmen jedes nachfolgenden Abschnitts der Grenze der Polygonschnittfläche, der zu einem derzeit bekannten Abschnitt der Grenze der Polygonschnittfläche verbindet, durch Auswählen desjenigen Abschnitts der Grenze entweder des ersten Polygons oder des zweiten Polygons, der mit einem führenden Ende des derzeit bekannten Abschnitts der Grenze der Polygonschnittfläche verbindet und einen minimalen Rotationswinkel mit diesem bildet.
  2. Verfahren nach Anspruch 1, wobei das erste Polygon, das zweite Polygon und die Polygonschnittfläche durch Daten repräsentiert werden, die eine Liste von Kanten angeben.
  3. Verfahren nach Anspruch 1, wobei der Abschnitt der Grenze des ersten Polygons, der sich innerhalb des zweiten Polygons befindet, ermittelt wird durch Vergleichen der Winkel, die gebildet werden von dem Abschnitt der Grenze des ersten Polygons mit Abschnitten der Grenze des zweiten Polygons, die von der Schnittfläche gebildet werden.
  4. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen einer zusätzlichen Polygonschnittfläche des ersten Polygons und des zweiten Polygons durch Ausführen der Bestimmungsschritte für irgendeine zusätzliche Schnittfläche der Grenze des ersten Polygons mit der Grenze des zweiten Polygons, die nicht bereits Teil der bereits bestimmten Polygonschnittfläche des ersten Polygons und eines zweiten Polygons ist.
  5. Verfahren zur Bestimmung einer Polygonvereinigung (P(U)) eines ersten Polygons (P(A)) und eines zweiten Polygons (P(B)), umfassend: an einem Schnittpunkt einer Grenze des ersten Polygons mit einer Grenze des zweiten Polygons, Bestimmen eines ersten bekannten Abschnitts einer Grenze der Polygonvereinigung als einen Abschnitt der Grenze des ersten Polygons, der sich außerhalb des zweiten Polygons befindet, umfassend; und Bestimmen jedes nachfolgenden Abschnitts der Grenze der Polygonvereinigung, die mit einem derzeit bekannten Abschnitt der Grenze der Polygonvereinigung verbindet, durch Auswählen desjenigen Abschnitts der Grenze entweder des ersten Polygons oder des zweiten Polygons, der mit einem führenden Ende des derzeit bekannten Abschnitts der Grenze der Polygonvereinigung verbindet und einen maximalen Rotationswinkel mit diesem bildet.
  6. Verfahren nach Anspruch 5, wobei das erste Polygon, das zweite Polygon und die Polygonvereinigung durch Daten repräsentiert werden, die eine Liste von Kanten angeben.
  7. Verfahren nach Anspruch 2 oder Anspruch 6, wobei die Kanten die Grenzen der Polygone repräsentieren.
  8. Verfahren nach Anspruch 2 oder Anspruch 6, wobei die Kanten in der Liste der Kanten entweder im Uhrzeigersinn oder im Gegenuhrzeigersinn durchgehend geordnet sind.
  9. Verfahren nach Anspruch 2 oder Anspruch 6, wobei ein im ersten Polygon angeordnetes Loch durch Daten repräsentiert wird, die eine Liste von Kanten angeben.
  10. Verfahren nach Anspruch 9, wobei die Kanten in der Liste der Kanten, die ein Loch repräsentieren, in einer entgegengesetzten Richtung zu der Richtung geordnet sind, die zum Ordnen der Kanten in der Liste der Kanten verwendet wird, die zum Repräsentieren des ersten Polygons verwendet werden.
  11. Verfahren nach Anspruch 2 oder Anspruch 6, wobei die Kanten in der Liste der Kanten durchgehend im Uhrzeigersinn geordnet sind.
  12. Verfahren nach Anspruch 1 oder Anspruch 5, wobei das erste Polygon und das zweite Polygon zweidimensionale geographische Merkmale repräsentieren.
  13. Verfahren nach Anspruch 5, wobei der Abschnitt der Grenze des ersten Polygons, der außerhalb des zweiten Polygons angeordnet ist, bestimmt wird durch Vergleichen der Winkel, die vom ersten Abschnitt der Grenze des ersten Polygons mit durch die Schnittfläche gebildeten Abschnitten der Grenze des zweiten Polygons gebildet werden.
  14. Verfahren nach Anspruch 1 oder Anspruch 5, wobei die Schnittfläche der Grenze des ersten Polygons mit der Grenze des zweiten Polygons gefunden wird durch Suchen einer rechtwinkligen Fläche, die gebildet wird von einer Schnittfläche eines ersten Minimal-Hüllrechtecks, das das erste Polygon umspannt, und eines zweiten Minimal-Hüllrechtecks, das das zweite Polygon umspannt.
  15. Verfahren nach Anspruch 1 oder Anspruch 5, wobei die Schritte der Bestimmung auf einem mit dem Internet verbundenen Server ausgeführt werden, wobei das Verfahren den Schritt des Bereitstellens navigationsbezogener Dienste für Benutzer umfasst.
  16. Programm, das dann, wenn es von einem Computer ausgeführt wird, ein Verfahren nach irgendeinem der Ansprüche 1 bis 15 ausführt.
  17. Programm nach Anspruch 16, wobei das Programm eine geographische Datenbank verwendet, die Datenrepräsentationen des ersten Polygons und des zweiten Polygons enthält.
  18. Vorrichtung, die für die Ausführung eines Verfahrens nach irgendeinem der Ansprüche 1 bis 15 ausgelegt ist.
DE60211086T 2001-08-14 2002-08-13 Verfahren zur Bestimmung von Überschneidungen Expired - Lifetime DE60211086T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US929397 2001-08-14
US09/929,397 US6917877B2 (en) 2001-08-14 2001-08-14 Method for determining the intersection of polygons used to represent geographic features
US94550401A 2001-08-30 2001-08-30
US945504 2001-08-30

Publications (2)

Publication Number Publication Date
DE60211086D1 DE60211086D1 (de) 2006-06-08
DE60211086T2 true DE60211086T2 (de) 2006-10-12

Family

ID=27129975

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60211086T Expired - Lifetime DE60211086T2 (de) 2001-08-14 2002-08-13 Verfahren zur Bestimmung von Überschneidungen

Country Status (5)

Country Link
US (1) US6917877B2 (de)
EP (1) EP1291823B1 (de)
JP (1) JP4477818B2 (de)
AT (1) ATE325401T1 (de)
DE (1) DE60211086T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801850B1 (en) * 2000-10-30 2004-10-05 University Of Illionis - Chicago Method and system for tracking moving objects
JP4580209B2 (ja) * 2004-10-18 2010-11-10 クラリオン株式会社 要約地図作成装置
KR100657937B1 (ko) * 2004-12-14 2006-12-14 삼성전자주식회사 2차원 선형 데이터의 실시간 3차원 변환 방법 및 장치,그리고 이를 이용한 2차원 선형 데이터의 실시간 3차원시각화 방법 및 장치
KR100634536B1 (ko) * 2005-01-25 2006-10-13 삼성전자주식회사 3차원 그래픽스 환경에서의 2차원 고가도로 데이터의 3차원 변환 방법 및 장치, 그리고 이를 이용한 3차원 그래픽스 환경에서의 2차원 고가도로 데이터의 3차원 시각화 방법 및 장치
US7856366B2 (en) * 2005-09-30 2010-12-21 International Business Machines Corporation Multiple accounts for health record bank
US20070078687A1 (en) * 2005-09-30 2007-04-05 International Business Machines Corporation Managing electronic health records within a wide area care provider domain
US8423382B2 (en) * 2005-09-30 2013-04-16 International Business Machines Corporation Electronic health record transaction monitoring
US8620688B2 (en) * 2005-09-30 2013-12-31 International Business Machines Corporation Checkbook to control access to health record bank account
JP4311391B2 (ja) 2005-10-03 2009-08-12 ソニー株式会社 接触形状算出装置及び接触形状算出方法、並びにコンピュータ・プログラム
US20070150315A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Policy driven access to electronic healthcare records
US20080051989A1 (en) * 2006-08-25 2008-02-28 Microsoft Corporation Filtering of data layered on mapping applications
US8228326B2 (en) * 2007-10-03 2012-07-24 Oracle International Corporation Three dimensional surface and solid query processing
JP4739309B2 (ja) * 2007-11-09 2011-08-03 株式会社リコー 情報処理装置、及び情報処理方法
US20090254841A1 (en) * 2007-11-12 2009-10-08 Move Sales, Inc. Apparatus, method, and computer program product for characterizing user-defined areas
US20090132469A1 (en) * 2007-11-16 2009-05-21 Urban Mapping, Inc. Geocoding based on neighborhoods and other uniquely defined informal spaces or geographical regions
US8115320B2 (en) * 2008-05-29 2012-02-14 United Microelectronics Corp. Bond pad structure located over active circuit structure
US8275800B1 (en) * 2010-08-05 2012-09-25 Teradata Us, Inc. Splitting polygons with interior rings
US20140067483A1 (en) * 2012-08-30 2014-03-06 Electronics And Telecommunications Research Institute Apparatus and method for constructing radar chart
CN103473984B (zh) * 2013-08-14 2015-05-27 中国地质大学(武汉) 网络环境下基于模板的动态地图获取方法
US10248731B1 (en) * 2014-05-16 2019-04-02 Corelogic Solutions, Llc System and method for linking data records for parcels
US9740719B2 (en) * 2014-07-07 2017-08-22 Sap Se Column store optimization using telescope columns
US10593074B1 (en) * 2016-03-16 2020-03-17 Liberty Mutual Insurance Company Interactive user interface for displaying geographic boundaries
EP3438965A1 (de) 2017-08-04 2019-02-06 NXP USA, Inc. Verfahren und vorrichtung zur vermischung von schichten innerhalb einer grafikanzeigekomponente
EP3438936B1 (de) 2017-08-04 2022-03-30 NXP USA, Inc. Verfahren und vorrichtung zur verwaltung von grafikschichten innerhalb eines datenverarbeitungssystems
WO2020174649A1 (ja) * 2019-02-28 2020-09-03 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
CN113706604B (zh) * 2021-08-20 2024-02-09 园测信息科技股份有限公司 一种基于两个凸多边形交集求解算法的地类图斑分析方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
CA1277043C (en) 1985-07-25 1990-11-27 Marvin S. White, Jr. Apparatus storing a representation of topological structures and methods of building and searching the representation
JPH077456B2 (ja) * 1988-11-11 1995-01-30 大日本スクリーン製造株式会社 重合度による図形の認識装置
US5347619A (en) 1991-04-30 1994-09-13 International Business Machines Corporation Nonconvex polygon identifier
JP3332165B2 (ja) 1992-08-08 2002-10-07 株式会社リコー 画像処理装置
JPH06223201A (ja) 1993-01-22 1994-08-12 Matsushita Electric Ind Co Ltd 並列画像生成装置
JP2710202B2 (ja) 1993-03-24 1998-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 閉じた輪郭イメージを凸多角形で境界づける方法及びデータ処理装置
US5613052A (en) 1993-09-02 1997-03-18 International Business Machines Corporation Method and apparatus for clipping and determining color factors for polygons
SG75807A1 (en) 1996-01-11 2000-10-24 Sony Corp Signal transmitting method and apparatus
US5990896A (en) 1996-09-30 1999-11-23 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Rapid and efficient terrain surface finding system
US5961572A (en) * 1997-04-01 1999-10-05 Bellsouth Intellectual Property Corporation System and method for identifying the geographic region of a geographic area which contains a geographic point associated with a location
US5818460A (en) 1997-05-08 1998-10-06 Autodesk, Inc. Method for performing polygon set operations on polygonal regions
US6215503B1 (en) 1998-05-29 2001-04-10 Microsoft Corporation Image generator and method for resolving non-binary cyclic occlusions with image compositing operations
US6163749A (en) 1998-06-05 2000-12-19 Navigation Technologies Corp. Method and system for scrolling a map display in a navigation application
EP1182611A4 (de) * 1999-01-25 2003-04-02 Kabushiki Kaisya Zenrin Verfahren und vorrichtung zur erzeugung und verwendung von polygondaten innerhalb einer strassenkarte
US6208352B1 (en) 1999-08-30 2001-03-27 General Dynamics Government Systems Corp. Method for the computerized solution of the intersection of polygons
JP3471003B2 (ja) * 2000-02-02 2003-11-25 松下電器産業株式会社 交差点表示方法およびその地図表示装置並びに記録媒体

Also Published As

Publication number Publication date
ATE325401T1 (de) 2006-06-15
DE60211086D1 (de) 2006-06-08
EP1291823A3 (de) 2004-12-15
EP1291823B1 (de) 2006-05-03
JP2003186390A (ja) 2003-07-04
EP1291823A2 (de) 2003-03-12
JP4477818B2 (ja) 2010-06-09
US6917877B2 (en) 2005-07-12
US20030037059A1 (en) 2003-02-20

Similar Documents

Publication Publication Date Title
DE60211086T2 (de) Verfahren zur Bestimmung von Überschneidungen
DE69724675T2 (de) Datenausgabestruktur, -methode und -endgerät
DE69535098T2 (de) Verfahren und -vorrichtung zur Suche von Bildern in einer Datenbank
DE19960043B4 (de) Verfahren zum Navigieren in einer Baumstruktur
EP1092127B1 (de) Verfahren zur beeinflussung von quelldaten zur bestimmung einer route bei einem navigationssystem
DE102008061981B4 (de) Navigationsgerät
DE10043460C2 (de) Auffinden von Körperpartien durch Auswerten von Kantenrichtungsinformation
DE102007036627A1 (de) Verfahren zum Betrieb eines Navigationssystems
DE102004041934A1 (de) Iterative logische Erneuerung von navigierbaren Kartendatenbanken
DE102020202160A1 (de) Verfahren zum Bestimmen einer Symmetrieeigenschaft in Bilddaten, Verfahren zum Steuern einer Funktion und Vorrichtung
DE19531392C1 (de) Verfahren zur Erzeugung einer Graphrepräsentation von Bildvorlagen
DE10034694B4 (de) Verfahren zum Vergleichen von Suchprofilen sowie dessen Verwendung
DE102009019498A1 (de) Verfahren zur Erzeugung einer digitalen Straßenkarte, Navigationssystem und Verfahren zum Betrieb eines Navigationssystems
WO2003016823A1 (de) Verfahren zum ermitteln von routen und darauf bezogenes navigationssystem
DE102012025349B4 (de) Bestimmung eines Ähnlichkeitsmaßes und Verarbeitung von Dokumenten
EP3123367A1 (de) Verfahren zur automatisierten erstellung eines zwei technische zeichnungen charakterisierenden datensatzes
EP2602591A1 (de) Verfahren zur vereinfachten Speicherung von Daten repräsentierend Formen
DE102004022395A1 (de) Rechnerunterstützte Modellierung
EP1526358A1 (de) Verfahren zur Zerlegung eines Strassennetzes aus Kanten und Knoten
DE10393430T5 (de) Verfahren zur Korrektur eines Maskenmusters
DE102019217952A1 (de) Verfahren und Vorrichtung zum Bereitstellen eines Trainingsdatensatzes zum Trainieren einer KI-Funktion auf eine unbekannte Datendomäne
DE102018210677A1 (de) Verfahren zur Fusion von Kartendatensätzen
DE202016007880U1 (de) Identifizieren, Verarbeiten und Anzeigen von Datenpunktclustern
WO2007082632A1 (de) Verfahren zur ausgabe von datensätzen und vorrichtung hierfür
DE10160295B4 (de) Verfahren und Vorrichtung zum Ermitteln von Kartendaten für eine Anzeige eines Fahrerinformationssystems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition