2014-02-11 35 views
0

我可以在wp8上獲得我的當前位置。然後,我嘗試使用基於該位置的諾基亞地圖進行地理編碼,我總是得到奇怪的結果。他們沒有指向城市或類似的是否有可能使用WP8上的諾基亞地圖獲取距離我最近的城市?

東西我用得到的位置代碼:

Geolocator geolocator = new Geolocator(); 
geolocator.DesiredAccuracyInMeters = 50; 
Geoposition position = await geolocator.GetGeopositionAsync(TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(30)); 
MyCoordinate = new GeoCoordinate(position.Coordinate.Latitude, position.Coordinate.Longitude); 

然後天氣預報

var geoQuery = new GeocodeQuery(); 
geoQuery.SearchTerm = "put city result of reverseGeoding for MyCoordinate"; 
geoQuery.QueryCompleted += geoQuery_QueryCompleted; 
geoQuery.GeoCoordinate = geo; 
geoQuery.QueryAsync(); 

下一頁:

void geoQuery_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e) 
{ 
    if (e.Error == null && e.Result.Count > 0) 
    { 
    } 
} 

即結果數組可能包含指向其他地球的GeoCoordinates,而不總是接近MyCoordinate。

是否可以使用WP8上的諾基亞地圖獲取距離我最近的城市?

回答

1

可以使用ReverseGeocodeQuery class從地理座標獲取和地址:

ReverseGeocodeQuery query = new ReverseGeocodeQuery(); 
query.GeoCoordinate = myGeoCoordinate; 
query.QueryCompleted += query_QueryCompleted; 
query.QueryAsync(); 

你得到MapAddress型,它具有許多特性,包括城市的目標:

void query_QueryCompleted(object sender, QueryCompletedEventArgs<System.Collections.Generic.IList<MapLocation>> e) 
{ 
    if (e.Error != null) 
     return; 

    MapAddress address = e.Result[0].Information.Address; 
    string city = address.City; 
} 

爲了要使用此API,您必須在WMAppManifest.xml文件中指定ID_CAP_MAP功能。

相關問題