WaBis

walter.bislins.ch

EarthMap: Klasse

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:

Datenformat der Map

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 (Ziel-SeiteEarthMap: 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.

EarthMap Klasse

EarthMap = {
Type: String; Read Only; Init = 'EarthMap'
Radius: Number(>0); Init = 1
FEMode: Int(0..3); Init = 0
SplineTension: Number(>=0); Init = 0.5
WaterColor: String; Init = '#a6c4ea'
WaterBorderColor: String; Init = '#729cd2'
WaterBorderWidth: Number(>=0); Init = 1
WaterDrawMode: Int(1..3); Init = 3
LandColor: String; Init = '#8cbe5d'
LandBorderColor: String; Init = '#689a54'
LandBorderWidth: Number(>=0); Init = 1
LandDrawMode: Int(1..3); Init = 3
LakeColor: String; Init = '#a6c4ea'
LakeBorderColor: String; Init = '#72a653'
LakeBorderWidth: Number(>=0); Init = 1
LakeDrawMode: Int(1..3); Init = 3
Trans: JsgMat3; Init = null
ClipPlane: JsgPlane; Read Only; Init = null
NContourPoints: Int(>1); Init = 96
ContinentList: array of Continent; Read Only; Init = List of Continents
}

Continent Klasse

Continent = {
Type: String; Read Only; Init = 'Continent'
Name: String; Read Only; Init = Continent Name
Color: String; Read Only; Init = null
BorderColor: String; Read Only; Init = null
BorderWidth: Int(>=0); Read Only; Init = null
DrawMode: Int(1..3); Read Only; Init = null
LandList: array of Land; Read Only; Init = List of Lands
}

Objekte der Continent Klasse sind Bestandteil der EarthMap Klasse und werden dort im Property ContinentList gespeichert.

Continent.Type

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

Continent.Name: String; ReadOnly 

Name des Kontinents. Es sind folgende Kontinent-Namen definiert:

  • 'America'
  • 'Africa'
  • 'Eurasia'
  • 'Australia'
  • 'Antarctica'

Continent.Color, BorderColor, BorderWidth, DrawMode

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

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.

Land Klasse

Land = {
Type: String; Read Only; Init = 'Land'
Name: String; Read Only; Init = Land Name
SpanPole: String; Read Only; Init = 'S' for South Pole, '' for others Lands
Color: String; Read Only; Init = null
BorderColor: String; Read Only; Init = null
BorderWidth: Int(>=0); Read Only; Init = null
DrawMode: Int(1..3); Read Only; Init = null
PolyX, PolyY: array of Int; Read Only; Init = Land Contour Coorinates
ClosePath: Boolean; Read Only; Init = true for closed contours
LakeList: array of Lake;
}

Objekte der Land Klasse sind Bestandteil der Continent Klasse und werden dort im Property LandList gespeichert.

Land.Type

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

Land.Name: String; ReadOnly 

Name des Landes oder Land-Grouppe. Es sind folgende Land-Namen definiert:

  • 'NorthAmerica'
  • 'Greenland'
  • 'Cuba'
  • 'DominicanRepublic'
  • 'SouthAmerica'
  • 'Falkland'
  • 'Africa'
  • 'Madagaskar'
  • 'EuropeAsia'
  • 'EuropeAsiaContinued'
  • 'Iceland'
  • 'GreatBritain'
  • 'Ireland'
  • 'OstrovNakhodka'
  • 'ZalivHedentrom'
  • 'Svalbard'
  • 'RegionSjaelland'
  • 'Sardinia'
  • 'Majorca'
  • 'Sumatra'
  • 'Indonesia'
  • 'Sulawesi'
  • 'Philippines'
  • 'Taiwan'
  • 'Japan'
  • 'Australia'
  • 'PapuaNewGuinea'
  • 'Tasmania'
  • 'NewZealand'
  • 'Antarctica'

Land.SpanPole

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, BorderColor, BorderWidth, DrawMode

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, PolyY

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

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:

  • 'Antarctica'
  • 'EuropeAsia'
  • 'EuropeAsiaContinued'

Land.LakeList

Land.LakeList: array of Lake; ReadOnly 

Wenn eine Land eine Reige von grösseren Seen hat, sind diese in LakeList gespeichert.

Lake Klasse

Lake = {
Type: String; Read Only; Init = 'Lake'
PolyX, PolyY: array of Int; Read Only; Init = Lake Contour Coorinates
ClosePath: Boolean; Read Only; Init = true for closed contours
}

Objekte der Lake Klasse sind Bestandteil der Land Klasse und werden dort im Property LakeList gespeichert.

Lake.Type

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, PolyY

Lake.PolyX: array of Int; ReadOnly 
Lake.PolyX: array of Int; ReadOnly 

Enthält die Koordinaten der Lake-Kontur, siehe Datenformat der Map.

Lake.ClosePath

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.

Weitere Infos zur Seite
Erzeugt Dienstag, 10. Oktober 2017
von wabis
Zum Seitenanfang
Geändert Samstag, 24. Februar 2018
von wabis