在 Windows Phone 7 中显示位置在模拟器中有效,但在真实手机上无效

Posted

技术标签:

【中文标题】在 Windows Phone 7 中显示位置在模拟器中有效,但在真实手机上无效【英文标题】:Showing the location in Windows Phone 7 works in the emulator but not on the real phone 【发布时间】:2011-08-01 06:53:10 【问题描述】:

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

    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();
        
    

【问题讨论】:

【参考方案1】:

您应该使用 GeoCoordinateWatcher.PositionChanged 事件而不是使用 StatusChanged 事件,您应该在其中使用 GeoPositionChangedEventArgs.Position 属性来反映更改的位置。

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于在 Windows Phone 7 中显示位置在模拟器中有效,但在真实手机上无效的主要内容,如果未能解决你的问题,请参考以下文章

在不使用 GPS 的情况下获取大致位置 (Windows Phone 7)

windows phone 8 - 如何在地图上显示经度和纬度坐标(当前位置)

Windows phone 7 - 在 GridView 中重复显示重复的列

从 Windows Phone 7 中的 GeoCoordinateWatcher.StatusChanged 事件返回位置数据

WebView windows phone 8.1

BackgroundWorker UI不会更新Windows Phone 7中的进度