Inhaltsverzeichnis
24.8.1 Projekte
Für die zwei vorgestellten Projekte wird das freie Kartenmaterial von openstreetmap.org (OSM) eingesetzt. In einer angezeigten Karte – dargestellt in einer MapView – können Sie mit dem Mausrad den Kartenausschnitt in 18 Schritten zoomen und mit einem permanenten Klick auf die Karte den angezeigten Kartenbereich verschieben.
24.8.1.1 Voraussetzungen
Für die Anzeige einer Karte sind drei Voraussetzungen zu erfüllen:
- Genaue Kenntnis der geografischen Koordinaten des anzuzeigenden Ortes auf der Erde – vorzugsweise als geografische Breite und Länge in dezimaler Grad-Angabe.
- Wahl eines geeigneten Zoom-Faktors aus dem Intervall [1..18], der die Größe des Kartenausschnitts bestimmt.
- Aktive Internetverbindung, um die (vor-)berechneten Karten vom Server abzurufen.
24.8.1.2 Projekt GeoMap1
Das vorgestellte Projekt realisiert einen Betrachter für Karten von OSM.
Abbildung 24.8.1.2.1: GeoMap1 – Hanse-Stadt Osterburg in Sachsen/Anhalt
Der Quelltext für das Projekt wird vollständig angegeben:
[1] ' Gambas class file [2] [3] Public Sub Form_Open() [4] FMain.Center [5] FMain.Caption = "GeoMap - Daten von OpenStreetMap" [6] btnHelp.Value = True [7] ShowMap() [8] End ' Form_Open() [9] [10] Public Sub ShowMap() [11] Dim iZoom As Integer [12] Dim fLatitude, fLongitude As Float [13] Dim sCacheName, sTileName, sTilePattern As String [14] Dim cArguments As New Collection [15] [16] ' Initialisierung [17] iZoom = 13 [18] sTileName = "OpenStreetMap" [19] sTilePattern = "85.30.190.241/{z}/{x}/{y}.png" [20] cArguments = Null [21] sCacheName = Null [22] fLatitude = 52.7905 ' °Breite Osterburg [23] fLongitude = 11.7531 ' °Länge Osterburg [24] [25] MapView1.Map.AddTile(sTileName, sTilePattern, cArguments, sCacheName) [26] MapView1.Map[sTileName].Copyright = " © OpenStreetMap" [27] MapView1.Map[sTileName].Visible = True ' optional; Standard-Einstellung ist TRUE [28] MapView1.Map.AddShape("P1") [29] MapView1.Map!P1.AddPoint("Osterburg", MapPoint(fLatitude, fLongitude)) [30] MapView1.Map.Center = MapPoint(fLatitude, fLongitude) [31] ' MapView1.Map.Center = MapView1.Map!P1!Osterburg.Points ' Alternative [32] MapView1.Map.Zoom = iZoom [33] MapView1.AllowEffect = True [34] End ' ShowMap() [35] [36] Public Sub btnHelp_Click() [37] ShowHelp() [38] End ' btnHelp_Click() [39] [40] Public Sub ShowHelp() [41] Dim sMessage As String [42] [43] sMessage = "<hr><b>Hinweise zum Einsatz der Komponente Map</b><hr>" [44] sMessage &= "» Verschieben der Karte mit gedrückter linker Maustaste<br>" [45] sMessage &= "» Zoomen mit dem Maus-Rad<br>" [46] sMessage &= "» Zoomen mit dem Schieberegler<hr>" [47] sMessage &= "» Die Tastenkombination ALT+B beendet das Programm<hr>" [48] sMessage &= "▪ Entwickler der Komponente <i>gb.map</i> ist Fabien Bodard" [49] sMessage &= "<br>▪ EMail: gambix@users.sourceforge.net<hr>" [50] Message.Info(sMessage) [51] End ' ShowHelp() [52] [53] Public Sub btnClose_Click() [54] FMain.Close [55] End ' btnClose_Click()
Hinweise:
- In der Zeile 19 wird statt der URL {s}.tile.openstreetmap.org die adäquate IP-Adresse genutzt. Das ist nur dann von Vorteil, wenn es Probleme mit dem DNS-Server in Verbindung mit zwischengeschalteten Routern gibt.
- Wenn Sie die angezeigte Karte ausdrucken – eine entsprechende Klasse dafür wird von F. Bodard entwickelt – oder in anderem Zusammenhang verwenden wollen, dann müssen Sie in der Zeile 26 einen Copyright-Vermerk auf der Karte anzeigen lassen, um die Lizenzbedingungen zu erfüllen!
- Die Kartenkacheln werden im Verzeichnis ~/.cache/gb.map/MyMapCache/ gespeichert.
- Detaillierte Hinweise zu den Argumenten und dem Cache entnehmen Sie der Dokumentation.
Beim Programm-Start wird eine Hilfe eingeblendet:
Abbildung 24.8.1.2.2: Programm-Hilfe
24.8.1.3 Projekt GeoMap2
Das zweite Projekt ist eine Adaption des Programmbeispiels MapView von Fabien Bodard – dem Entwickler der Komponente Map – aus der Beispielsammlung von Gambas.
Zusätzlich zur Anzeige einer Karte können Sie mit der CTRL-Taste eine Lupen-Funktion zuschalten:
Abbildung 24.8.1.3.1: GeoMap2 mit Lupe
Die Archive für beide Projekte befinden sich im Download-Verzeichnis.



