Sök…


Syntax

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

Anmärkningar

Geolocation API gör vad du kan förvänta dig: hämta information om klientens vistelseort, representerad i latitud och longitud. Det är dock upp till användaren att gå med på att ge bort sin plats.

Detta API definieras i W3C Geolocation API Specification . Funktioner för att få samhällsadresser och för att möjliggöra geofencing / triggering of events har utforskats, men är inte implementerade i stort.

Så här kontrollerar du om webbläsaren stöder Geolocation API:

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

Få en användares latitud och longitud

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

Mer beskrivande felkoder

Om geolokalisering misslyckas får din återuppringningsfunktion ett PositionError objekt. Objektet kommer att innehålla ett attribut som heter code som har ett värde på 1 , 2 eller 3 . Var och en av dessa nummer betyder en annan typ av fel; getErrorCode() nedan tar PositionError.code som sitt enda argument och returnerar en sträng med namnet på felet som inträffade.

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

Det kan användas i geolocationFailure() så:

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

Få uppdateringar när en användares plats ändras

Du kan också få regelbundna uppdateringar av användarens plats; till exempel när de rör sig medan de använder en mobil enhet. Platsspårning över tid kan vara mycket känslig, så se till att förklara för användaren i förväg varför du begär detta tillstånd och hur du använder informationen.

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

Så här stänger du av kontinuerliga uppdateringar:

navigator.geolocation.clearWatch(watchId);


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow