Grundidee: Access liefert die Daten, Kartenanwendung zeigt sie an

Access kann keine Karten darstellen.
Aber Access kann Geokoordinaten speichern, liefern und verarbeiten.
Die Darstellung passiert dann ĂŒber:

  • Google Maps
  • OpenStreetMap
  • ArcGIS
  • QGIS
  • oder eigene Weblösungen mit Leaflet oder Mapbox

Ziel: Daten mit Koordinaten in Access verwalten und extern auf Karten nutzen.

Schritt 1: Koordinaten sauber speichern

Du brauchst Felder wie:

  • Breitengrad (Latitude)
  • LĂ€ngengrad (Longitude)
  • Optional: Adresse, PLZ, Ort

Format: Double, möglichst auf 6–8 Nachkommastellen.

Beispiel:

CREATE TABLE tblStandorte (
    ID AUTOINCREMENT PRIMARY KEY,
    Bezeichnung TEXT,
    Breitengrad DOUBLE,
    LĂ€ngengrad DOUBLE
)

Schritt 2: Google Maps im Formular öffnen

Public Sub KarteÖffnen(Breitengrad As Double, LĂ€ngengrad As Double)
    Dim url As String
    url = "https://www.google.com/maps/search/?api=1&query=" & Breitengrad & "," & LĂ€ngengrad
    Application.FollowHyperlink url
End Sub

Button im Formular:

Private Sub cmdKarte_Click()
    Call KarteÖffnen(Me.Breitengrad, Me.LĂ€ngengrad)
End Sub

Öffnet direkt im Browser die richtige Position.

Schritt 3: Adressen in Koordinaten umwandeln (Geocoding)

Geht z. B. ĂŒber die OpenCage-API oder Google Maps API.
Hier mit OpenCage (https://opencagedata.com):

Public Function GeocodeAdresse(adresse As String) As String
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    Dim apiKey As String
    apiKey = "dein-api-key"

    Dim url As String
    url = "https://api.opencagedata.com/geocode/v1/json?q=" & Replace(adresse, " ", "+") & "&key=" & apiKey

    http.Open "GET", url, False
    http.Send

    GeocodeAdresse = http.responseText
End Function

Ergebnis ist JSON → Koordinaten extrahieren mit Parser oder String-Split.

Schritt 4: Koordinaten an QGIS oder ArcGIS ĂŒbergeben

QGIS: CSV exportieren und einlesen

DoCmd.TransferText acExportDelim, , "qryGeodaten", "C:\Export\geodaten.csv", True

In QGIS:

  • CSV mit X=Longitude, Y=Latitude einlesen
  • als Punktlayer darstellen

ArcGIS: REST oder CSV-Import

ArcGIS kann REST-Schnittstellen nutzen.
Oder Du lieferst eine CSV mit Koordinaten, die dann automatisiert eingelesen wird.

Schritt 5: Access als Geo-Backend fĂŒr Webkarte

Du willst z. B. mit Leaflet oder OpenLayers arbeiten?

Dann bau Dir eine kleine REST-API in z. B. Python oder Node.js, die Access per ODBC abfragt und GeoJSON ausgibt.

Beispiel fĂŒr GeoJSON-Ausgabe:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [10.12345, 53.54321]
  },
  "properties": {
    "name": "Standort A",
    "id": 1
  }
}

Zugriff aus Access ĂŒber Shell oder Webbrowser.

Bonus: Entfernung berechnen in VBA (Haversine-Formel)

Public Function BerechneEntfernung(lat1 As Double, lon1 As Double, lat2 As Double, lon2 As Double) As Double
    Const PI = 3.14159265359
    Const R = 6371 ' Erdradius in km

    Dim dLat As Double
    Dim dLon As Double

    dLat = (lat2 - lat1) * PI / 180
    dLon = (lon2 - lon1) * PI / 180

    Dim a As Double
    a = Sin(dLat / 2) ^ 2 + Cos(lat1 * PI / 180) * Cos(lat2 * PI / 180) * Sin(dLon / 2) ^ 2

    BerechneEntfernung = R * 2 * Atn2(Sqr(a), Sqr(1 - a))
End Function

NĂŒtzlich fĂŒr Umkreissuche oder Radiusfilter.

Einsatzbeispiele aus der Praxis

  • Kundenstandorte auf Karte
  • Außendienst-Routenplanung
  • GerĂ€te- oder Anlagenverortung
  • Baustellen, MĂ€ngel, Meldungen
  • Entfernungslogik (z. B. < 20 km Umkreis)

Fazit fĂŒr Entwickler

Access kann keine Karte darstellen.
Aber mit Webservices, APIs oder Exportformaten kannst Du Geodaten nahtlos integrieren.

Categories:

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert