在WP8上使用诺基亚地图可以获得距离我最近的城市吗?

时间:2014-02-11 16:59:53

标签: windows-phone-8 maps reverse-geocoding here-api

我可以在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);

然后GeoCoding:

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)
    {
    }
}

e.Result数组可以包含GeoCoordinates,指向地球上的某些地方并不总是靠近MyCoordinate。

是否可以使用WP8上的诺基亚地图获取距离我最近的城市?

1 个答案:

答案 0 :(得分:1)

您可以使用ReverseGeocodeQuery class从地理坐标中获取和寻址:

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

你得到一个MapAddress类型的对象,它有很多属性,包括city:

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功能。