2010-04-05 12 views
131

Pracuję nad stroną mobilną, tam mam zintegrowane Mapy Google, muszę dynamicznie wypełniać pole "Od" w Mapach Google.Uzyskaj lokalizację GPS z przeglądarki internetowej

Czy można uzyskać lokalizację GPS z poziomu przeglądarki internetowej i dynamicznie wypełnić pole "Od" na mapie Google?

+2

Co telefonów komórkowych zamierza Pan wspierać? –

+0

Chcę obsługiwać wszystkie przeglądarki mobilne, ale i-phone ma wysoki priorytet – Ganesh

+0

Być może lepiej będzie napisać natywną aplikację, ponieważ pozwoli to na ściślejszą integrację ze sprzętem, gdzie będzie dostępna –

Odpowiedz

3

Istnieje GeoLocation API, ale obsługa przeglądarki jest obecnie dość cienka. Większość witryn, które dbają o takie rzeczy, korzysta z bazy danych GeoIP (z typowymi zastrzeżeniami dotyczącymi niedokładności takiego systemu). Możesz również spojrzeć na usługi stron trzecich wymagające współpracy użytkownika, takie jak FireEagle.

+1

dziękuję za szybką odpowiedź. jeśli to możliwe, czy możesz podać mi kilka wskazówek ... – Ganesh

155

Jeśli używasz Geolocation API, byłoby to tak proste, jak użycie poniższego kodu.

navigator.geolocation.getCurrentPosition(function(location) { 
    console.log(location.coords.latitude); 
    console.log(location.coords.longitude); 
    console.log(location.coords.accuracy); 
}); 

Możesz również być w stanie używać Google's Client Location API.

Ten problem omówiono w artykule Is it possible to detect a mobile browser's GPS location? i Get position data from mobile browser. Możesz tam znaleźć więcej informacji.

+0

Czy interfejs API lokalizacji klienta Google jest nadal używany? Podany link trafia do Google Loader –

+1

Nie widzę go na tej stronie jako jednego z dostępnych interfejsów API. - Możesz korzystać z interfejsu API Google Latitude: http://code.google.com/apis/latitude/ - dzięki temu możesz uzyskać bieżące położenie klienta: http://code.google.com/apis/latitude/v1/using_rest.html # RetrievingCurrent – dochoffiday

+1

Łącze w3c: http://dev.w3.org/geo/api/spec-source.html – surfealokesea

44

Zobacz dyskusję How to get GPS coordinates in the browser

Nie masz link do przykładowej aplikacji Where Am I? który działa na urządzeniach mobilnych. Przetestowałem to na moim Androidzie i uruchomiłem moduł GPS, by uzyskać bieżące współrzędne. Możesz przeanalizować źródło na żywym przykładzie.

Zrobiłem kod QR dla szybkiego dostępu z telefonów komórkowych:

Where Am I QR code

+30

+1 dla kodu QR ... – Asken

+5

że QR uratował mi cały szereg wysiłków – captDaylight

+1

nie działa na moim telefonie z Androidem, nawet gdy GPS + WiFi jest włączone i dozwolone. –

17

Aby nadać nieco bardziej konkretną odpowiedź. HTML5 pozwala uzyskać współrzędne geograficzne i wykonuje całkiem przyzwoitą pracę. Ogólnie obsługa geolokalizacji przeglądarki jest całkiem dobra, wszystkie główne przeglądarki oprócz ie7 i ie8 (i mini opera). IE9 wykonuje zadanie, ale jest najgorszym wykonawcą. Zamówienie caniuse.com:

http://caniuse.com/#search=geol

także trzeba zgody swojej użytkownikowi dostęp do ich lokalizacji, więc upewnij się, że to sprawdzić i dać kilka przyzwoitych instrukcji w przypadku, gdy jest wyłączony. Zwłaszcza dla iPhone'a uprawnienia do włączania dla Safari są nieco uciążliwe.

+1

https://www.w3schools.com/html/html5_geolocation.asp –

+0

http://www.dotnetcurry.com/aspnet-mvc/782/html5-geolocation-aspnet-mvc-part1 to przydatne odniesienie do implementacji w asp .net mvc environment –

5

Użyj tego, a znajdziesz wszystkie informacje na http://www.w3schools.com/html/html5_geolocation.asp

<script> 
var x = document.getElementById("demo"); 
function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 
function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
} 
</script> 
+0

testowane z iphone działa bardzo precyzyjnie (y) –

+1

Po prostu notatka: metody getCurrentPosition() i watchPosition() nie działają już w niepewnych źródłach. Aby korzystać z tej funkcji, należy rozważyć zmianę aplikacji na bezpieczne źródło, takie jak HTTPS. – user2589273

Powiązane problemy