Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Kommunikation und Netzwerk

k24:k24.8:k24.8.3:start

24.8.3 MapPoint

Die Klasse MapPoint definiert geografische Punkte (Länge, Breite) sowie Methoden, um mit den geografischen Punkten im 'World Geodetic System 1984' (WGS84 oder EPSG:4326) zu arbeiten.

Wenn Sie noch nie mit geografischen Koordinaten gearbeitet haben, dann hilft ein Blick auf diese Webseiten weiter:

24.8.3.1 Geografische Koordinaten

  • Die geografischen Koordinaten eines Ortes auf der fiktiven Erd-Kugel sind die Breite (Latitude) und die Länge (Longitude).
  • Die geografische Breite und die geografische Länge sind Winkelwerte. Die Angabe der Winkel erfolgt entweder in Dezimal-Schreibweise oder in Sexagesimal-Schreibweise (Basis 60), wobei 1 Grad 60 (Bogen-)Minuten hat und eine Minute 60 (Bogen-)Sekunden.
  • Der Koordinaten-Ursprung für die geografische Breite ist der Äquator. Die geografische Breite nimmt somit Werte von -90° < Breite ⇐ +90° oder 90°S < Breite ⇐ +90°N an. Besonderheiten werden in einem Artikel unter http://en.wikipedia.org/wiki/Mercator_projection sehr anschaulich beschrieben.
  • Der Koordinaten-Ursprung für die geografische Länge ist der Null-Meridian. Die geografische Länge nimmt somit Werte von -180° < Länge ≤ +180° oder 180°W < Länge ≤ 180°E an.

Folgende Startwerte sind in den Gambas-Projekten erfolgreich erprobt worden:

  • Weltkarte Latitude = 8°, Longitude = -8° und Zoom = 1
  • Deutschland Latitude = 51,4°, Longitude = 10,7° und Zoom = 6
  • Osterburg Latitude = 52.78979°, Longitude = 11.75280° und Zoom = 13

24.8.3.2 Eigenschaften

Die Klasse MapPoint verfügt über diese Eigenschaften:

EigenschaftDatentypBeschreibung
LatFloat°Gibt die geografische Breite eines Karten-Punktes (MapPoint) als dezimalen Grad-Wert zurück.
LonFloat°Gibt die geografische Länge eines Karten-Punktes als dezimalen Grad-Wert zurück.

Tabelle 24.8.3.2.1 : Eigenschaften der Klasse MapPoint

Die Funktion MapPoint(Latitude As Float, Longitude As Float) As MapPoint initialisiert ein Karten-Objekt mit einem geografischen Start-Punkt (Breite°, Länge°):

Dim myMapPoint As MapPoint = MapPoint(52.78631, 11.73872) ' Ort Osterburg

24.8.3.3 Methoden Die Klasse MapPoint besitzt die folgenden drei Methoden:

MethodeRückgabetypBeschreibung
Distance ( PointA As MapPoint, PointB As MapPoint )FloatDie Funktion berechnet den (direkten) Abstand (Distanz in Metern!) zwischen zwei geografischen Punkten, von denen die geografische Breite und Länge als dezimaler Grad-Wert bekannt sind.
Bearing(From As MapPoint, To As MapPoint)FloatBerechnet die (Start-)Peilung in Grad zwischen zwei geografischen Punkten, von denen die Breite und Länge als dezimaler Grad-Wert bekannt sind.
From(MapPoint as MapPoint, Bearing As Float, Distance As Float)MapPointErrechnet den Zielpunkt B aus einem Startpunkt A, einer Peilung (im Gradmaß) und einer Distanz (in Metern). In diesem Sinne ist From() invers zu Distance() und Bearing().

Tabelle 24.8.3.3.1 : Methoden der Klasse MapPoint

24.8.3.4 Beispiel

Das Beispiel bezieht sich auf die Berechnungen der Entfernung und der Start-Peilung für die beiden Städte Osterburg und Berlin:

Dim mpOsterburg, mpBerlin As MapPoint
 
mpOsterburg = New MapPoint(52.78631, 11.73872)
mpBerlin = New MapPoint(52.516250, 13.378870)
 
Print "Geografische Breite 'Osterburg' = "; mpOsterburg.Lat; "°"
Print "Geografische Länge 'Osterburg' = "; mpOsterburg.Lon; "°"
Print "Entfernung Osterburg-Berlin = "; Round(Distance(mpOsterburg, mpBerlin) / 1000, -3); " km"
Print "Start-Peilung = "; Round(Bearing(mpOsterburg, mpBerlin), -3); "°"

Ausgabe in dere Konsole der IDE:

Geografische Breite 'Osterburg' = 52,78631°
Geografische Länge 'Osterburg' = 11,73872°
Entfernung Osterburg-Berlin = 114,994 km
Start-Peilung = 104,532°

Distance

Abbildung 24.8.3.4.1: Entfernung Osterburg – Berlin (Luftlinie)

Auch das Konsolen-Programm geod liefert sehr gute Ergebnisse, da es – wie auch die Komponente gb.map – das Modell WGS84-Ellipsoid zur Berechnung verwendet. Es ist schnell installiert:

hans@linux:~$ sudo apt-get install proj-bin

und liefert mit dem folgenden Aufruf und den danach einzugebenden geografischen Koordinaten für zwei Orte (Osterburg und Berlin (Mitte)) adäquate Ergebnisse (Angabe der Entfernung in Kilometern) wie die MapPoint.Distance-Methode:

hans@linux:~$ geod +ellps=WGS84 +units=km -I 
52.78631 11.73872 52.516250 13.378870 
104d29'46.077"	-74d11'59.931"	114.994 

Download

Wir verwenden Cookies, um unser Internetangebot optimal zu gestalten. Durch weitere Nutzung dieser Webseite stimmen Sie der Verwendung von Cookies zu. Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung
k24/k24.8/k24.8.3/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge