【发布时间】:2015-09-25 15:19:38
【问题描述】:
我们正在使用针对 windows 8.1 的 VS 2012 Windows 应用程序开发跟踪应用程序。
我们正在使用 GeoCoordinateWatcher 类。出于某种原因,如果第一个修复来自 wifi,然后您关闭了 wifi,则应用程序无法获得卫星修复(观察者状态一直不返回任何数据)。它只能看到wifi位置。
如果第一个修复来自 GPS 卫星,似乎会出现同样的问题。
不确定这是硬件问题还是软件问题...但我需要观察者根据可用性使用这两种来源。
感谢您对此问题的任何见解。
以下是负责捕获 GPS 的代码部分。它调用了一个每 XX 工作一次的计时器。
private string SendingData()
{
try
{
DataXML = "";
string result = "";
Write_Trace_File("SendingData: Watcher Status: " + watcher.Status.ToString());
if (watcher.Status != GeoPositionStatus.Ready)
{
try
{
watcher.TryStart(true,TimeSpan.FromSeconds(10));
}
catch (Exception exp)
{
Write_Trace_File(exp.Message);
}
}
string cur_long = "";
string cur_lat = "";
string cur_speed = "";
if (watcher.Position.Location.IsUnknown)
{
Write_Trace_File("SendingData: GPS not captured yet.");
if (currlatitude.ToString() != "0.0" && currlatitude.ToString() != "" && currlatitude.ToString() != "0")
{
Write_Trace_File("SendingData:Using Cached GPS.GPS last captured at" + lastPosDate);
cur_long = currlongtitude.ToString();
cur_lat = currlatitude.ToString();
if (speed.ToString() != "0")
{
cur_speed = speed.ToString();
}
}
else
{
Write_Trace_File("SendingData:No Cached GPS.");
return "";
}
}
else
{
Write_Trace_File("SendingData:Using Captured GPS.");
cur_long = watcher.Position.Location.Longitude.ToString();
cur_lat = watcher.Position.Location.Latitude.ToString();
cur_speed = watcher.Position.Location.Speed.ToString();
}
}
【问题讨论】:
-
这是一个非常广泛的问题,有任何代码吗?
-
刚刚添加了负责获取GPS的代码部分。