Я создал Windows Приложение формы для наших работ Windows Таблетки (windows 10) для отслеживания местоположения.
Класс, который я создал, находится ниже:
class LocationServices
{
private GeoCoordinateWatcher myWatcher;
private bool fgWatcherStarted = false;
public LocationServices()
{
myWatcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
fgWatcherStarted = myWatcher.TryStart(true, System.TimeSpan.FromMilliseconds(1000));
}
public LatLon GetDeviceLocation()
{
LatLon myReturn = new LatLon();
System.Device.Location.GeoCoordinate myPosition = new System.Device.Location.GeoCoordinate();
try
{
if (!fgWatcherStarted)
{
fgWatcherStarted = myWatcher.TryStart(true, System.TimeSpan.FromMilliseconds(1000));
}
myPosition = myWatcher.Position.Location;
if (myPosition.IsUnknown)
{
myReturn.Latitude = 0;
myReturn.Longitude = 0;
myReturn.strMessage = "Unknown Position";
}
else
{
myReturn.Latitude = myPosition.Latitude;
myReturn.Longitude = myPosition.Longitude;
myReturn.strMessage = myPosition.Course.ToString();
}
}
catch (Exception ex)
{
myReturn.Latitude = 0;
myReturn.Longitude = 0;
myReturn.strMessage = ex.Message.ToString();
}
return myReturn;
}
}
В моем коде я пробегаю каждые несколько секунд и получаю местоположение, вызывая указанный выше класс.
Если Я подключен к Wi-Fi (работает со своего стола), он мгновенно получает местоположение и работает, как и ожидалось, но с устройства он возвращает 0 в течение значительного времени, а затем неожиданно начинает работать и прекрасно работает без проблем.
Могу ли я что-нибудь сделать, чтобы это началось быстрее? Сначала я думал, что это может быть местоположение / сигнал, но я попытался загрузить его в том же месте и оставить его, и как только он инициализируется, он работает отлично, но для загрузки требуются исходные координаты.