在Windows Phone 7中显示位置可在模拟器中运行,但不能在真实手机上运行

时间:2011-08-01 06:53:11

标签: geolocation bing-maps windows-phone

我有用于显示设备位置的代码。它在模拟器上运行得很好,它将我带到了微软的假位置。但是当我将它构建到手机中时它没有用,它向我展示了世界地图。这是一个已知的错误还是我做错了什么?这是我的代码:

    private GeoCoordinateWatcher loc = null;

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        if (loc == null)
        {
            loc = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
            loc.StatusChanged += loc_StatusChanged;
        }
        if (loc.Status == GeoPositionStatus.Disabled)
        {
            loc.StatusChanged -= loc_StatusChanged;
            MessageBox.Show("Location services must be enabled on your phone.");
            return;
        }
        loc.Start();
    }

    void loc_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
    {

        if (e.Status == GeoPositionStatus.Ready)
        {
            Pushpin p = new Pushpin();
            p.Template = this.Resources["pinMyLoc"] as ControlTemplate;
            p.Location = loc.Position.Location;
            mapControl.Items.Add(p);
            map1.SetView(loc.Position.Location, 17.0);
            loc.Stop();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您应该使用GeoCoordinateWatcher.PositionChanged属性代替使用StatusChanged事件,以反映更改的位置。

答案 1 :(得分:-1)

这是由于我的位置不支持Bing Map。我也无法使用手机中安装的Bing Map应用程序。嗯...