Google Maps API – Koordinaten mit VB ermitteln

14. Feb 2008 um 09:43 - Kommentieren - Share it

Nachdem relativ viele nach Code-Beispielen suchen, um Geo-Koordinaten von Google-Maps via Visual Basic (VB) zu ermitteln, habe ich hier einen Auszug angehängt, wie man dies über einen WebRequest machen kann:

Imports System.Console
Imports System.IO
Imports System.Net

Module Module1
 Sub Main()
  Dim sURL As String = "Maximilianstr. 4;86150 Augsburg, Deutschland"
  Dim sKey As String = "!euer_API_Key!"
  Dim sBuffer As String
  sURL = "http://maps.google.com/maps/geo?q="
        & System.Web.HttpUtility.UrlEncode(sURL)
           & "&output=csv&key=" & sKey
  Dim oRequest As WebRequest = WebRequest.Create(sURL)
  oRequest.Method = "GET"
  Dim oResponse As WebResponse = oRequest.GetResponse()
  Dim oStream As New StreamReader(oResponse.GetResponseStream())
  sBuffer = oStream.ReadToEnd()

  WriteLine(sBuffer)
  oStream.Close()
  oResponse.Close()
  ReadLine()
 End Sub
End Module

Einfach die Adresse und den Key durch seinen eigenen Google Maps API-Key ersetzen.
Als Ergebniss bekommt man dann z.B.:

200,8,48.368435,10.898304

Die letzten beiden Zahlen sind die Koordinaten. Die beiden anderen geben den Statuscode an. Nachzulesen unter der Google Maps API Dokumentation.

Das ganze läßt sich natürlich erweitern, indem man z.B. eine CSV-Datei einliest und diese in einer Schleife abarbeitet.

Eine Beispiel-Anwedndung habe ich unter diesem Artikel beschrieben.

Bitte beachten:
Was ich jetzt nicht weiß ist, inwieweit die Koordinaten-Ermittlung auf diese Weise von Google Maps überhaupt erlaubt ist. Bei einem Test mit ca. 1000 Adressen wurde ich auf jeden Fall geblockt. Irgendwan kam als Response etwas in der Art: “Es wird scheinbar versucht maschinell Daten abzufragen. Die IP wurde vorübergehend geblockt.” Nach einer Weile ging es dann wieder.
Eine kleine Zeitverzögerung per Zufallsgenerator hat aber auch dieses Problem behoben ;-)




nächster Beitrag:
vorheriger Beitrag:

Kategorien: Google - Nützliches
Tags: - - -
Hi,

ich wollte einfach mal sagen Cool was Sie hier ins Netzt gestellt haben, ich möchte so etwas auch bei mir in der Firma einbauen, doch habe mich die ganze zeit echt doof gesucht.

Ich wollte einfach mal Danke sagen für das Beispiel und den Coode den Sie bereit gestellt haben.

und ich weis auch warum sie nach 1000 Adressen geblockt wurden Sie haben nur ein Bestimmtes Limit von Google wiviele Adressen am Tag Berechnet werden Dürfen :-).

Gruß Mück
11. Okt 2008 um 11:26
Hallo, ich hoffe dass ich hier richtig bin.
Ich arbeite mit VB6 habe aber noch nicht allzu viel Erfahrung. Ich möchte möchte folgendes realisieren. Beim eingeben der Postleitzahl soll der Ort auf einer Karte markiert werden.
Mit dem Beispielcode komme ich nicht klar. Ist das vielleicht VB-Nett?
Gibt es Beispielcode für VB6. Einen Code zur Ermittlung von Entfernungen habe ich für Google-Map geschrieben und es funktioniert gut.

Es wäre schön wenn man mir weiterhelfen könnte.
Danke im Voraus.
Werner
01. Mrz 2010 um 19:07
Hallo, der Code oben ist VB.NET. Ich würde Dir raten langsam mal weg von VB6 und hin zu .NET wechseln (evtl. kostenlose Express-Version), da in .NET vieles einfacher inzwischen geht. Die PLZ suchen, sollte auch mit dem Beispiel oben kein Problem sein. Ich würde Dir ein Buch zu Google Maps API empfehlen, da gibt es inzwischen einige auf dem Markt…
17. Mrz 2010 um 11:32