我們正在開發一款使用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的部分代碼。 –