Какие есть способы получить долготу и широту устройства в C#? Я пробовал с помощью GeoCoordinateWatcher, но тщетно. Делал всё как по книжке, но в итоге функция GetGeolocation возвращает мне объект Geolocation с нулевыми Latitude и Longtitude.
public class Geolocation
{
public static Geolocation GetGeolocation()
{
Geolocation res = new Geolocation();
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();
watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));
if (!watcher.Position.Location.IsUnknown)
{
res.Latitude = watcher.Position.Location.Latitude;
res.Longtitude = watcher.Position.Location.Longitude;
}
return res;
}
public double Latitude { get; private set; }
public double Longtitude { get; private set; }
}
Вот теперь может вы мне подскажите что я делаю не так, или же альтернативные способы получить геоданные?
Ваш код работает, просто ему не хватает времени для определения локации.
Я скопировал ваш код, добавил вот такой вызов
bool exit = false;
int count = 0;
while (!exit)
{
var loc = Geolocation.GetGeolocation();
if (loc.Latitude>0)
{
exit = true;
}
count++;
}
Иногда срабатывает с первого раза, иногда с 6-9. Попробуйте увеличить таймаут. При увеличении его до 10000 мс срабатывает с первого раза. У меня.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости