6
votes

iPhone - Géolocession de l'application native vs Web de géolocalisation

Voici ma situation; J'ai construit une application Web très simple qui recherche un emplacement des utilisateurs et le complète sur une carte Google. Voici mon code: http://pastebin.com/d3a185efd

Lorsque je le teste, mon emplacement est détecté comme étant> = 500 mètres de l'endroit où je supporte réellement.

mais

Lorsque j'ouvre Google Maps ou Gowalla, mon emplacement est correct à moins de 20 mètres?

Donc, ma question est la suivante: les applications iPhone natives bénéficient-elles d'un taux de précision plus élevé que des applications Web?

Si oui, pourquoi?


0 commentaires

7 Réponses :


0
votes

Je pense qu'une webapp s'appuie sur un service GeOIP qui (son meilleur pour ...) convertit votre adresse IP en une coordonnée GPS. Ex: Service Ex

Cependant, ce moyen de récupérer une coordonnée ne peut pas être aussi précis que le "classique" qui utilise un périphérique GPS (tel que celui inclus dans l'iPhone 3G ou 3GS) sur vraiment récupérer votre réel emplacement et ne pas se rapprocher de son mieux comme un service GeoIP.

Mise à jour: GeOIP est utilisé lors de l'utilisation de Google Maps sur un ordinateur portable, mais peut-être que votre question était la suivante: "Lorsque j'utilise l'objet de position HTML 5 dans ma page Web, provient-il du matériel GPS ou d'un service GeOIP ? ". Ce que je ne pouvais pas vraiment dire, je dirais qu'il utilise le service GeoiP au lieu du matériel GPS mais je ne suis pas sûr à 100% ...


3 commentaires

Ce n'était pas vraiment ma question car je suis sûr que l'API de géolocalisation HTML 5 vérifie si votre appareil est capable et redevient à GEOIP, sinon. Donc, ma question reste toujours, faites-la des applications iPhone natif utilisées la même méthodologie (ou une précision égale) aux applications Web ou sont-elles supérieures d'une manière ou d'une autre?


Je pense que cela s'appuie sur la mise en œuvre du navigateur: Supposons que le safari mobile vérifie le dernier emplacement récupéré du matériel GPS et le renvoie à la page Web à la demande, je ne vois pas pourquoi il y aurait une telle différence entre WebApps et Native Apps: Le flux entre WebApp / Objc finirait par poser le même endroit.


C'est ce que je pensais, mais si tel est le cas - pourquoi y a-t-il une si grande différence de précision?



0
votes

Le code ne montre pas où vous obtenez la position de - utilisez-vous des objets de navigateur et de géolocalisation?

http://developer.apple .com / iPhone / iPhone / Bibliothèque / Documentation / Référence / SafariWebContent / GassingOgROgROCAcations / GestgeOgROCommations.html


1 commentaires

Oui, mon application Web utilise navigator.geolocouplacement.watchPosition () pour les téléphones iPhone et Android et navigator.geolocation.getCurrentPosition () pour tous les autres. Je ne sais pas ce que Google Maps utilise, mais comme il est basé sur le Web, j'imagine qu'il utilise le même JS.



1
votes

Basé sur le lien suivant, je pense que vous obtenez des coordonnées dans une application Web à travers la triangulation de la tour et n'utilisez pas de GPS. Je doute vraiment si Geoip peut donner des coordonnées à moins de 500 mètres.

http : //phonegap.lighthouseApp.com/projects/20116/tickets/16-navigatorgetolocouplacocalisation-does-not-make-use-of-gps-data


0 commentaires

3
votes

Selon la spécification, la géolocalisation WebApp doit utiliser la méthode de positionnement qui fonctionne mieux dans n'importe quelle situation - donc en théorie, on supposerait qu'il utilise GPS lorsqu'il est disponible. La discussion liée à la "meilleure réponse" de Rohit ne me semble pas concluante - voici un autre, avec une personne qui signalant un problème similaire à la vôtre et d'autres utilisateurs professant à obtenir des données de GPS précises (faites défiler vers les commentaires 26-28 septembre ):

http://www.thecssninja.com/javascript/geolocalisation-iphone

Mais cela semble être comme la géolocalisation trucs de buggy. Je soupçonnerais que votre problème est fondamentalement que, un bug.


0 commentaires

0
votes

Pour Google Geo API, il essaie de trouver votre emplacement par périphérique GPS, si vous avez échoué à la triangulation cellulaire (GPS virtuel) si elle a échoué, essayez d'utiliser sur WiFi Mac et adresses IP, le dernier essai consiste à utiliser le client IP obtenir son emplacement


0 commentaires

1
votes

L'API de géolocalisation permet un paramètre de précision élevé.
http://dev.w3.org/geo/api/spec-source .html # position_options_interface
(Mais utilise une batterie supplémentaire, donc probablement la meilleure utilisation à peu près) de
Avez-vous testé cela?

Boolean: Activerhighcuracy


0 commentaires

1
votes

Je pense que vous obtenez des résultats différents puisque vous négligez l'aspect du temps. Le GPS utilise beaucoup de batterie et ne démarre que sur la commande.

La getCurrentPosition HTML5 prend un instantané des coordonnées avant que le GPS ait eu la chance de "zone" dans votre position. L'application Google Maps d'autre part commence, puis surveille votre position, la précision croissante au fil du temps (vous savez tous comment le marqueur se déplace). HTML5 prend également en charge cette fonctionnalité de regarder la position.

Note latérale! Dans mon expérience de l'iPhone, l'appareil stockera réellement votre position pendant un peu de temps, ce qui signifie que si je démarre Google Maps et que je le laisse «zone in» sur ma position, fermez-la, puis commencez mon webApp et utilisez getcurrentPosition que je reçois une lecture tout aussi précise.

La précision consiste à laisser le GPS faire sa chose.


0 commentaires