Question

Existe-t-il des moyens simples de remplacer les comportements par défaut de api de géolocalisation et uniquement du code dur votre position actuelle?

Je pense que cela serait utile pour les tests et pour des raisons de confidentialité (fournissant de fausses données de localisation)

Je pensais qu'il y avait un ajout pour cela mais je n'arrive pas à en trouver un. À l’heure actuelle, seule l’option semble changer le sujet: config geo.wifi.url en un service Web alternatif, ce que j’estime trop compliqué.

Des idées?

Merci

Scénario idéal

Quelqu'un implémente un add-on où une carte Google apparaît et je peux choisir un nouvel emplacement par défaut.

Était-ce utile?

La solution

geo.wifi.uri n'a pas besoin d'être un webservice. Vous pouvez également le définir sur un uri local avec file: // ...

Le fichier doit être un fichier json avec un contenu comme celui-ci:

{"location": {
              "latitude": 48.777025000000002, 
              "longitude": 9.1713909999999998, 
              "accuracy": 10.0}}

Mise à jour: Pour Firefox 9+, le format a changé:

{
    "status": "OK",
    "accuracy": 10.0,
    "location": {"lat": 48.777, "lng": 9.171}
}

Ou vous pouvez les combiner pour prendre en charge les deux:

{
    "status": "OK",
    "accuracy": 10.0,
    "location": {
        "lat": 48.777,
        "lng": 9.171,
        "latitude": 48.777,
        "longitude": 9.171,
        "accuracy": 10.0
    }
}

Mettre à jour: , il semble que le paramétrage manuel de cette préférence soit bloqué par le fournisseur qui utilise le service Google. Voir Bug 716453 . Mise à jour 2: geo.wifi.uri n'est pas geo.wifi.url

Autres conseils

Le moyen le plus simple consiste à accéder à à propos de: config , puis dans la zone de filtre, entrez geo.wifi.uri , puis double-cliquez sur la seule ligne de configuration qui apparaît. et saisissez la valeur ci-dessous après avoir remplacé xxx et yyy par les coordonnées obtenues d'un service tel que http://www.getlatlon.com/ :

données: application / json, {"emplacement": {"latitude": xxx, "longitude": yyy, "exactitude": 10}}

Cette astuce ne nécessite aucun add-on ou fichier local / hébergé. Assurez-vous que la valeur est sans espaces et sur une seule ligne!

Geolocater est un add-on expérimental qui vous permet de modifier votre géolocalisation.

Dans Chrome, vous pouvez utiliser l’extension chrome Géolocalisation manuelle . Cela vous permettra de choisir graphiquement votre emplacement manuel.

Hmmm, vous ne pouvez pas vous moquer de navigator.geolocation directement - vous pouvez peut-être refactoriser votre code qui l'utilise pour utiliser un autre objet - disons customGeoLocation .

En production, vous pouvez simplement définir customGeoLocation sur navigator.geolocation et, lors des tests, utiliser une implémentation fictive des fonctionnalités que vous utilisez.

EDIT: Il s'avère que vous pouvez remplacer les fonctions de l'objet navigator.geolocation , mais cela reste inutile si vous utilisez une bibliothèque fictive (comme JsMock) qui doit être créée. un objet fictif. Donc, vous ne pourriez pas remplacer navigator.geolocation par un faux.

Vous pouvez vous moquer de cette façon:

var getCurrentPositionCalled = false;
navigator.geolocation.getCurrentPosition = function() { 
  getCurrentPositionCalled = true; 
};

//Your app code here
//...
assert(getCurrentPositionCalled);

J'ai connecté Google Latitude à la géolocalisation de Firefox. Cela vous permet de mettre à jour manuellement votre position dans Google Latitude d'un simple clic de souris, au lieu de rechercher vous-même votre latitude et votre longitude et de les saisir dans un fichier local. Mon article sur le sujet est Faites de Firefox une géolocalisation à partir de Google Latitude .

La solution nécessitait une petite quantité de code côté serveur (je fournis le code source dans l'article), mais je suis pour le moment en train d'exécuter ce code en tant que service gratuit en direct que vous pouvez utiliser.

A bientôt, MetaEd

J'ai créé une application Web simple servant de point de terminaison de géolocalisation vers lequel vous pouvez indiquer le fichier geo.wifi.uri du navigateur. Il est compatible avec la spécification Google API. Pour l'utiliser, entrez simplement ce qui suit en remplaçant [latitude] et [longitude] par les valeurs souhaitées:

http://geolocation-mocker.phitherek.me/geolocate/[latitude]/[longitude]

et ça devrait marcher. Pour vérifier si le service est activé, accédez à

.

http://geolocation-mocker.phitherek.me

et vérifiez si la page HTML s’affiche correctement. Vous pouvez trouver le code source de cette application simple à

https://github.com/Phitherek/geolocation-mocker

J'espère que cet outil sera utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top