6. Modul MTOPO - Mehrere AREA Topologien berechnen

6.1. Allgemeines

Mit dem Modul MTOPO können geschlossene Flächen aus Begrenzungslinien (Boundaries) und Zentroiden berechnet werden. Im Gegensatz zum Modul TOPO können mit MTOPO mehrere Flächennetze gleichzeitig berechnet werden.

MTOPO wird mit:

|INCL \script\mtopo.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

6.2. Abhängigkeiten von anderen Modulen

Keine Abhängigkeiten vorhanden.

6.3. Parametermap TOPO_PARAM

Folgende Parameter können in der Map TOPO_PARAM für den Modul gesetzt werden:

Parameterreq/optBeschreibung
RESOLUTIONrGeometrische Auflösung der Inputgeometrien. Für mm muss z.B. 0.001 eingegeben werden.
OVERLAPrMöglicher Overlap für Kreisbögen gemäss INTERLIS Spezifikation (z.B. 0.2).
[Anmerkung]

Falls die Map TOPO_PARAM nicht definiert wird, wird die Map TOPO_PARAM vom Modul MTOPO automatisch mit Standardwerten erzeugt.

6.4. Objektmodell

Dem Modul MTOPO werden Objekte mit den vordefinierten Prozeduren TOPO_WRITE_CENTROID3 bzw. TOPO_WRITE_BOUNDARY2 übergeben (s.a. unten). Nach der Toplogieberechnung liefert der MTOPO Modul folgende IN-Objekte:

Allgemeine Komponenten für jedes IN-Objekt
Komponentereq/optBeschreibung
IN.LAYER(s)r Layer des gelieferten Objekts (s.a. unten).
IN.GEOM(a)rGeometrie der berechneten Fläche.
IN.VALUE(s)rAttributwert der berechneten Fläche.

6.5. Exportierte Prozeduren und Methoden

ProzedurMTOPO_OPEN ! [s arg][]
Beschreibung

Öffnet den Topologiemodul. Das Argument <arg> hat im Moment keine Bedeutung. MTOPO_OPEN wird von RUN1 automatisch aufgerufen.

Beispiel
'' MTOPO_OPEN
ProzedurMTOPO_READ_OBJECT ! [][b status]
Beschreibung

Liest das nächste IN-Objekt gemäss Objektmodell. MTOPO_READ_OBJECT wird von RUN1 automatisch aufgerufen.

Beispiel
MTOPO_READ_OBJECT [TRUE]
ProzedurMTOPO_CLOSE ! [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Ressourcen wieder frei. Alle temporären Dateien werden wieder gelöscht. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
MTOPO_CLOSE
ProzedurMTOPO_WRITE_BOUNDARY2 ! s layer, l boundary
BeschreibungSchreibt die Begrenzungslinie <boundary> in den Topologiebuffer <layer>. Es können beliebig viele Topologiebuffer via <layer> angesprochen werden.
Beispiel
... => MTOPO_WRITE_BOUNDARY2,buffer1,IN.GEOM
ProzedurMTOPO_WRITE_CENTROID3 ! s layer, o value, p centroidpoint
BeschreibungSchreibt das Zentroid in den Topologiebuffer <layer>. Das Zentroid erhält den Attributwert <value> und der Zentroidpunkt ist <centroidpoint>.
Beispiel
... => MTOPO_WRITE_CENTROID3,buffer1,IN.TXT,IN.GEOM
[Anmerkung]

Es ist auch möglich die Topologie mit der Klasse TOPO ohne die Verwendung von RUN1 zu berechnen (s.a. iG/Script Benutzer- und Referenzhandbuch).

6.6. Skriptbeispiel

! Diese ICS Konfiugration berechnet aus DXF Polylines geschlossene
! Flaechen. Die Flaechen werden in der .log Datei angezeigt. 
! Fuer die Berechnung wird der MTOPO Modul eingesetzt.

|LICENSE \license\iltools.lic

MAP USER_INPUT1
   DIALOG => FILE ! FILE | STRING | ODBC
   MESSAGE => 'Enter .dxf Input File'
   FILE_FILTER => dxf
   FILE_EXISTS => TRUE
   OPT => input
END_MAP

MAP DXFIN_PARAM
   STATISTICS   => ON
   DEBUG        => OFF
END_MAP

MAP INPUT_SOURCES
   I1 => DXFIN,OPT.input
   I2 => MTOPO
END_MAP

MAP INOUT
   I1 => IN.LAYER
   I1,01234 => MTOPO_WRITE_BOUNDARY2,buffer1,IN.GEOM
   I1,01235 => MTOPO_WRITE_CENTROID3,buffer1,IN.TXT,IN.GEOM
   I1,* => OFF
   I2 => DISPLAY_OBJECT1,IN
END_MAP

|INCL \script\util.lib
|INCL \script\mtopo.mod
|INCL \script\dxfin.mod
|INCL \script\run1.prg