Mam problem z funkcją geolokacji HTML5. Używam poniższego kodu, aby pobrać dane o lokalizacji. Używam opcji "enableHighAccuracy: false" do pracy z funkcją GPS opartą na komórce. Dokładność jest niska, ale reakcja jest zbyt szybka. Ale niektórzy ludzie zawsze używają wbudowanego GPS z ich telefonu komórkowego, więc ten kod nie działa dla nich. Bu, jeśli zmienię opcję accurency jako "enableHighAccuracy: true" to działa dla nich. Ale tym razem kod wykorzystuje tylko wbudowany GPS. GPS nie jest oparty na CELL.Geolokacja HTML5 enableHighAccuracy Prawdziwa, fałszywa lub najlepsza opcja?
Pytanie -> Jak to zrobić: Najpierw spróbuj uzyskać pozycję z wbudowanego GPS z limitem czasu (np. 5000ms), jeśli pozycja nie może zostać uzyskana w tym czasie, po prostu znajdź pozycję opartą na komórce dla limitu czasu (np. 10000ms) jeśli nie można uzyskać pozycji w tym czasie, zwróć komunikat o błędzie.
Oto kod, którego teraz używam.
Z góry dziękuję.
function getLocationfromGoogle() {
navigator.geolocation.getCurrentPosition(
function(pos) {
$("#lat_field").val(pos.coords.latitude);
$("#long_field").val(pos.coords.longitude);
var geocoder = new google.maps.Geocoder();
var latLng = new google.maps.LatLng(pos.coords.latitude,pos.coords.longitude);
geocoder.geocode({ 'latLng': latLng}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
//console.log(results[0].formatted_address);
$("#adresim").val(results[0].formatted_address);
}
else {
alert('Google convertion is not succesfully done.');
}
});
},function error(msg){
alert('Please enable your GPS position future.');
},{maximumAge:600000, timeout:5000, enableHighAccuracy: false}
);
}
Witam Kevin.Thanks za odpowiedź. Tak, przetestowałem to z moim Androidem 2.3 to działa. Również w Firefox i Chrome. to działa. –
Testowałem dla Androida 4.1 na FF i Chrome i nie działałem wcale w żadnym z nich – Andrade
http://jsfiddle.net/CvSW4/761/ zastąpiony obiekt położenia z obiektem błędu w obsłudze błędów – Devz