2011-10-10 16 views
10

Wygląda na to, że phonegap nie korzysta z satelity GPS zamiast geolokalizacji z sieci komórkowej. Nie jestem zadowolony z dokładności, zawsze pomiędzy 150-1000 metrów. Logo aktywności GPS również nie jest wyświetlane.Phonegap Android i satelita GPS

Czy istnieje sposób zmuszenia aplikacji na Androida do korzystania z satelitów GPS, nawet jeśli dostępne są inne metody? Czy istnieje sposób na zastąpienie domyślnej funkcji aktywacji korzystania z GPS SAT?

góry dzięki

+1

To zostało zgłoszone tutaj http://stackoverflow.com/questions/7518468/phonegap-gps-without-internet – Andy

+2

Znalazłeś rozwiązanie? To samo dla mnie z Cordova 3.0.0, Ikona GPS nie wyświetla się nawet przy enableHighAccuracy: true. – arlg

Odpowiedz

11

PhoneGap rzeczywiście wykorzystuje GPS geolokalizacji satelitarnej podobnie jak platforma Android robi. Powinieneś otrzymywać lokalizacje z dokładnością mniejszą niż 150m, jeśli włączony jest GPS twojego telefonu. Za każdym razem, gdy wywołujesz metody geolocation.getCurrentPosition() lub geolocation.watchPosition(), klasa PhoneGap podaje GeoListener prosi o dostawcę GPS i dostawcę NETWORK, a następnie tworzy detektor dla obu dostawców, jeśli istnieją. Z tego powodu uzyskujesz szeroki zakres dokładności.

Jeśli chcesz wymusić lokalizację o wysokiej dokładności, możesz ustawić wartość true na parametrze geolocationOptions przekazanym do powyższych metod. Sprawdź API: geolocationOptions

navigator.geolocation.watchPosition(
    onSuccess, onError, 
    { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }); 

W przypadku, gdy chcesz mieć większą kontrolę i bardziej dokładne zachowanie położenia żąda można rozszerzyć PhoneGap API to zrobić.

+6

To samo dla mnie z Cordova 3.0.0, Ikona GPS nie wyświetla się nawet z enableHighAccuracy: true, a aplikacja nie otrzymuje dobrej pozycji. – arlg

+1

Ten sam problem, dostawca GPS wydaje się ignorowany, korzysta tylko dostawca sieci. W przypadku wyłączenia operatora sieci (GPS włączony) nie jest wykonywane żadne ładowanie. PLUS, gdy ustawiam dostawcę sieci z powrotem, wygląda na to, że aplikacja ignoruje go, nie jest już wykrywana i muszę zamknąć aplikację i zrestartować ją. – smarques

+0

Mam ten sam problem z interfejsem API geolokalizacji i urządzeniem z Androidem. Ustawienie enableHighAccuracy na true nadal wydaje się preferować lokalizację opartą na komórce lub sieci. Jeśli włączę TRYB SAMOLOTU, wydaje się, że GPS jest używany i zwracana jest prawdziwie dokładna lokalizacja. Nie mogę oczekiwać, że moi użytkownicy włączą tryb samolotowy, aby móc korzystać z tej aplikacji, więc wciąż szukam rozwiązania. – Fingel