Czy istnieje sposób na dostęp do geolokalizacji komputera Mac z terminala?

46

Niektóre aplikacje GUI korzystają z usług lokalizacji OS X, ale chcę pobrać fizyczną lokalizację komputera Mac z wiersza polecenia . Może to być przydatne do uruchamiania skryptów, przełączania ustawień itp. Mechanizmem powinna być CoreLocation , a nie usługa Geo IP (dane zbyt niskiej rozdzielczości, wymagają połączenia online).

Minimalne wymagania to dane dotyczące długości i szerokości geograficznej . Nice byłaby liczbą wskazującą precyzję. Super fajnie: geokoder, który zapewnia nazwy lokalizacji.

myhd
źródło
Proszę nie umieszczać odpowiedzi bezpośrednio w pytaniu, ma to tendencję do dezorientowania ludzi i utrudnia zrozumienie, o co w rzeczywistości chodzi. Jeśli chcesz dodać przykładowy wynik do różnych oferowanych rozwiązań, możesz to zrobić bezpośrednio, edytując odpowiedzi.
nohillside

Odpowiedzi:

31

Odpowiedź vilmoskörte wydaje się być dobra, ale wziąłem na siebie pomysł stworzenia narzędzia, które robi to dla mojej własnej edukacji. Położyłem to na GitHub.

Gdzie ja jestem

Proste narzędzie wiersza poleceń. Brak opcji, po prostu uruchamia i generuje parametry Lat / Long, dokładność w metrach i znacznik czasu. Będzie wymagał włączenia usług lokalizacyjnych OS X (Preferencje systemowe> Bezpieczeństwo i prywatność) oraz zgody na zebranie Twojej lokalizacji (OS X wyświetli monit przy pierwszym uruchomieniu).

Bezpośredni link do pobrania (.zip)

robmathers
źródło
To świetnie - premia za prostotę !!
myhd
link jest zepsuty, zgłoszono prośbę o ściągnięcie z rob
booyaa
@booyaa dzięki za podpowiedzi. Link zepsuł się jakiś czas temu, gdy GitHub zabił pobieranie plików i zepsułem swoje konto. Teraz wrócił.
robmathers
13

To już zostało zaprogramowane, spójrz na

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

vilmoskörte
źródło
bardzo dobrze. fajna opcja:-g … Generate a Google Map URL
myhd
Autor oprogramowania wskazał, że zdaje sobie sprawę z problemów z Mountain Lion i przejrzy kod, aby sprawdzić, czy dostępna jest łatwa poprawka.
bmike
To najlepsza odpowiedź. Możesz zainstalować brew install locatemei działa na macOS Mojave.
mk12
8

Jestem autorem LocateMe i właśnie odkryłem, że muszę skopiować LocateMe do folderu / Applications, aby działał w Mountain Lion. Nie jestem pewien, co musiałbym zrobić, aby tego uniknąć - prawdopodobnie coś o zdobyciu certyfikatu, czego prawdopodobnie nie zamierzam w najbliższym czasie szukać.

W międzyczasie, dla LocateMe i prawdopodobnie innych, spróbuj skopiować je do / Aplikacje i sprawdź, czy masz więcej szczęścia.

-Obrabować

rharder
źródło
Mogę potwierdzić, że działa.
markhunte
5

Te aplikacje muszą zostać podpisane certyfikatem programisty, zanim będą mogły autoryzować się w usłudze Core Location. Jeśli spojrzysz na Console.app, zobaczysz nieudane próby autoryzacji:

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 

Użyłem mojego konta programisty do zbudowania i podpisania nowego pliku binarnego whereami . Po uruchomieniu Mountain Lion poprosi o pozwolenie na dostęp do danych o lokalizacji.

Paulgrav
źródło
Działa to dla mnie świetnie w Mac 10.8.2
TJ Luoma
4

Jestem autorem CoreLocationCLI, wspomnianym w komentarzach powyżej. Chciałem tylko zauważyć, że przenieśliśmy projekt do tej lokalizacji:

https://github.com/fulldecent/corelocationcli

Ponadto obsługuje teraz, --oncejeśli szukasz tylko jednego wyjścia, a nie ciągłego wyjścia.

Na koniec na stronie projektu znajduje się również pełny plik binarny, jeśli nie chcesz go samodzielnie kompilować. Nadal będziesz musiał autoryzować („Czy chcesz, aby ta aplikacja miała dostęp do Twojej lokalizacji”) przy pierwszym uruchomieniu aplikacji.

William Entriken
źródło