Feedback

C# - Geo-Daten mit Google Maps API V3 anhand der Adresse abfragen

Veröffentlicht von am 17.05.2012
(0 Bewertungen)
Wie in einem vorherigen Artikel von Jan Welker beschrieben ist es recht einfach mit der Google Maps API Längen- und Breitengrad zu einer belieben Position bzw. Adresse abzufragen.

Siehe Artikel: http://dotnet-snippets.de/dns/geografische-koordinaten-mit-der-google-maps-api-abfragen-SID824.aspx

Dies ist die überarbeitete Fassung mit der Google Maps API V3, diese gibt entweder ein XML- oder ein JSON-Objekt zurück. In diesem Beispiel wird aus dem von Google Maps zurückgelieferten XML-Objekt direkt ein .NET-Objekt mit geografischer Längen- und Breitenangabe erstellt und zurückgegeben.

Die Google Maps API V3 benötigt übrigens keinen Key mehr. Abfragen sind - ohne Google Maps Premier-Account - auf 2500 Geolokalisierungsanforderungen pro Tag begrenzt.
GFU-Schulungen  [Anzeige]

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

using System;
using System.Net;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace Geo
{
    public class GeoData
    {
        public decimal Latitude;
        public decimal Longitude;

        public GeoData()
        { 
        }

        /// <summary>
        /// Creates a GeoData object and retrieves the GeoData provided by an address from google maps api v3
        /// </summary>
        /// <param name="location">complete adress as would be typed in at google maps</param>
        /// <returns>GeoData object with latitude and longitude</returns>
        public static GeoData CreateGeoData(string location)
        {
            GeoData geodata = new GeoData();

            HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://maps.googleapis.com/maps/api/geocode/xml?address=" + location.Trim() + "&sensor=false");
            HttpWebResponse webResponse;

            try
            {
                webResponse = myReq.GetResponse() as HttpWebResponse;
            }
            catch
            {
                return null;
            }

            if (webResponse != null)
            {
                if (webResponse.StatusCode == HttpStatusCode.OK)
                {

                    System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                    doc.Load(webResponse.GetResponseStream());

                    if (doc != null)
                    {
                        System.Xml.XmlNode geometry = doc.SelectSingleNode("GeocodeResponse/result/geometry/location");
                        
                        if (geometry != null)
                        {
                            System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
                            geodata.Latitude = Convert.ToDecimal(geometry.SelectSingleNode("lat").InnerText, ci);
                            geodata.Longitude = Convert.ToDecimal(geometry.SelectSingleNode("lng").InnerText, ci);
                        }
                    }
                }
            }
            return geodata;   
        }

    }
}

2 Kommentare zum Snippet

Robert Milrath schrieb am 25.01.2013:
Hallo,
gefällt mir gut, kann man denn auch die HüNN ermitteln? Wenn ja, wie?
Danke.
Robert
Robert Milrath schrieb am 25.01.2013:
Wer lesen kann ist klar im Vorteil, die Doku der Api gibt die Antwort.
 

Logge dich ein, um hier zu kommentieren!