Vinden van correspondenties In deze paragraaf wordt een overzicht gegeven van de methoden en „gereedschappen" die gebruikt worden om correspondenties te traceren tussen de GBKN- en TOPlOvector-gebouwrepresentaties. Eerst wordt de imple mentatie van een kaartversnijdingsprogramma (MAP- OVER) beschreven en een programma voor de reconstruc tie van de topologie (TOPOL). Deze programma's zijn het basisgereedschap voor het vinden van correspondenties. De oorspronkelijke gegevens, alsmede de resultaten van MAPOVER en TOPOL, worden gevisualiseerd met de GEO++-browser [9]. Hoe de (1-op-l, n-op-1, enz.)-corres- pondenties uiteindelijk worden bepaald met behulp van SQL-queries, wordt vervolgens uit de doeken gedaan. Het kaartversnijdingsprogramma (MAPOVER) is geba seerd op de R-Tree Ruimtelijke Index [10], omdat een be langrijke operatie binnen het programma het ruimtelijk zoeken is naar elkaar snijdende lijnstukken. Door gebruik te maken van een R-Tree kan dit zeer efficiënt worden gedaan. Eerst bouwt het programma een R-Tree met de lijnstukken van de eerste kaart (de GBKN). Daarna wor den de lijnstukken van de tweede kaart (de TOPlOvector) toegevoegd in de R-Tree op de navolgende wijze: als een lijnstuk géén ander lijnstuk doorsnijdt, kan het eenvoudig in de R-Tree worden toegevoegd; als een lijnstuk een ander lijnstuk doorsnijdt, dan: a. wordt het andere lijnstuk verwijderd uit de R-Tree; b. worden de twee lijnstukken gesplitst op het snijpunt, Fig. 2. wat resulteert in het ontstaan van drie of vier lijn- Overlappende stukken; gebouwen. c. worden de nieuwe lijnstukken in de R-Tree „voor zichtig" toegevoegd, dat wil zeggen ze kunnen wel licht nog andere lijnstukken snijden, waarvoor de zelfde procedure moet worden herhaald. Merk op dat behoedzaamheid geboden is in speciale geval len, bijvoorbeeld bij lijnstukken die elkaar (gedeeltelijk) overlappen en eindpunten die elkaar raken (meer details kunnen hierover worden gevonden in [11]). Na deze stap pen te hebben uitgevoerd voor alle lijnstukken, is het kaart- versnijdingsproces beëindigd en moet de topologie op nieuw worden opgebouwd. Het reconstrueren van de topo logie houdt in het maken van vlakken, uitgaande van de lijnketens. TOPOL is het programma dat voor dit doel wordt gebruikt [12]. De volledige begrenzing van een vlak bestaat uit een reèks lijnketens. De begrenzing van een vlak is te vinden door aan elkaar grenzende lijnketens één voor één af te lopen, totdat men opnieuw de kant van de lijn- keten vindt waarmee men begonnen is. De basis voor de werking van zo'n algoritme is een datastructuur met lijn ketens en knopen. In deze datastructuur heeft een lijnketen een richting en verwijzingen naar begin- en eindknoop van de lijnketen. Een knoop heeft een lijst van verwijzingen naar zijn inkomende en uitgaande lijnketens, gesorteerd naar absolute richting. Het proces van het rondlopen van de begrenzing eindigt als iedere lijnketen twee keer is aan gedaan: één keer aan de linkerkant en één keer aan de rech- 112 terkant. Speciale gevallen zijn eiland- vlakken, die ontdekt kunnen worden vanwege hun „negatieve" oppervlakte. Eilanden worden gekoppeld in de topologische datastructuur aan hun ondervlak. Het vinden van het ouder- vlak is ook gebaseerd op het ruimtelijk zoeken met behulp van de R-Tree, in combinatie met een punt-in-polygoon- test. TOPOL levert alle lijnketens zo danig op dat alle lijnketens links- rechts-verwijzingen naar de vlakken hebben (topologie). Deze informatie wordt opgeslagen in de tabellen van een relationele database, aangevuld met „handige" informatie over de vlakken, bijvoorbeeld een omhullende rechthoek (bounding box). Tevens wordt binnen elk vlak een punt dat binnen dat vlak ligt, berekend (cen- troïde). G 437 F193 Als gebouwrepresentaties van de GBKN en TOPlOvector corresponde ren, vertonen zij een bepaalde mate van overlap. Hiervan wordt gebruik gemaakt om correspondenties op te sporen. Stel dat gebouwen in de data base een identificatienummer „bid" hebben en dat de geometrie van een gebouw wordt voorgesteld door „geo metry" van het type „polygon". Alle overlappende gebouwen van de twee kaarten kunnen dan worden gevonden met de „overlaps"-operator in de vol gende SQL-query (in CA Openlngres 2.0 met OME/SOL) [13]: select gbkn.bid, toplO.bid from gbkn, toplO where gbkn.geometry overlaps top10.geometry Het resultaat van deze query bevat alle overlappende gebouwen van de twee 1998-3 GEODESIA Kaartversnijdingsprogramma (MAPOVER) Vinden van correspondenties via SQL-queries

Digitale Tijdschriftenarchief Stichting De Hollandse Cirkel en Geo Informatie Nederland

(NGT) Geodesia | 1998 | | pagina 18