Moja aplikacja Wp7 (Mango) musi znać lokalizację użytkownika, aby wyszukać najbliższy obiekt w bazie danych. Ale chcę wyświetlić wynik na ekranie powitalnym, więc potrzebuję mojej lokalizacji JAK NAJSZYBCIEJ. Napisałem kod, który uruchamia GeoCoordinateWatcher
(z wysoką precyzją i minimalnym progiem), a przy pierwszym uruchomieniu zatrzymuje go i wysyła lokalizację do usługi sieciowej, która zwraca dany obiekt.
Po przetestowaniu poszedłem go zaprezentować na drugą stronę miasta. Zacząłem i ku uciesze wszystkich pokazał zupełnie błędny wynik - wiem dlaczego: wciąż myślał, że jestem w domu!
Jak długo trwa aktualizacja GPS? Skąd będę wiedzieć, że wreszcie uzyskałem swoją aktualną lokalizację? Ile razy powinienem pozwolić GeoCoordinateWatcher
na odpalenie przed jego zatrzymaniem?
2 odpowiedzi
Sprawdź odpowiedź tutaj:
http://awkwardcoder.blogspot.com/2011/09/geo-location-on-wp7-dont-trust-first.html
Zasadniczo proś o aktualizacje, dopóki jedna z nich nie znajdzie się w zakresie od momentu, w którym zacząłeś o nie prosić.
in PositionChanged
if ( (DateTime.Now - e.Position.TimeStamp.DateTime) < LocationTimeout)
{
//recent enough.
}
Masz StatusChanged
zdarzenie do obsługi, takie jak stara lokalizacja użytkownika (w domu). Gdy stan urządzenia jest gotowy - masz aktualną lokalizację (ale może być niedokładna). Więc użyj HorizontalAccuracy
, jeśli potrzebujesz wysokiej precyzji pozycji ;)
Podobne pytania
Nowe pytania
.net
NIE używaj w przypadku pytań dotyczących .NET Core - zamiast tego użyj [.net-core]. Platforma .NET to struktura oprogramowania zaprojektowana głównie dla systemu operacyjnego Microsoft Windows. Obejmuje implementację biblioteki klas podstawowych, środowiska uruchomieniowego języka wspólnego (powszechnie określanego jako CLR), systemu typu wspólnego (powszechnie określanego jako CTS) i środowiska wykonawczego języka dynamicznego. Obsługuje wiele języków programowania, w tym C #, VB.NET, F # i C ++ / CLI.