5

Sto cercando di ottenere la CivicAddress da un Geoposizione in Windows Phone 8.1Ottenere CivicAddress su Windows Phone 8.1

Ho provato con il seguente codice:

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

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

che getta NullReferenceException come il CivicAddress il campo è nullo. Comprendo che un provider di CivicAddress non è fornito per Windows 8. Vorrei verificare se questo è il caso di Windows Phone 8.1 Se sì, come posso ottenere/scrivere un provider CivicAddress?

risposta

14

sarà necessario utilizzare ReverseGeocoding per questo - qualche informazione in più at MSDN.

Per quanto riguarda finestre runtime è possibile ad esempio utilizzare MapLocationFinder.FindLocationsAtAsync per questo scopo:

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

GRAZIE! Ho cercato un po 'per la soluzione WinRT. Questo funziona. –

+0

@ScottNimrod Siete i benvenuti. Sono contento che abbia aiutato. – Romasz

+1

Qui non è necessario creare una nuova posizione di base di BasicGeoposition, è possibile utilizzare direttamente position.Coordinate.Point come parametro per MapLocationFinder.FindLocationsAtAsync(); – vITs

2

Se si desidera ottenere l'indirizzo per una posizione, poi vorrei suggerire di usare ReverseGeocodeQuery API con la posizione che si ottiene con l'API Geolocator, per l'implementazione di riferimento Io ho un esempio disponibile presso github qui https://github.com/nokia-developer/maps-samples/tree/master/RevGeoCoding

altro si potrebbe anche provare questo per ottenere l'indirizzo civico da GeoCoordinates http://msdn.microsoft.com/en-us/library/system.device.location.civicaddress(v=vs.110).aspx