codestory

Die Anleitung zu Javascript Geolocation API

  1. Geolocation API
  2. PositionOptions interface
  3. Geolocation interface
  4. Position interface
  5. Coordinates interface
  6. PositionError interface

1. Geolocation API

Geolocation API fasst die Interface um, damit Sie die Position des den Browser benutzenden Benutzer festlegen und Sie können mit dieser Interface durch Javascript interaktieren. Das erlaubt, eine Website oder eine Applikation kann eine anpassende Inhalt nach der Position des Benutze versorgen.
Im Grunde fasst Geolocation API die folgende Interface um:
  • Geolocation
  • PositionOptions
  • Position
  • Coordinates
  • PositionError
Wenn Geolocation API versucht, die Information der Benutzer-Position zu holen. Der Browser zeigt ein Dialog Box an, um den Erlaubnis vom dem Benutzer zu fragen. Notieren Sie dass, jeder Browser die eigene Politik und Method hat um die Rechte anzufordern.
geolocation-example.js
// Success Handler
function successHandler(position)  {
  var logArea = document.getElementById("log-area");

  logArea.value = "";
  logArea.value += "Latitude: " + position.coords.latitude + "\n";
  logArea.value += "Longitude: " + position.coords.longitude + "\n";
}

// Error Handler
function errorHandler(positionError)  {
   if(positionError.code == 1) { // PERMISSION_DENIED
       alert("Error: Permission Denied! " + positionError.message);
   } else if(positionError.code == 2) { // POSITION_UNAVAILABLE
       alert("Error: Position Unavailable! " + positionError.message);
   } else if(positionError.code == 3) { // TIMEOUT
       alert("Error: Timeout!" + positionError.message);
   }
}

function showInfos()  {
  navigator.geolocation.getCurrentPosition(successHandler, errorHandler);
}
geolocation-example.html
<!DOCTYPE html>
<html>
   <head>
      <title>Geolocation</title>
      <meta charset="UTF-8">
      <style>textarea {width:100%;margin-top:10px;}</style>

      <script src="geolocation-example.js"></script>
   </head>
   <body>

       <h1>Geolocation</h1>

       <button onClick="showInfos()">Show Infos</button>

        <textarea name="name" rows="5" id="log-area"></textarea>
   </body>
</html>

2. PositionOptions interface

PositionOptions ist die Interfacce, die ein Objekt mit den optionalen Properties bezeichnet. Das Objekt wird wie einen Parameter für das Method Geolocation.getCurrentPosition() oder Geolocation.watchPosition() übertragen.
var options = {
    maximumAge : 1000,
    timeout: 5000,
    enableHighAccuracy : true
};
PositionOptions hat 3 Properties:
  • maximumAge
  • timeout
  • enableHighAccuracy
maximumAge
Die neuste Information des Benutzer wird in die Speicherung cache in den Zeitraum maximumAge Milisekunden gelagert. Das Programm wird die Wert in cache holen um den Benutzer zurückzugeben statt der Suche der Position nach der echten Zeit. Default ist 0, d.h das Programm sucht immer die Position nach der echten Zeit.
timeout
Die Zeit wird in die maximalen Milisekunden gerechnet, das das Programm auf das Ergebnis der Festlegung der Benutzer-Position wartet. Wenn die Position des Benutzer in diesem Zeitraum nicht festgelegt wird, betrachtet es als den Misserfolg und die Funktion Callback-error wird geruft .
enableHighAccuracy
Die Wert dieses Parameter ist true/false. Die Wert true heißt, dass das Programm versucht, die beste Position zu suchen. Z.B das Handy hat den Chip GPS. Er wird benutzt um die Position genauer festzulegen. D.h kann es mehr Zeit und Energie kosten. Default ist false.

3. Geolocation interface

Geolocation ist die wichtigste Interface in Geolocation API, Sie können es durch das Properties navigator.geolocation zugreifen.
navigator.geolocation
// Geolocation object:
var geo = navigator.geolocation;
 
// Or:
var geo = window.navigator.geolocation;
Die Methode von Geolocation:
  • getCurrentPosition()
  • watchPosition()
  • clearWatch()
getCurrentPosition(success[,error[, [options]])
Das Method getCienPocation() wird benutzt um die momentane Position des Gerät zu schaffen.
// success: A Callback function
// error: A Callback function (Optional)
// options: PositionOptions object (Optional)

getCurrentPosition(success[, error[, [options]])

// position: Position object.
var success = function(position)  {

}

//  positionError: PositionError object.
var error = function( positionError )  {

}
Die Parameters:
success
Eine Funktion Callback hat einen Parameter position (das Objekt der Interface Position). Sie wird aufgeruft wenn alles erfolgreich ist, einschließend der Benutzer erlaubt, Geolocation API seine Position festzulegen und diese API legt die Position des Benutzer fest.
error
Eine Funktion Callback hat einen Parameter - positionError (ein Objekt der Interface PositionError). Sie wird aufgeruft wenn der Benutzer erlaubt Geolocation API nicht, seine Position festzulegen oder kann seine Position nicht festlegen oder timeout.
options
Als ein Objekt der Interface PositionOptions, einschließend die Optionen:
  • maximumAge
  • timeout
  • enableHighAccuracy
** Sehen Sie mehr die Spezifikation der Interface PositionOptions in das Document.
watchPosition(success[, error[, options]])
Das Method watchPocation() wird für die Registrierung der Behandlungsfunktion benutzt, die automatisch aufgeruft wird jedesmal wenn die Position des Gerät ändert. Das Method gibt einen Integer zurück, der die Kode der Aufgabe ist.
// success: A Callback function
// error: A Callback function (Optional)
// options: PositionOptions object (Optional)

// watchID: An Integer Number.
var watchID = watchPosition(success[, error[, [options]])

// position: Position object.
var success = function(position)  {

}

//  positionError: PositionError object.
var error = function( positionError )  {

}
Die Parameters:
success
Eine Funtion Callback hat einen Parameter position (das Objekt der Interface Position). Sie wird aufgeruft wenn alles erfolgreich ist, einschließend der Benutzer erlaubt Geolocation API , seine Position festzulegen und API legt die Benutzer-Position erfolgreich fest.
error
Eine Funktion Callback mit einem Parameter positionError (Ein Objekt der Interface PositionError) wird aufgeruft wenn der Benutzer Geolocation API erlaubt nicht, seine Position zu kennen oder kann die Position des Benutzer nicht festlegen oder timeout.
options
Als ein Objekt der Interface PositionOptions. Einschließend die Auswähle:
  • maximumAge
  • timeout
  • enableHighAccuracy
** Sehen Sie mehr die Interfacce PositionOptions in das Dokument.
clearWatch(id)
Das Method clearWatch(ID) beseitigt einen Behandler durch ID , der durch den Parameter angeboten wird. Der Behandler , der vorher durch die Verwendung vom Method watchPosition() erstellt wird.

4. Position interface

Die Interface Position enthaltet die Information wie die Position und die Zeitpunk zur Gewinnung der Position des Gerät.
Properties:
position.coords
Das Objekt Coordinates zurückgeben, das die Information vom Längengrad (longitude), Breitengrad (latitude), Höhelage (altitude) des Gerät im Verhältnis zum Meeresspiegel der Erde.
position.timestamp
Das Objekt DOMTimeStamp zurückgeben, das die Zeit angibt, zu der die Position abgeruft wird.

5. Coordinates interface

Die Interface Coordinates gibt die Position und die Höhe (altitude) des Gerät im Verhältnis zum Meeresspiegel der Erde an, sowie die Genauigkeit, mit der die Properties gerechnet werden.
  • latitude
Eine Zahl zurückgeben, die den Breitengrad in dem "dezimalen Grad" (decimal degrees) bezeichnet. Ihre Wert liegt in dem Bereich [-90,90]
  • longitude
Eine Zahl zurückgeben, die den Längengrad in dem "dezimalen Grad" (decimal degrees) bezeichnet. Ihre Wert liegt in dem Bereich [-180,180].
  • altitude
Eine Zahl zurückgeben, die die Höhe der Position in dem Meter im Verhältnis von Meeresspiegel bezeichnet. Diese Wert kann null werden wenn die Implementation die Daten nicht versorgen kann.
  • accuracy
Eine Zahl zurückgeben, die die Genauigkeit der Properties Breitengrad und Längengrad bezeichnet, die in dem Meter angezeigt wird.
  • altitudeAccuracy
Eine Zahl zurückgeben, die die Genauigkeit der Höhe in dem Meter bezeichnet wird. Die Wert kann null sein.
  • heading
Eine Zahl zurückgeben, die die Richtung, in die das Gerät bewegt, bezeichnet. Diese Wert, die in Grad angegeben wird (degrees), zeigt, wie weit vom rechtweisend Nord das Gerät ist. Die Wert 0 Grad vertritt den rechtweisenden Nord und die Richtung wird rechtsherum festgelegt (d.h der Osten ist 90 Grad und der Westen ist 270 Grad). Wenn die Geschwindigkeit 0 ist, ist dann die Wert von headingNaN. Wenn das Gerät die Information heading nicht versorgen kann, ist die Wert null.
  • speed
Eine Zahl zurückgeben, die die Geschwindigkeit des Gerät in Meter per Sekunde bezeichnet. Diese Wert kann null sein.

6. PositionError interface

Die Interface PositionError bezeichnet den Grund, warum der Fehler bei der Verwendung der Geolocation-Gerät passiert.
Value
Constants
Description
1
PERMISSION_DENIED
Die Holung der Information Geolocation scheitet denn der Benutzer erlaubt nicht, auf seine Position zuzugreifen.
2
POSITION_UNAVAILABLE
Die Holung der Information Geolocation scheitet denn ein interner Fehler passiert in die Seite des geografischen Informationanbieter.
3
TIMEOUT
Die Anforderung auf die Holung der Positionsinformation wurde geschickt und es überschreitet die erlaubte Zeit, in die das Ergebnis noch nicht bekommen wird. So wird die Anforderung abgesagen und betrachtet als den Misserfolg. PositionOptions.timeout erlaubt, Sie die maximale Wartenzeit auf die Rückanwort zu konfigurieren.
Properties:
  • message
Ein String zurückgeben, das den Grund, warum ein Fehler passiert wenn die Applikation die Position-Information des Gerät zu holen versucht, passiert.

Anleitungen ECMAScript, Javascript

Show More