2011-10-10 36 views
10

Có vẻ như điện thoại không sử dụng vệ tinh GPS thay vì định vị địa lý từ mạng di động. Tôi không hài lòng với độ chính xác, luôn từ 150-1000 mét. Biểu trưng hoạt động GPS cũng không được hiển thị.Phonegap Android và GPS satellite

Có cách nào để buộc ứng dụng Android sử dụng vệ tinh GPS ngay cả khi các phương pháp khác có sẵn không? Có cách nào để ghi đè lên chức năng mặc định để kích hoạt tính năng sử dụng GPS không?

Cảm ơn trước

+1

Điều này đã được đặt ở đây http://stackoverflow.com/questions/7518468/phonegap-gps-without-internet – Andy

+2

Bạn đã tìm thấy giải pháp chưa? Điều tương tự đối với tôi với Cordova 3.0.0, Biểu tượng gps không hiển thị ngay cả với enableHighAccuracy: true. – arlg

Trả lời

11

PhoneGap thực sự sử dụng định vị vệ tinh GPS giống như nền tảng Android. Bạn sẽ nhận được vị trí có độ chính xác chính xác hơn 150m nếu GPS của điện thoại được bật. Bất cứ khi nào bạn gọi phương thức geolocation.getCurrentPosition() hoặc geolocation.watchPosition(), lớp GeoListener của PhoneGap yêu cầu nhà cung cấp GPS nhà cung cấp NETWORK, sau đó nó tạo người nghe cho cả hai nhà cung cấp, nếu họ tồn tại. Đây là lý do bạn đang nhận được một loạt các độ chính xác.

Vì vậy, trong trường hợp bạn muốn bắt buộc các vị trí có độ chính xác cao, bạn có thể đặt nó thành đúng trên thông số geolocationOptions được chuyển đến các phương pháp trên. Kiểm tra các API: geolocationOptions

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

Trong trường hợp bạn muốn có quyền kiểm soát nhiều hơn và một hành vi chính xác hơn về vị trí yêu cầu bạn có thể mở rộng API PhoneGap để làm như vậy.

+6

Điều tương tự đối với tôi với Cordova 3.0.0, Biểu tượng gps không hiển thị ngay cả với enableHighAccuracy: true và ứng dụng không nhận được vị trí tốt. – arlg

+1

Cùng một vấn đề, nhà cung cấp GPS dường như bị bỏ qua, chỉ nhà cung cấp mạng mới sử dụng. Nếu tôi tắt nhà cung cấp mạng (GPS bật) thì không thực hiện việc tích cực. PLUS, khi tôi thiết lập lại nhà cung cấp mạng, có vẻ như ứng dụng bỏ qua nó, nó không được phát hiện nữa và tôi phải đóng ứng dụng và khởi động lại nó. – smarques

+0

Tôi gặp vấn đề tương tự với API định vị địa lý và thiết bị Android. Đặt enableHighAccuracy thành true vẫn có vẻ thích vị trí dựa trên mạng hoặc di động hơn. Nếu tôi bật chế độ AIRPLANE, GPS dường như được sử dụng và vị trí thực sự chính xác sẽ được trả lại. Tôi khó có thể mong đợi người dùng của tôi bật chế độ trên máy bay mặc dù sử dụng ứng dụng này, vì vậy tôi vẫn đang tìm kiếm giải pháp. – Fingel

Các vấn đề liên quan