FCL Standortermittlung
Kommentare

Beim Einsatz von Windows 7 besteht die Möglichkeit unter Verwendung von Sensoren den aktuellen Standort herauszufinden. Wer einen solchen Sensor nicht sein eigen nennt, findet unter geosenseforwindows.com einen softwarebasierten Sensor, welcher Daten, wie die aktuelle IP-Adresse oder Entfernung zu Drahtlosnetzwerken, nutzt. Nach der Installation muss der Sensor in der Systemsteuerung unter ORTUNG UND ANDERE SENSOREN aktiviert werden.

Sensoren dieser Art können via .NET 4.0 angesprochen werden, wie in Listing 4 demonstriert. Dieses Beispiel ermittelt über eine Instanz von GeoCoordinateWatcher die aktuellen Koordinaten (Längengrad, Breitengrad) und versucht mit diesen unter Verwendung eines CivicAddressResolver die dazugehörige zivile Adresse herauszufinden. Die Methode TryStart startet die Verwendung des Sensors. Das erste Argument gibt an, ob der Dialog, der den Benutzer um Erlaubnis zur Verwendung der aktuellen Position bittet, unterdrückt werden soll. Wird dieser Dialog unterdrückt, muss bereits die Verwendung des Sensors durch den Benutzer bewilligt worden sein, damit der aktuelle Standort ermittelt werden kann. Das zweite Argument gibt an, wie viel Zeit in die Ermittlung der aktuellen Position maximal investiert werden darf. Der boolesche Rückgabewert gibt Aufschluss über den Erfolg der Standortermittlung. Im betrachteten Beispiel werden die ermittelten Geodaten sofort verwendet. Um über Standortänderungen informiert zu werden, kann zusätzlich das Ereignis PositionChanged der Klasse GeoCoordinateWatcher verwendet werden. Über die Eigenschaft MovementThreshold kann dabei in Meter angegeben werden, nach welcher Distanz dieses Ereignis aufgerufen werden soll.

GeoCoordinateWatcher watcher = new 
             GeoCoordinateWatcher(GeoPositionAccuracy.Default);
bool started = watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));
if (!started) Console.WriteLine("GeoCoordinateWatcher timed out on start.");
CivicAddressResolver resolver = new CivicAddressResolver();
if (!watcher.Position.Location.IsUnknown)
{
    CivicAddress address = resolver.ResolveAddress(watcher.Position.Location);
if (!address.IsUnknown)
{
    Console.WriteLine("Country: {0}, Zip: {1}, City: {2}",
        address.CountryRegion,
        address.PostalCode,
        address.City);
}
}
  
Dr. Holger Schwichtenberg (MVP) und FH-Prof. Manfred Steyer arbeiten bei http://www.IT-Visions.de als Softwarearchitekten, Berater und Trainer für .NET-Technologien. Dabei unterstützen sie zahlreiche Unternehmen beim Einsatz von .NET und entwickeln selbst in größeren Projekten. Sie haben zahlreiche Fachbücher geschrieben und gehören seit vielen Jahren zu den Hauptsprechern auf der BASTA. Manfred Steyer ist zudem verantwortlich für den Fachbereich „Software Engineering“ der Studienrichtung „IT und Wirtschaftsinformatik“ an der FH CAMPUS 02 in Graz. Dr. Holger Schwichtenberg unterrichtet in Lehraufträgen an den Fachhochschulen Münster und Graz.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -