我们正在开发一款使用VS 2012 Windows应用程序定位Windows 8.1的跟踪应用程序。GPS坚持单一来源
我们正在使用GeoCoordinateWatcher类。出于某种原因,似乎如果第一次修复是从一个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的部分代码。 –