Zoeken…


Syntaxis

  • navigator.geolocation.getCurrentPosition ( successFunc , failureFunc )
  • navigator.geolocation.watchPosition ( updateFunc , failureFunc )
  • navigator.geolocation.clearWatch ( watchId )

Opmerkingen

De Geolocation API doet wat u zou verwachten: informatie ophalen over de verblijfplaats van de klant, weergegeven in lengte- en breedtegraad. Het is echter aan de gebruiker om ermee in te stemmen zijn locatie weg te geven.

Deze API is gedefinieerd in de W3C Geolocation API Specification . Functies voor het verkrijgen van openbare adressen en om geofencing / triggering van evenementen mogelijk te maken, zijn onderzocht, maar worden niet algemeen toegepast.

Controleren of de browser de Geolocation API ondersteunt:

if(navigator.geolocation){
    // Horray! Support!
} else {
    // No support...
}

Verkrijg de lengte- en breedtegraad van een gebruiker

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationFailure);
} else {
  console.log("Geolocation is not supported by this browser.");
}

// Function that will be called if the query succeeds
var geolocationSuccess = function(pos) {
  console.log("Your location is " + pos.coords.latitude + "°, " + pos.coords.longitude + "°.");
};

// Function that will be called if the query fails
var geolocationFailure = function(err) {
  console.log("ERROR (" + err.code + "): " + err.message);
};

Meer beschrijvende foutcodes

In het geval dat geolocatie mislukt, ontvangt uw callback-functie een PositionError object. Het object bevat een attribuut met de naam code met de waarde 1 , 2 of 3 . Elk van deze nummers betekent een ander soort fout; de functie getErrorCode() hieronder neemt de PositionError.code als het enige argument en retourneert een tekenreeks met de naam van de opgetreden fout.

var getErrorCode = function(err) {
  switch (err.code) {
    case err.PERMISSION_DENIED:
      return "PERMISSION_DENIED";
    case err.POSITION_UNAVAILABLE:
      return "POSITION_UNAVAILABLE";
    case err.TIMEOUT:
      return "TIMEOUT";
    default:
      return "UNKNOWN_ERROR";
  }
};

Het kan als volgt worden gebruikt in geolocationFailure() :

var geolocationFailure = function(err) {
  console.log("ERROR (" + getErrorCode(err) + "): " + err.message);
};

Ontvang updates wanneer de locatie van een gebruiker verandert

U kunt ook regelmatig updates van de locatie van de gebruiker ontvangen; bijvoorbeeld wanneer ze rondlopen terwijl ze een mobiel apparaat gebruiken. Locatietracking in de loop van de tijd kan erg gevoelig zijn, dus leg de gebruiker van tevoren uit waarom u deze toestemming aanvraagt en hoe u de gegevens gebruikt.

if (navigator.geolocation) {
    //after the user indicates that they want to turn on continuous location-tracking
    var watchId = navigator.geolocation.watchPosition(updateLocation, geolocationFailure);
} else {
    console.log("Geolocation is not supported by this browser.");
}

var updateLocation = function(position) {
    console.log("New position at: " + position.coords.latitude + ", " + position.coords.longitude);
};

Doorlopende updates uitschakelen:

navigator.geolocation.clearWatch(watchId);


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow