Koordinaten eines bestimmten Ortes ermitteln

Geschrieben von admin am 31. März 2010 | Abgelegt unter Veröffentlichungen

Tipp vom 26.03.2010

Mit Hilfe nachfolgender Funktion lassen sich die Koordinaten eines bestimmten Ortes anhand einer Postleitzahl, oder eines Ortsnamen und optional einer Strasse bestimmen.

Der Aufruf der Google Maps URL, in der Funktion getCoordinatesCSV, mit dem Attribut &output=csv enthält lediglich die Koordinaten des zu bestimmenden Ortes.

Code:

‘ Koordinaten eines Ortes ermitteln
Public Function getCoordinatesCSV(ByVal strOrtPLZ As String, _
  Optional strStrasse As String = “”, _
  Optional strLand As String = “Deutschland”) As StringDim IEApp As Object
  Dim IEDocument As Object
  Dim strArr As Variant
  Dim strCoordinates As String
  Dim nTime As Single
  Dim bTimeOut As Boolean

‘ IE-Instanz erstellen
  Set IEApp = CreateObject(“InternetExplorer.Application”)
  With IEApp
  ‘ IE-Fenster unsichtbar lassen
  .Visible = False

‘ URL aufrufen
  ‘ Google-Maps im CSV Format
  .Navigate “http://maps.google.com/maps/geo?q=” & strOrtPLZ & “%20″ & _
  strStrasse & “%20″ & strLand & “&output=csv”

‘ Warten, bis Seite geladen
  nTime = Timer
  Do
  DoEvents
  Loop Until .Busy = False Or Timer - nTime > 15
  bTimeOut = (Timer - nTime > 15)

If Not bTimeOut Then
  nTime = Timer
  Do
  DoEvents
  Loop Until .Busy = False Or Timer - nTime > 15
  bTimeOut = (Timer - nTime > 15)
  End If

If Not bTimeOut Then
  ‘ IE-Dokument
  Set IEDocument = .Document
  End If
  End With

If Not bTimeOut Then
  Do
  DoEvents
  Loop Until IEDocument.readyState <> 4

‘ Inhalt des Webseiten-Dokuments auslesen und in Zeilen aufplitten
  strArr = Split(IEDocument.Body.innerText, “,”)
  ‘ strArr(2) ist die Breite
  ‘ strArr(3) ist die Länge
  strCoordinates = strArr(3) & “,” & strArr(2)
  End If

IEApp.Quit

‘ Objekte zerstören
  Set IEDocument = Nothing
  Set IEApp = Nothing

‘ Rückgabewert (Koordinaten)
  getCoordinatesCSV = strCoordinates
End Function

Beispiel Aufruf mit der Impressum-Adresse von vb@rchiv:

strCoordinates = getCoordinatesCSV(“97708″, “Maria-Stern-Str. 20″)
MsgBox strCoordinates 

Sie können hier bei vbarchiv.net für mich voten!

Trackback URI | Kommentare als RSS

Einen Kommentar schreiben

Du musst angemeldet sein, um einen Kommentar zu schreiben.