Existe-t-il un moyen d'accéder à la géolocalisation d'un Mac depuis un terminal?

46

Certaines applications utilisant l'interface graphique utilisent les services de localisation OS X, mais je souhaite récupérer l'emplacement physique d'un Mac à partir de la ligne de commande . Cela pourrait être utile pour exécuter des scripts, changer les paramètres, etc. Le mécanisme devrait être CoreLocation , et non un service Geo IP (données trop basses, nécessite une connexion en ligne).

Le minimum requis est la sortie de la longitude et de la latitude . Nice serait un nombre indiquant la précision. Super sympa: un géocodeur qui fournit des noms d'emplacement.

myhd
la source
Veuillez ne pas inclure les réponses directement dans la question, cela tend à confondre les gens et rend plutôt difficile la compréhension de la question. Si vous souhaitez ajouter un exemple de sortie aux différentes solutions proposées, vous pouvez le faire directement en modifiant les réponses.
nohillside

Réponses:

31

La réponse de vilmoskörte semble être bonne, mais j'ai pris sur moi de créer un outil qui le fasse pour ma propre éducation. Je l'ai mis sur GitHub.

Où suis-je

Un simple outil de ligne de commande. Aucune option, exécute et génère uniquement Lat / Long, précision en mètres et horodatage. Les services de localisation OS X devront être activés (Préférences Système> Sécurité et confidentialité), ainsi que l’autorisation de rassembler votre localisation (OS X vous le demandera lors de la première utilisation).

Lien de téléchargement direct (.zip)

robmathers
la source
C'est génial - bonus pour la simplicité !!
Myhd
link est cassé, a soulevé une demande de pull avec rob
booyaa
@booyaa merci pour l'invitation. Le lien s'est cassé il y a quelque temps quand GitHub a tué des téléchargements et j'ai foiré mon compte. C'est de retour maintenant.
robmathers
13

Cela a déjà été programmé, regardez

http://iharder.sourceforge.net/current/macosx/locateme/

vilmoskörte
la source
très agréable. option cool:-g … Generate a Google Map URL
myhd
L’auteur du logiciel a indiqué qu’il était au courant des problèmes de Mountain Lion et qu’il examinerait le code pour voir si une solution simple était disponible.
bmike
C'est la meilleure réponse. Vous pouvez installer avec brew install locatemeet cela fonctionne sur macOS Mojave.
MK12
8

Je suis l'auteur de LocateMe et je viens de découvrir que je dois copier LocateMe dans le dossier / Applications pour que cela fonctionne dans Mountain Lion. Je ne suis pas sûr de ce que je devrais faire pour éviter cela - probablement quelque chose à propos de l'obtention d'un certificat, que je ne rechercherai probablement pas de sitôt.

En attendant, pour LocateMe et probablement les autres, essayez de les copier dans / Applications et voyez si vous avez plus de chance.

-Rob

responsable
la source
Je peux confirmer que ça marche.
markhunte
5

Ces applications doivent être signées avec un certificat de développeur avant de pouvoir être autorisées avec le service Core Location. Si vous regardez dans Console.app, vous pouvez voir les tentatives d’autorisation infructueuses:

31/12/2012 13:08:26.441 locationd[484]: Couldn't get information from PID 40084
31/12/2012 13:08:27.515 CoreLocationAgent[40086]: CodeSigningInforequest for pid=40084 

J'ai utilisé mon compte de développeur pour créer et signer un nouveau fichier binaire whereeami . Après l'avoir exécuté, Mountain Lion vous demandera votre permission pour lui permettre d'accéder aux données de localisation.

paulgrav
la source
Cela a très bien fonctionné pour moi sous Mac 10.8.2
TJ Luoma, le
4

Je suis l'auteur de CoreLocationCLI, mentionné dans les commentaires ci-dessus. Je voulais juste noter que nous avons déplacé le projet à cet endroit:

https://github.com/fulldecent/corelocationcli

En outre, il prend désormais en charge --oncesi vous ne recherchez qu'une sortie unique, plutôt qu'une sortie continue.

Enfin, il y a un binaire complet sur la page du projet si vous préférez ne pas le compiler vous-même. Vous aurez toujours besoin d'autoriser ("Voulez-vous que cette application puisse accéder à votre emplacement") lors de la première exécution de l'application.

William Entriken
la source