est-il possible d'obtenir des données d'emplacement de Google Gears , API Gelocation Google ou tout autre API d'emplacement Web (tel que Fire Eagle ) dans un tel format qu'il apparaît à un autre logiciel en tant que périphérique GPS? P>
Cela m'a eu lieu à la lecture Ces réponses à ma question concernant la recherche de l'emplacement WiFi, sur Super Utilisateur, que si je pouvais imiter une unité GPS, bon nombre de ces services Web pourraient servir de GPS «pauvres-mans» à un logiciel autrement moins utile qui l'exige. P>
est GPSD une option? P>
De préférence OSX & Python, mais je serais intéressé par toute mise en œuvre. P>
4 Réponses :
Je ne sais pas exactement comment accomplir ce que vous demandez, mais je pourrais peut-être prêter des informations sur la manière dont vous pourriez commencer em> pour le faire faire. Alors voici: p>
Un périphérique GPS apparaît jusqu'à la plupart des systèmes que rien de plus qu'un périphérique série - A.K.A. Un port COM si vous traitez avec Windows, / dev / ttysx si vous êtes IN * NIX. Par définition, un droit spécifique d'un port série est de diffuser des données dans un bus, un bloc à la fois. Donc, il suivrait alors logiquement que si vous souhaitez imiter la présence d'un périphérique GPS, vous devez rassembler les données que vous consommez et le mettre dans un flux qui agit en quelque sorte comme un port série actif. P>
Il y a cependant certaines complications que vous voudrez peut-être envisager: p>
En cours de route, vous devrez également transformer les coordonnées que vous recevez en phrases GPS valides. Vous pouvez trouver des spécifications pour ceux-ci, mais je ferais certainement des amis avec la norme NMEA - même s'il s'agit d'une norme imparfaite, c'est celui que tout le monde semble être d'accord sur toute façon. P>
J'espère que cela vous a aidé, au moins un peu. Y a-t-il plus de détails spécifiques à votre problème que vous pensez être utile pour répondre à cette question? P>
Notez également: Je ne suis pas trop familier avec GPSD, mais oui, c'est une option pour vous si je vous ai bien compris, étant donné ce que vous avez mentionné dans votre question.
Quelques bons détails là-bas - y a-t-il des bibliothèques / produits existants pouvant imiter les ports série?
Ajout d'un peu plus de détails Re. mes objectifs à la question initiale.
Les dispositifs GPS à la parole Nmea produisent généralement les messages qu'ils souhaitent, chaque fois qu'ils le souhaitent et ne disent rien quand ils n'ont aucune information et que les logiciels doivent faire face à cela. Un triplet de phrase GGA / GLL / RMC toutes les quelques secondes (avec un couple de champs comme "Nombre de satellites utilisés" Faibled up) inciterait probablement la plupart des logiciels.
Matt, j'ai marqué la question de Nate comme la réponse telle qu'elle donnait beaucoup plus de détails, mais je ne serais pas sur ce cours de questionnement sans votre réponse originale - merci :)
Ça ne me pose pas de problème. Il semble qu'il est beaucoup plus bien informé sur le sujet et j'ai même appris quelques choses de sa réponse. :-)
Je ne l'ai pas examiné beaucoup, mais avez-vous envisagé d'utiliser SkyHook's SDK une>? Cela pourrait vous fournir une partie de ce que vous recherchez. Il est disponible pour chaque important système d'exploitation de bureau et mobile. P>
Skyhook a un GPS «virtuel» (téléchargeable après votre inscrivez-vous), semblable à Franson GPS Gate, mais c'est Windows / Mobile seulement
Jetez un oeil à GATE GENSON GPS qui vous permet de Connectez-vous à Google Earth entre autres (comme simulation de GPS, etc.). Windows est-ce que Windows, mais je pense que vous pourriez obtenir des idées utiles de cela. P>
C'est exactement le genre de chose que je recherche, mais idéalement le code source qui l'accomplit. Bonnes choses cependant :)
Il y a un thread très similaire a > Sur une liste mailing python qui mentionne Windows Ports virtuels et discute des capacités pseudotalétiques UNIX . Si l'application (s) que vous souhaitez utiliser vous permet de saisir un fichier de périphérique TTY spécifique, cela peut être la voie la plus facile. (À court de demander aux auteurs de fournir une API de plugin pour ce que vous essayez de faire ou de vous acheter un 20 $ Mouse GPS Bluetooth .) P>
Utilisez-vous OS X? P>
Il y a un projet MacOSXXVirtualSerialport sur Google Code fournissant une enveloppe graphique autour de certaines des Les caractéristiques d'un utilitaire appelé Socat . Je recommanderais de jeter un coup d'œil à la SOCAT si vous voyez un potentiel dans la route pseudo-tty. Je crois que vous pourriez utiliser Socat pour relier un tuyau d'un programme Python à une pseudo-TTY. P>
La plupart des applications Mac natives interviennent à intervaluer sur un périphérique avec kioserialbsdrs232type, et je doute qu'une pseudo-TTTY apparaisse comme un service IOKIT. P>
Dans ce cas, à moins que vous ne puissiez trouver un projet qui a déjà mis en œuvre une telle chose, vous devrez mettre en place un pilote comme décrit dans ce Comment créer un port COM virtuel . Si vous allez avoir la peine de créer un pilote de périphérique, vous voudrez la baser sur IOKIT à cause de cette question probable iOServiceMatching. Vous pouvez trouver le projet Apple16x50Serial mentionné dans ce poste en haut de Source open de Apple Liste de codes (Aller à la Page principale et choisissez une version de système d'exploitation plus ancienne si vous souhaitez cibler quelque chose pré-10.6). p>
Si votre application est la plus utile avec les données en temps réel (par exemple, l'application de routeBuddy mentionnée dans le thread de la mailinglist Python peut enregistrer les positions actuelles ), alors vous souhaiterez chercher des mises à jour à partir de vos sources Web (espérons-le qu'ils prennent en charge des interrogations longs) et les convertir en" un href = "http://www.sparkfun.com /Datasheets/gps/nmea%20reference%20Manual-Rev2.1-Dec07.pdf "rel =" Nofollow Noreferrer "> NMEA Phrases RMC. Vous ne voulez pas faire cela à partir de votre code de pilote. Au lieu de cela, divisez votre travail dans des morceaux de noyau et d'utilisateurs qui peuvent communiquer et mettre le plus petit du code possible dans la partie du noyau. P>
Si vous souhaitez laisser des applications à la fois lire et écrire sur ces services Web, votre meilleur choix serait probablement de simuler un périphérique Garmin. Garmin a plus ou moins documenté son protocole dans le fichier Infspec.pdf inclus avec leur Interface de périphérique SDK a>. Encore une fois, vous voudriez scinder autant que possible en code de l'espace utilisateur. P>
Je n'ai pas pu trouver de projet ou d'utilitaire qui implémente le côté du noyau d'une interface série virtuelle basée sur IOKIT, mais je serais surpris de ne pas avoir caché quelque part là-bas. Malheureusement, la plupart des réponses que j'ai trouvées à cette question étaient comme ceci, le développeur étant dit de se faire occuper
Certaines choses vraiment utiles là-bas, merci. J'utilise effectivement OSX (détail ajouté à la question originale).
Une souris GPS de 20 $ est un bon point (et un excellent GPS pauvres-Mans!), Mais mon objectif général est de fournir un «flux de données virtuel» des API Web non GPS.
Comme à l'écart, je n'avais vraiment pas réalisé à quel point les dongles GPS bon marché sont maintenant: Amazon.co.uk/s/...
En l'absence de solutions python exactes à ma question, j'ai commencé le projet suivant sur Google Code, où je copierai les informations / code que je trouve: code.google.com/p/python-virtualgps
GPSD a déménagé dans un nouvel emplacement: Savannah.nongnu.org/projects/gpsd