API geolokalizacji HTML
API geolokalizacji HTML służy do lokalizowania pozycji użytkownika.
Znajdź pozycję użytkownika
API geolokalizacji HTML służy do uzyskania położenia geograficznego użytkownika.
Ponieważ może to narazić prywatność, pozycja nie jest dostępna, chyba że użytkownik ją zatwierdzi.
Uwaga: Geolokalizacja jest najdokładniejsza dla urządzeń z GPS, takich jak smartfony.
Obsługa przeglądarki
Liczby w tabeli określają pierwszą wersję przeglądarki, która w pełni obsługuje geolokalizację.
API | |||||
---|---|---|---|---|---|
Geolocation | 5.0 - 49.0 (http) 50.0 (https) |
9.0 | 3.5 | 5.0 | 16.0 |
Uwaga: od Chrome 50 interfejs API geolokalizacji będzie działał tylko w bezpiecznych kontekstach, takich jak HTTPS. Jeśli Twoja witryna jest hostowana w niezabezpieczonym źródle (takim jak HTTP), żądania uzyskania lokalizacji użytkownika przestaną działać.
Korzystanie z geolokalizacji HTML
Metoda getCurrentPosition()
służy do zwrócenia pozycji użytkownika.
Poniższy przykład zwraca szerokość i długość geograficzną pozycji użytkownika:
Przykład
<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>
Przykład wyjaśniony:
- Sprawdź, czy Geolokalizacja jest obsługiwana
- Jeśli jest obsługiwana, uruchom metodę getCurrentPosition(). Jeśli nie, wyświetl wiadomość dla użytkownika
- Jeśli metoda getCurrentPosition() powiedzie się, zwraca obiekt współrzędnych do funkcji określonej w parametrze (showPosition)
- Funkcja showPosition() zwraca szerokość i długość geograficzną
Powyższy przykład to bardzo prosty skrypt geolokalizacji, bez obsługi błędów.
Obsługa błędów i odrzuceń
Drugi parametr getCurrentPosition()
metody służy do obsługi błędów. Określa funkcję do uruchomienia, jeśli nie uda się uzyskać lokalizacji użytkownika:
Przykład
function showError(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
Informacje specyficzne dla lokalizacji
Na tej stronie pokazano, jak pokazać pozycję użytkownika na mapie.
Geolokalizacja jest również bardzo przydatna w przypadku informacji dotyczących lokalizacji, takich jak:
- Aktualne informacje lokalne
- Pokazywanie interesujących miejsc w pobliżu użytkownika
- Szczegółowa nawigacja (GPS)
Metoda getCurrentPosition() — Zwróć dane
Metoda getCurrentPosition()
zwraca obiekt w przypadku powodzenia. Zawsze zwracane są właściwości szerokości, długości i dokładności. Inne właściwości są zwracane, jeśli są dostępne:
Property | Returns |
---|---|
coords.latitude | The latitude as a decimal number (always returned) |
coords.longitude | The longitude as a decimal number (always returned) |
coords.accuracy | The accuracy of position (always returned) |
coords.altitude | The altitude in meters above the mean sea level (returned if available) |
coords.altitudeAccuracy | The altitude accuracy of position (returned if available) |
coords.heading | The heading as degrees clockwise from North (returned if available) |
coords.speed | The speed in meters per second (returned if available) |
timestamp | The date/time of the response (returned if available) |
Obiekt geolokalizacji - Inne ciekawe metody
Obiekt Geolokalizacja posiada również inne ciekawe metody:
watchPosition()
- Zwraca bieżącą pozycję użytkownika i kontynuuje zwracanie zaktualizowanej pozycji, gdy użytkownik się porusza (jak GPS w samochodzie).clearWatch()
- ZatrzymujewatchPosition()
metodę.
Poniższy przykład przedstawia watchPosition()
metodę. Aby to przetestować, potrzebujesz dokładnego urządzenia GPS (takiego jak smartfon):
Przykład
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.watchPosition(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>