Géolocalisation

Géolocalisation

Le geolocation objet fournit l'accès aux données de localisation basée sur le capteur du dispositif GPS ou déduit de signaux de réseaux.

Geolocationfournit des informations sur l'emplacement de l'appareil, tels que la latitude et la longitude. Des sources communes d'information incluent système de positionnement Global (GPS) et l'emplacement déduit de signaux de réseaux tels qu'adresse IP, RFID, WiFi et Bluetooth MAC adresses et GSM/CDMA cell ID. Il n'y a aucune garantie que l'API retourne la position réelle de l'appareil.

Cette API est basée sur la Spécification de W3C Geolocation APIet s'exécute uniquement sur les périphériques qui ne fournissent déjà une implémentation.

Remarque importante de la vie privée : Collecte et utilisation des données de géolocalisation soulève des questions importantes de la vie privée. Politique de confidentialité de votre application devrait discuter de comment l'application utilise les données de géolocalisation, si elle est partagée avec d'autres parties et le niveau de précision des données (par exemple, grossière et fine, ZIP code niveau, etc.). Données de géolocalisation sont généralement considéré comme sensibles car elle peut révéler l'endroit où se trouve une personne et, si stocké, l'histoire de ses voyages. Par conséquent, en plus de la politique de confidentialité de votre application, vous devez envisager fortement fournissant un avis de juste-à-temps avant votre application pour accéder aux données de géolocalisation (si le système d'exploitation de périphérique n'est pas faire déjà). Cet avis doit fournir les mêmes renseignements susmentionnées, ainsi que d'obtenir l'autorisation de l'utilisateur (par exemple, en présentant des choix OK et Non merci). Pour plus d'informations, consultez le Guide de la vie privée.

Méthodes

Arguments

Objets (lecture seule)

Accéder à la fonctionnalité

Depuis la version 3.0, Cordova implémente API au niveau du périphérique comme les plugins. Utiliser de la CLI plugin commande, décrite dans l'Interface de ligne de commande, d'ajouter ou de supprimer cette fonction pour un projet :

    $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git
    $ cordova plugin rm org.apache.cordova.core.geolocation

Ces commandes s'appliquent à toutes les plates-formes ciblées, mais modifier les paramètres de configuration spécifiques à la plateforme décrites ci-dessous :

Certaines plates-formes peuvent prendre en charge cette fonctionnalité sans nécessiter aucune configuration spéciale. Voir plate-forme prise en charge pour une vue d'ensemble.


geolocation.getCurrentPosition

Retourne la position actuelle de l'appareil comme un Position objet.

navigator.geolocation.getCurrentPosition(geolocationSuccess,
                                         [geolocationError],
                                         [geolocationOptions]);

Paramètres

Description

geolocation.getCurrentPositionest une fonction asynchrone. Elle retourne la position actuelle de l'appareil à la geolocationSuccess rappel avec un Position objet comme paramètre. Si une erreur se produit, le geolocationError rappel est passé un PositionError objet.

Plates-formes prises en charge

Petit exemple

// onSuccess Callback
// This method accepts a Position object, which contains the
// current GPS coordinates
//
var onSuccess = function(position) {
    alert('Latitude: '          + position.coords.latitude          + '\n' +
          'Longitude: '         + position.coords.longitude         + '\n' +
          'Altitude: '          + position.coords.altitude          + '\n' +
          'Accuracy: '          + position.coords.accuracy          + '\n' +
          'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
          'Heading: '           + position.coords.heading           + '\n' +
          'Speed: '             + position.coords.speed             + '\n' +
          'Timestamp: '         + position.timestamp                + '\n');
};

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}

navigator.geolocation.getCurrentPosition(onSuccess, onError);

Exemple complet

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        navigator.geolocation.getCurrentPosition(onSuccess, onError);
    }

    // onSuccess Geolocation
    //
    function onSuccess(position) {
        var element = document.getElementById('geolocation');
        element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
                            'Longitude: '          + position.coords.longitude             + '<br />' +
                            'Altitude: '           + position.coords.altitude              + '<br />' +
                            'Accuracy: '           + position.coords.accuracy              + '<br />' +
                            'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                            'Heading: '            + position.coords.heading               + '<br />' +
                            'Speed: '              + position.coords.speed                 + '<br />' +
                            'Timestamp: '          + position.timestamp                    + '<br />';
    }

    // onError Callback receives a PositionError object
    //
    function onError(error) {
        alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }

    </script>
  </head>
  <body>
    <p id="geolocation">Finding geolocation...</p>
  </body>
</html>

geolocation.watchPosition

Montres pour faire modifier la position actuelle de l'appareil.

var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
                                                  [geolocationError],
                                                  [geolocationOptions]);

Paramètres

Retours

Description

geolocation.watchPositionest une fonction asynchrone. Elle retourne la position actuelle de l'appareil lorsqu'un changement de position est détecté. Lorsque l'appareil récupère un nouvel emplacement, le geolocationSuccess rappel s'exécute avec un Position objet comme paramètre. Si une erreur se produit, le geolocationError rappel s'exécute avec un PositionError objet comme paramètre.

Plates-formes prises en charge

Petit exemple

// onSuccess Callback
//   This method accepts a `Position` object, which contains
//   the current GPS coordinates
//
function onSuccess(position) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: '  + position.coords.latitude      + '<br />' +
                        'Longitude: ' + position.coords.longitude     + '<br />' +
                        '<hr />'      + element.innerHTML;
}

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}

// Options: throw an error if no update is received every 30 seconds.
//
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { timeout: 30000 });

Exemple complet

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    var watchID = null;

    // device APIs are available
    //
    function onDeviceReady() {
        // Throw an error if no update is received every 30 seconds
        var options = { timeout: 30000 };
        watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
    }

    // onSuccess Geolocation
    //
    function onSuccess(position) {
        var element = document.getElementById('geolocation');
        element.innerHTML = 'Latitude: '  + position.coords.latitude      + '<br />' +
                            'Longitude: ' + position.coords.longitude     + '<br />' +
                            '<hr />'      + element.innerHTML;
    }

        // onError Callback receives a PositionError object
        //
        function onError(error) {
            alert('code: '    + error.code    + '\n' +
                  'message: ' + error.message + '\n');
        }

    </script>
  </head>
  <body>
    <p id="geolocation">Watching geolocation...</p>
  </body>
</html>

geolocation.clearWatch

Arrêter de regarder pour les modifications à l'emplacement de l'appareil référencé par le watchID paramètre.

navigator.geolocation.clearWatch(watchID);

Paramètres

Description

Le geolocation.clearWatch cesse de regarder les modifications apportées à l'emplacement de l'appareil en désactivant le geolocation.watchPosition référencé parwatchID.

Plates-formes prises en charge

Petit exemple

/ / Options : suivi des modifications dans la position et utilise le plus / / exacte position méthode d'acquisition disponible.
//
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true });

// ...later on...

navigator.geolocation.clearWatch(watchID);

Exemple complet

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    var watchID = null;

    // device APIs are available
    //
    function onDeviceReady() {
        // Get the most accurate position updates available on the
        // device.
        var options = { enableHighAccuracy: true };
        watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
    }

    // onSuccess Geolocation
    //
    function onSuccess(position) {
        var element = document.getElementById('geolocation');
        element.innerHTML = 'Latitude: '  + position.coords.latitude      + '<br />' +
                            'Longitude: ' + position.coords.longitude     + '<br />' +
                            '<hr />'      + element.innerHTML;
    }

    // clear the watch that was started earlier
    //
    function clearWatch() {
        if (watchID != null) {
            navigator.geolocation.clearWatch(watchID);
            watchID = null;
        }
    }

        // onError Callback receives a PositionError object
        //
        function onError(error) {
          alert('code: '    + error.code    + '\n' +
                'message: ' + error.message + '\n');
        }

    </script>
  </head>
  <body>
    <p id="geolocation">Watching geolocation...</p>
        <button onclick="clearWatch();">Clear Watch</button>
  </body>
</html>

Coordonnées

Un ensemble de propriétés qui décrivent les coordonnées géographiques d'une position.

Propriétés

Description

Le Coordinates objet est attaché à la Position objet qui n'existe pas de fonctions de rappel dans les requêtes pour la position actuelle.

Plates-formes prises en charge

Petit exemple

// onSuccess Callback
//
var onSuccess = function(position) {
    alert('Latitude: '          + position.coords.latitude          + '\n' +
          'Longitude: '         + position.coords.longitude         + '\n' +
          'Altitude: '          + position.coords.altitude          + '\n' +
          'Accuracy: '          + position.coords.accuracy          + '\n' +
          'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
          'Heading: '           + position.coords.heading           + '\n' +
          'Speed: '             + position.coords.speed             + '\n' +
          'Timestamp: '         + position.timestamp                + '\n');
};

// onError Callback
//
var onError = function() {
    alert('onError!');
};

navigator.geolocation.getCurrentPosition(onSuccess, onError);

Exemple complet

<!DOCTYPE html>
<html>
  <head>
    <title>Geolocation Position Example</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        navigator.geolocation.getCurrentPosition(onSuccess, onError);
    }

    // Display `Position` properties from the geolocation
    //
    function onSuccess(position) {
        var div = document.getElementById('myDiv');

        div.innerHTML = 'Latitude: '             + position.coords.latitude         + '<br/>' +
                        'Longitude: '            + position.coords.longitude        + '<br/>' +
                        'Altitude: '             + position.coords.altitude         + '<br/>' +
                        'Accuracy: '             + position.coords.accuracy         + '<br/>' +
                        'Altitude Accuracy: '    + position.coords.altitudeAccuracy + '<br/>' +
                        'Heading: '              + position.coords.heading          + '<br/>' +
                        'Speed: '                + position.coords.speed            + '<br/>';
    }

    // Show an alert if there is a problem getting the geolocation
    //
    function onError() {
        alert('onError!');
    }

    </script>
  </head>
  <body>
    <div id="myDiv"></div>
  </body>
</html>

Quirks Android

altitudeAccuracy: ne pas pris en charge par les appareils Android, retournull.


Position

Contient Position coordonnées et timestamp, créé par l'API de géolocalisation.

Propriétés

Description

Le Position objet est créé et peuplé de Cordova et retourné à l'utilisateur via une fonction de rappel.

Plates-formes prises en charge

Petit exemple

// onSuccess Callback
//
var onSuccess = function(position) {
    alert('Latitude: '          + position.coords.latitude          + '\n' +
          'Longitude: '         + position.coords.longitude         + '\n' +
          'Altitude: '          + position.coords.altitude          + '\n' +
          'Accuracy: '          + position.coords.accuracy          + '\n' +
          'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
          'Heading: '           + position.coords.heading           + '\n' +
          'Speed: '             + position.coords.speed             + '\n' +
          'Timestamp: '         + position.timestamp                + '\n');
};

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}

navigator.geolocation.getCurrentPosition(onSuccess, onError);

Exemple complet

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        navigator.geolocation.getCurrentPosition(onSuccess, onError);
    }

    // onSuccess Geolocation
    //
    function onSuccess(position) {
        var element = document.getElementById('geolocation');
        element.innerHTML = 'Latitude: '          + position.coords.latitude         + '<br />' +
                            'Longitude: '         + position.coords.longitude        + '<br />' +
                            'Altitude: '          + position.coords.altitude         + '<br />' +
                            'Accuracy: '          + position.coords.accuracy         + '<br />' +
                            'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '<br />' +
                            'Heading: '           + position.coords.heading          + '<br />' +
                            'Speed: '             + position.coords.speed            + '<br />' +
                            'Timestamp: '         + position.timestamp               + '<br />';
    }

        // onError Callback receives a PositionError object
        //
        function onError(error) {
            alert('code: '    + error.code    + '\n' +
                  'message: ' + error.message + '\n');
        }

    </script>
  </head>
  <body>
    <p id="geolocation">Finding geolocation...</p>
  </body>
</html>

PositionError

A PositionError objet est passé à la geolocationError rappel lorsqu'une erreur survient.

Propriétés

Constantes

Description

Le PositionError objet est passé à la geolocationError fonction de rappel lorsqu'une erreur se produit avec géolocalisation.

PositionError.PERMISSION_DENIED

Retourné lorsque l'utilisateur n'autorise pas de votre application extraire des informations de position. Cela dépend de la plate-forme.

PositionError.POSITION_UNAVAILABLE

Retourné lorsque le périphérique n'est pas en mesure de récupérer une position. En général cela signifie que l'appareil n'a aucune connectivité réseau et/ou ne peut pas obtenir un correctif de satellite.

PositionError.TIMEOUT

Retourné lorsque le périphérique n'est pas en mesure de récupérer une position dans le délai précisé dans la geolocationOptions ' timeout propriété. Lorsqu'il est utilisé avec geolocation.watchPosition , cette erreur pourrait être transmise à la geolocationError rappel chaque timeout millisecondes.


geolocationSuccess

Fonction de rappel de l'utilisateur qui s'exécute lorsqu'une position de géolocalisation sera disponible (lorsqu'elle est appelée de geolocation.getCurrentPosition ), ou lorsque la position de change (lorsqu'il est appelé pargeolocation.watchPosition).

function(position) {
    // Do something
}

Paramètres

Exemple

function geolocationSuccess(position) {
    alert('Latitude: '          + position.coords.latitude          + '\n' +
          'Longitude: '         + position.coords.longitude         + '\n' +
          'Altitude: '          + position.coords.altitude          + '\n' +
          'Accuracy: '          + position.coords.accuracy          + '\n' +
          'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
          'Heading: '           + position.coords.heading           + '\n' +
          'Speed: '             + position.coords.speed             + '\n' +
          'Timestamp: '         + position.timestamp                + '\n');
}

geolocationError

Fonction de rappel de l'utilisateur qui s'exécute lorsqu'une erreur se produit pour les fonctions de géolocalisation.

function(error) {
    // Handle the error
}

Paramètres


geolocationOptions

Paramètres optionnels pour personnaliser la récupération de la géolocalisationPosition.

{maximumAge : 3000, délai d'attente : 5000, enableHighAccuracy : true} ;

Options

Quirks Android

Émulateurs Android 2.x ne pas retournent un résultat de géolocalisation, à moins que le enableHighAccuracy option est définie surtrue.