Windows Phone 8中GeoCoordinates的位置详细信息

时间:2012-12-05 10:18:45

标签: windows-phone-8

  

可能重复:
  How to get Address name of GPS coordinate with wp7

我正在开发一个WP8应用程序。在我的应用程序中,我想从其地理坐标中获取特定位置的详细信息,例如位置名称。我可以获得设备当前的GPS位置。但它只给出了地理坐标。是否有任何服务可以提供地理坐标的位置详细信息。请帮帮我。

2 个答案:

答案 0 :(得分:6)

您正在寻找的是反向地理编码。将Geocoordinate转换为地址。

如前所述,您可以在WP7上使用Google和Bing来实现这一目标。在Windows Phone 8上支持地理编码和反向地理编码作为框架的一部分。您可以阅读GeoCoding at this Nokia intro article概述(在“地理编码”下)和更全面的概述at this other Nokia article

以下是反向地理编码从坐标转换为地址的示例:

private void Maps_ReverseGeoCoding(object sender, RoutedEventArgs e)
{
    ReverseGeocodeQuery query = new ReverseGeocodeQuery()
    {
        GeoCoordinate = new GeoCoordinate(37.7951799798757, -122.393819969147)
    };
    query.QueryCompleted += query_QueryCompleted;
    query.QueryAsync();
}

void query_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e)
{
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("Ferry Building Geocoding results...");
    foreach (var item in e.Result)
    {
        sb.AppendLine(item.GeoCoordinate.ToString());
        sb.AppendLine(item.Information.Name);
        sb.AppendLine(item.Information.Description);
        sb.AppendLine(item.Information.Address.BuildingFloor);
        sb.AppendLine(item.Information.Address.BuildingName);
        sb.AppendLine(item.Information.Address.BuildingRoom);
        sb.AppendLine(item.Information.Address.BuildingZone);
        sb.AppendLine(item.Information.Address.City);
        sb.AppendLine(item.Information.Address.Continent);
        sb.AppendLine(item.Information.Address.Country);
        sb.AppendLine(item.Information.Address.CountryCode);
        sb.AppendLine(item.Information.Address.County);
        sb.AppendLine(item.Information.Address.District);
        sb.AppendLine(item.Information.Address.HouseNumber);
        sb.AppendLine(item.Information.Address.Neighborhood);
        sb.AppendLine(item.Information.Address.PostalCode);
        sb.AppendLine(item.Information.Address.Province);
        sb.AppendLine(item.Information.Address.State);
        sb.AppendLine(item.Information.Address.StateCode);
        sb.AppendLine(item.Information.Address.Street);
        sb.AppendLine(item.Information.Address.Township);
    }
    MessageBox.Show(sb.ToString());
}

当我在WP8上运行此代码段时,我得到以下消息框:

MEssageBox showing details for the ferry building

答案 1 :(得分:2)

是的,您可以使用bing API获取具体的位置详细信息。 http://msdn.microsoft.com/en-us/library/ff701722.aspx http://stackoverflow.com/questions/9109996/getting-location-name-from-longitude-and-latitude-in-bingmap

希望帮助。

开尔文