RSS FeedFeed TwitterTwitter XINGXING
  
Meine Bücher

Erscheint demnächst: Verteilte Systeme und Services mit .NET 4.5: Konzepte und Lösungen für WCF 4.5 und ASP.NET Web-API ,
Hanser Fachbuchverlag

Weitere Infos

 

.NET 4.5 Update,
Microsoft Press

Weitere Infos

 

Verteilte Systeme und Services mit .NET 4.0: Konzepte und Lösungen mit WCF 4.0,
Hanser Fachbuchverlag

Weitere Infos

 
Weitere Bücher
Meine Artikel

Leichtgewichtige Kommunikation: REST-basierte Services mit dem neuen API aus der ASP.NET-Familie,
windows.developer

Weitere Infos

 

Windows Azure Tutorial, Teil 3: Verbindung zwischen Cloud- und lokalen Applikationen,
iX - Magazin für professionelle Informationstechnik

Weitere Infos

 

Weitere Artikel

Schulung & Beratung

Gemeinsam mit meinen Kollegen aus dem IT-Visions Netzwerk unterstützte ich durch zielgerichtete Inhouse-Trainings und Consulting Unternehmen bei der Planung und Umsetzung großer Software-Systeme mit der Microsoft/.NET-Plattform.

 
Konferenzen

Scandinavian Developer Conference 2013 (SDC 2013) von 04.03.2013 bis 06.03.2013 in Göteborg

Meine Talks

Web-Site der Konferenz

 

BASTA! on Tour Spring 2013 von 24.04.2013 bis 26.04.2013 in Düsseldorf

Meine Talks

Web-Site der Konferenz

 

5th SOA and Cloud-Technology Symposium 2012 von 24.09.2012 bis 25.09.2012 in London

Meine Talks

Web-Site der Konferenz

 
Weitere Konferenzen
von Manfred, 3. Juni 2010 21:52

Als ich gesehen hab', wie gut die Standortbestimmung auch ohne interne Sensoren funktioniert, hab' ich eine Gänsehaut bekommen: Bei Verwendung von Windows 7 besteht die Möglichkeit mittels Sensoren den aktuellen Standort herauszufinden. Wer einen solchen Sensor nicht sein eigen nennt, findet unter http://www.geosenseforwindows.com/ einen softwarebasierten Sensor, welcher Daten, wie die aktuelle IP-Adresse oder Entfernung zu Drahtlosnetzwerken bzw. Mobiltelefonmasten 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 angesprochen werden. Das nachfolgende Listing demonstriert dies. Es 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, welcher dem 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 bool'sche Rückgabewert gibt Aufschluss über den Erfolg der Standortermittlung. Im betrachteten Beispiel werden die ermittelten Geo-Daten 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);
    }
}

 

Kategorien: