0

我正在开发一个 Windows 手机运动追踪器应用程序,它使用 gps 传感器来计算跑步者所经过的距离,我使用 geocoordinatewatcher 类,将运动阈值设置为 100。但是,我发现我的应用程序即使在设备保持静止。只有当设备改变位置时,我的应用才应该给出距离。我在市场上的其他应用程序中发现了相同的错误,请告诉我我哪里做错了?
我的代码。

  watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
                    watcher.MovementThreshold = 150;
                    watcher.PositionChanged += watcher_PositionChanged;
                    watcher.Start();
 {
            latitudeCurrent = e.Position.Location.Latitude;
            longitudeCurrent = e.Position.Location.Longitude;
            if (stepCounter == 0)
            {
                latitudePrevious = latitudeCurrent;
                longitudePrevious = longitudeCurrent;
                distanceTravelled += Math.Round(Calculate(latitudePrevious,longitudePrevious,latitudeCurrent,longitudeCurrent),2);
                txbDistanceTravelled.Text = distanceTravelled.ToString();
                txbCalories.Text=string.Format("{0:f0}", distanceTravelled * 65);
                stepCounter++;
                var millisPerKilometer = (distanceTravelled) * (System.Environment.TickCount - _previousPositionChangeTick);
                txbPace.Text = TimeSpan.FromMilliseconds(millisPerKilometer).ToString(@"mm\:ss");
                double hrs = counterTick / 3600;
                if (!double.IsNaN((distanceTravelled / hrs)))
                {
                    txbSpeed.Text = (distanceTravelled / hrs).ToString();
                }
                else
                {
                    txbSpeed.Text = "0";
                }
}
}
4

2 回答 2

0

您正在为 Windows Phone 7 或 Windows Phone 8 开发应用程序?如果您正在为后者进行开发,则需要使用新的 Geolocator 类而不是 GeoCoordinateWatcher。

此外,正如 LewisBenge 所说,如果你在室内测试这个,你可以获得 WiFi 位置甚至蜂窝数据。最好在户外测试。

于 2013-08-26T07:58:51.453 回答
0

在您进行测试的地方,您的 GPS 信号可能较弱。尝试在户外位置。

于 2013-08-31T09:27:20.560 回答