5

Ich versuche, die CivicAddress von einer Geoposition in Windows Phone 8.1Erste CivicAddress auf Windows Phone 8.1

ich den folgenden Code verwendet haben, zu erhalten versucht:

// Get Current Location 
var geolocator = new Geolocator(); 
geolocator.DesiredAccuracyInMeters = 100; 
var position = await geolocator.GetGeopositionAsync(); 

// Get Country 
var country = position.CivicAddress.Country; 

die Nullreferenceexception als CivicAddress wirft Feld ist null. Ich verstehe, dass ein CivicAddress-Provider für Windows 8 nicht zur Verfügung gestellt wird. Ich möchte prüfen, ob dies für Windows Phone 8.1 der Fall ist. Wenn ja, wie kann ich einen CivicAddress-Provider erhalten/schreiben?

Antwort

14

Sie müssen verwenden Inverse Geokodierung dafür zu bekommen - mehr Informationen at MSDN.

Was Fenster Runtime Sie zum Beispiel MapLocationFinder.FindLocationsAtAsync für diesen Zweck verwenden können:

var geolocator = new Geolocator(); 
geolocator.DesiredAccuracyInMeters = 100; 
Geoposition position = await geolocator.GetGeopositionAsync(); 

// reverse geocoding 
BasicGeoposition myLocation = new BasicGeoposition 
    { 
     Longitude = position.Coordinate.Longitude, 
     Latitude = position.Coordinate.Latitude 
    }; 
Geopoint pointToReverseGeocode = new Geopoint(myLocation); 

MapLocationFinderResult result = await MapLocationFinder.FindLocationsAtAsync(pointToReverseGeocode); 

// here also it should be checked if there result isn't null and what to do in such a case 
string country = result.Locations[0].Address.Country; 
+0

DANKE! Ich habe eine Weile nach der WinRT-Lösung gesucht. Das funktioniert einfach. –

+0

@ScottNimrod Gern geschehen. Ich bin froh, dass es geholfen hat. – Romasz

+1

Hier muss keine neue BasicGeoposition myLocation erstellt werden, sondern kann direkt position.Coordinate.Point als Parameter für MapLocationFinder.FindLocationsAtAsync(); – vITs

2

Wenn Sie Adresse für eine Position bekommen wollen, dann würde ich vorschlagen, verwenden Sie ReverseGeocodeQuery API mit der Position, die Sie mit dem Geolocator API bekommen, für Referenzimplementierung habe ich ein Beispiel bei Github verfügbar hier https://github.com/nokia-developer/maps-samples/tree/master/RevGeoCoding

sonst Sie könnten versuchen, diese auch Bürger Adresse von Geokoordinaten http://msdn.microsoft.com/en-us/library/system.device.location.civicaddress(v=vs.110).aspx

Verwandte Themen