如何在Windows Phone中将经度和纬度值转换为地址?

时间:2013-09-04 12:15:14

标签: windows-phone-8 geolocation gps

我使用

获取纬度和经度值
 void _watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
    {


            latitude = e.Position.Location.Latitude;
            longitude = e.Position.Location.Longitude;
            MessageBox.Show("Latitude & Longitude:" + latitude + "  " + longitude);
    }

结果如下: 纬度和经度:12.56 77.34

现在我希望这些价值到相关地址。可能吗。请简要说明一下。提前致谢。

2 个答案:

答案 0 :(得分:3)

首先,你的问题不明确,我认为你的要求来自这个lat / long你需要获取相应的地址。为此,您可以使用Bing服务,Bing提供了几个支持相同的API。在您的情况下,您可以使用以下API

http://dev.virtualearth.net/REST/v1/Locations/47.64324%2c-122.14197?includeEntityTypes=Address,Postcode1,AdminDivision1,AdminDivision2&key={Bing Map Key}&o=json

由此47.64和-122.11是我的样本地理编码,为了实现完整的功能,您需要创建一个Bing Map键(here is the link for your reference

创建密钥后,在{Bing Map Key}区域使用它。没有括号。然后一个简单的http GET方法将解决您的问题。

                                      OR

只需你可以使用,

   var query = new ReverseGeocodeQuery {GeoCoordinate = new GeoCoordinate(12.56, 77.34)};
   query.QueryCompleted += (s, e) =>
   {
           if(e.Error != null)
                return;

           var  address = e.Result[0].Information.Address.Street;
    };
    query.QueryAsync();

答案 1 :(得分:1)

Windows Phone 8 中,您可以使用集成的ReverseGeocodeQuery类轻松完成。例如:

string address;
ReverseGeocodeQuery query = new ReverseGeocodeQuery();
query.GeoCoordinate = new GeoCoordinate(12.56, 77.34);
query.QueryCompleted += (s, e) =>
   {
        if (e.Error != null)
            return;

        address = e.Result[0].Information.Address.Street;
    };
query.QueryAsync();

就这么简单。

但是,对于 Windows Phone 7 ,您需要使用Bing services