HTML -zelfstudie

HTML HOME HTML-introductie HTML-editors HTML basis HTML-elementen HTML-kenmerken HTML-koppen HTML-alinea's HTML-stijlen HTML-opmaak HTML-citaten HTML-opmerkingen HTML-kleuren HTML-CSS HTML-links HTML-afbeeldingen HTML-favicon HTML-tabellen HTML-lijsten HTML-blok en inline HTML-klassen HTML-ID HTML-iframes HTML-JavaScript Paden voor HTML-bestanden HTML-kop HTML-indeling HTML-responsief HTML-computercode HTML-semantiek HTML-stijlgids HTML-entiteiten HTML-symbolen HTML-emoji's HTML-tekenset HTML-URL-codering HTML versus XHTML

HTML -formulieren

HTML-formulieren HTML-formulierkenmerken HTML-formulierelementen HTML-invoertypen HTML-invoerkenmerken Kenmerken HTML-invoerformulier

HTML -afbeeldingen

HTML-canvas HTML-SVG

HTML- media

HTML-media HTML-video HTML-audio HTML-plug-ins HTML-YouTube

HTML API's

HTML-geolocatie HTML slepen/neerzetten HTML-webopslag HTML-webwerkers HTML-SSE

HTML- voorbeelden

HTML-voorbeelden HTML-quiz HTML-oefeningen HTML-certificaat HTML-samenvatting HTML-toegankelijkheid

HTML- verwijzingen

HTML-taglijst HTML-kenmerken Algemene HTML-kenmerken Ondersteuning voor HTML-browser HTML-gebeurtenissen HTML-kleuren HTML-canvas HTML-audio/video HTML-documenttypen HTML-tekensets HTML-URL-codering HTML-taalcodes HTTP-berichten HTTP-methoden PX naar EM-omzetter Toetsenbord sneltoetsen

HTML Geolocatie-API


De HTML Geolocation API wordt gebruikt om de positie van een gebruiker te lokaliseren.


Lokaliseer de positie van de gebruiker

De HTML Geolocation API wordt gebruikt om de geografische positie van een gebruiker te krijgen.

Aangezien dit de privacy in gevaar kan brengen, is de positie niet beschikbaar tenzij de gebruiker deze goedkeurt.

Opmerking: Geolocatie is het meest nauwkeurig voor apparaten met GPS, zoals smartphones.


Browserondersteuning

De getallen in de tabel geven de eerste browserversie aan die Geolocatie volledig ondersteunt.

API
Geolocation 5.0 - 49.0 (http)
50.0 (https)
9.0 3.5 5.0 16.0

Opmerking: vanaf Chrome 50 werkt de Geolocation API alleen in beveiligde contexten zoals HTTPS. Als uw site wordt gehost op een niet-beveiligde oorsprong (zoals HTTP), werken de verzoeken om de locatie van de gebruiker te verkrijgen niet langer.


HTML-geolocatie gebruiken

De getCurrentPosition()methode wordt gebruikt om de positie van de gebruiker te retourneren.

Het onderstaande voorbeeld retourneert de breedte- en lengtegraad van de positie van de gebruiker:

Voorbeeld

<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>

Voorbeeld uitgelegd:

  • Controleer of geolocatie wordt ondersteund
  • Voer, indien ondersteund, de methode getCurrentPosition() uit. Zo niet, laat dan een bericht zien aan de gebruiker
  • Als de methode getCurrentPosition() succesvol is, retourneert deze een coördinatenobject naar de functie die is opgegeven in de parameter (showPosition)
  • De functie showPosition() geeft de breedte- en lengtegraad weer

Het bovenstaande voorbeeld is een heel eenvoudig Geolocatie-script, zonder foutafhandeling.



Omgaan met fouten en afwijzingen

De tweede parameter van de getCurrentPosition()methode wordt gebruikt om fouten af ​​te handelen. Het specificeert een functie die moet worden uitgevoerd als de locatie van de gebruiker niet wordt opgehaald:

Voorbeeld

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;
  }
}

Locatiespecifieke informatie

Deze pagina heeft laten zien hoe u de positie van een gebruiker op een kaart kunt weergeven.

Geolocatie is ook erg handig voor locatiespecifieke informatie, zoals:

  • Actuele lokale informatie
  • Nuttige plaatsen in de buurt van de gebruiker weergeven
  • Turn-by-turn navigatie (GPS)

De methode getCurrentPosition() - Gegevens retourneren

De getCurrentPosition()methode retourneert een object bij succes. De eigenschappen voor breedtegraad, lengtegraad en nauwkeurigheid worden altijd geretourneerd. De andere eigenschappen worden geretourneerd indien beschikbaar:

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)

Geolocatie-object - Andere interessante methoden

Het object Geolocation heeft ook andere interessante methoden:

  • watchPosition()- Geeft de huidige positie van de gebruiker terug en blijft de bijgewerkte positie retourneren terwijl de gebruiker beweegt (zoals de GPS in een auto).
  • clearWatch()- Stopt de watchPosition()methode.

Het onderstaande voorbeeld toont de watchPosition()methode. Je hebt een nauwkeurig GPS-apparaat nodig om dit te testen (zoals een smartphone):

Voorbeeld

<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>