繁体   English   中英

Windows Phone 8 Geolocator异常

[英]Windows phone 8 Geolocator Exception

嗨,我是WP开发的新手。 我想找到用户当前的邮政编码或邮政编码。 所以我有以下代码。 问题是这行d.zip = position.CivicAddress.PostalCode; 总是给对象引用未设置为对象异常的实例。但是我能够很好地获得纬度和经度。 我也尝试过position.CivicAddresss.City,但仍然是相同的例外。 请帮忙。

  async void Button_Click_1(object sender, RoutedEventArgs e)
           {
               Data d = new Data();
               Geolocator locator = new Geolocator();
               try
               {
                   Geoposition position = await locator.GetGeopositionAsync();
                   d.zip = position.CivicAddress.PostalCode;
                   d.Latitude = position.Coordinate.Latitude;
                   d.Longitude = position.Coordinate.Longitude;
                   MessageBox.Show(d.zip);
               }
               catch (Exception ex)
               {
                   MessageBox.Show(ex.Message);
               }
           }

    public class Data
    {
        public string zip { get; set; }
        public double Latitude { get; set; }
        public double Longitude { get; set; }
    }

我相信GeoPosition.CivicAddress已弃用。 您需要使用MapLocationFinder来获取地址信息。

async void Button_Click_1(object sender, RoutedEventArgs e)
{
    Data d = new Data();
    Geolocator locator = new Geolocator();
    try
    {
        Geoposition position = await locator.GetGeopositionAsync();

        // Get address data with MapLocationFinder
        var result = await MapLocationFinder.FindLocationsAtAsync(position.Coordinate.Point);
        if (result.Status == MapLocationFinderStatus.Success)
        {
            var address = result.Locations[0].Address;
            var zip = address.PostCode;
            d.zip = zip;
        }

        // These are deprecated as well. 
        // Use position.Coordinate.Point.Position.Latitude and
        // position.Coordinate.Point.Position.Longitude

        d.Latitude = position.Coordinate.Latitude;
        d.Longitude = position.Coordinate.Longitude;
        MessageBox.Show(d.zip);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

public class Data
{
    public string zip { get; set; }
    public double Latitude { get; set; }
    public double Longitude { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM