Die EarthMap Klasse ist gleichzeitig ein globales Objekt. Es muss daher keine Instanz dieser Klasse erzeugt werden, sondern es kann direkt das Objekt EarthMap verwendet werden.
Das EarthMap Objekt ist eine Hierarchie aus den folgenden Klassen:
Ziel dieses Moduls war, eine möglichst kompakte Karte zu erstellen. Es wurden möglichst wenig Punkte der Kontinente und grössten Inseln und Seen erstellt. Die Koordinaten der Umrisse sind als ganzzahlige Winkel gespeichert, siehe z.B. PolyX und PolyY.
Die PolyX Koordinaten haben einen Wertebereich von 0..360. Der Nullmeridian liegt beim Wert 180.
Die PolyY Koordinaten haben einen Wertebereich von 0..180. Der Nordpol hat den Wert 0, der Äquator den Wert 90 und der Südpol den Wert 180. Siehe Rectangular Map (EarthMap: Demo), wo der Koordinaten-Nullpunkt links oben ist.
Bei flachen Karten und Flat Earth kann ein Spline-Zeichenmodus gewählt werden, um die Ecken der Umrisse zu runden, siehe FEMode.
}
}
Objekte der Continent Klasse sind Bestandteil der EarthMap Klasse und werden dort im Property ContinentList gespeichert.
Continent.Type: String; ReadOnly; Init = 'Continent'
Identifiziert ein Objekt der Klasse Continent. Jedes Objekt hat ein Property Type, welches angibt, von welchem Typ das Objekt ist.
Continent.Name: String; ReadOnly
Name des Kontinents. Es sind folgende Kontinent-Namen definiert:
Continent.Color: String; ReadOnly; Init = null
Continent.BorderColor: String; ReadOnly; Init = null
Continent.BorderWidth: Int; ReadOnly; Init = null
Continent.DrawMode: Int; ReadOnly; Init = null
Wenn diese Properties null sind, werden die gleichnamigen Properties aus der EarthMap Klasse übernommen.
Diese Properties können mit den Funktionen ??? gesetzt werden.
Continent.LandList: array of Land; ReadOnly; Init = Land-List
Die meisten Kontiente bestehen aus einer Gruppe von zusammengehörigen Landmassen und Inseln. Die Koordinaten des Kontinents und der Inseln sind in den Land Objekten gespeichert.
}
Objekte der Land Klasse sind Bestandteil der Continent Klasse und werden dort im Property LandList gespeichert.
Land.Type: String; ReadOnly; Init = 'Land'
Identifiziert ein Objekt der Klasse Land. Jedes Objekt hat ein Property Type, welches angibt, von welchem Typ das Objekt ist.
Land.Name: String; ReadOnly
Name des Landes oder Land-Grouppe. Es sind folgende Land-Namen definiert:
Land.SpanPole: String; ReadOnly
Für Länder welche einen der Pole überdecken, wird hier 'N' für Nordpol und 'S' für Südpol gespeichert. Bei allen anderen Ländern ist SpanPoly = ''.
Aktuell wird nur für das Land Antarctica der Wert 'S' verwendet.
Dieses Property wird für die Zeichenfunktionen benötigt.
Land.Color: String; ReadOnly; Init = null
Land.BorderColor: String; ReadOnly; Init = null
Land.BorderWidth: Int; ReadOnly; Init = null
Land.DrawMode: Int; ReadOnly; Init = null
Wenn diese Properties null sind, werden die gleichnamigen Properties aus der Continent Klasse übernommen.
Diese Properties können mit den Funktionen ??? gesetzt werden.
Land.PolyX: array of Int; ReadOnly
Land.PolyX: array of Int; ReadOnly
Enthält die Koordinaten der Land-Kontur, siehe Datenformat der Map.
Land.ClosePath: Boolean; ReadOnly
Wenn die Kontur eines Landes geschlossen werden muss, ist dieser Wert true. Für Länder, die über die Kartengrenze hinaus gehen, ist dieser Wert false. Die Kontur muss dann je nach Zeichenalgorithmus geschlossen werden oder nicht.
Hinweis: Die Kontur in PolyX und PolyY ist nie geschlossen, d.h. der erste und letzte Punkt sind nicht identisch.
Für folgende Länder ist dieser Wert false:
Land.LakeList: array of Lake; ReadOnly
Wenn eine Land eine Reige von grösseren Seen hat, sind diese in LakeList gespeichert.
}
Objekte der Lake Klasse sind Bestandteil der Land Klasse und werden dort im Property LakeList gespeichert.
Lake.Type: String; ReadOnly; Init = 'Lake'
Identifiziert ein Objekt der Klasse Lake. Jedes Objekt hat ein Property Type, welches angibt, von welchem Typ das Objekt ist.
Lake.PolyX: array of Int; ReadOnly
Lake.PolyX: array of Int; ReadOnly
Enthält die Koordinaten der Lake-Kontur, siehe Datenformat der Map.
Land.ClosePath: Boolean; ReadOnly; Init = true
Für alle Lake ist dieses Property true, da Lakes immer geschlossene Polygone sind.
Hinweis: Die Kontur in PolyX und PolyY ist nie geschlossen, d.h. der erste und letzte Punkt sind nicht identisch.