Есть ли способ получить доступ к геолокации Mac из терминала?

46

Некоторые приложения с графическим интерфейсом используют службы определения местоположения OS X, но я хочу получить физическое местоположение Mac из командной строки . Это может быть полезно для запуска сценариев, переключения настроек и т. Д. Механизм должен быть CoreLocation , а не сервис Geo IP (данные слишком низкого разрешения, требуется онлайн-соединение).

Минимальное требование - вывод долготы и широты . Приятно было бы число, указывающее на точность. Супер приятно: геокодер, который предоставляет названия мест.

myhd
источник
Пожалуйста, не включайте ответы непосредственно в вопрос, это сбивает с толку людей и затрудняет понимание вопроса. Если вы хотите добавить пример вывода к различным предлагаемым решениям, вы можете сделать это напрямую, отредактировав ответы.
холме

Ответы:

31

vilmoskörte в ответ , как представляется , быть хорошим, но я взял на себя , чтобы сделать инструмент , который делает это для моего собственного образования. Я положил это на GitHub.

Где я

Простой инструмент командной строки. Никаких опций, просто работает и выводит широту / долготу, точность в метрах и метку времени. Для этого потребуется включить службы определения местоположения OS X («Системные настройки»> «Безопасность и конфиденциальность») и разрешение на сбор информации о вашем местоположении (OS X предложит вам при первом запуске).

Прямая ссылка для скачивания (.zip)

robmathers
источник
Это здорово - бонус за простоту!
myhd
ссылка разорвана, поднял запрос на
удаление
@booyaa спасибо за подсказку. Связь сломалась некоторое время назад, когда GitHub прервал загрузку, и я испортил свой аккаунт. Сейчас вернулся.
robmathers
13

Это уже запрограммировано, посмотрите на

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

vilmoskörte
источник
очень хорошо. классный вариант:-g … Generate a Google Map URL
myhd
Автор программного обеспечения указал, что он знает о проблемах Mountain Lion и проверит код, чтобы увидеть, доступно ли простое исправление.
bmike
Это лучший ответ. Вы можете установить с, brew install locatemeи он работает на MacOS Mojave.
mk12
8

Я - автор LocateMe, и я только что обнаружил, что мне нужно скопировать LocateMe в папку / Applications, чтобы он работал в Mountain Lion. Я не уверен, что я должен был бы сделать, чтобы избежать этого - вероятно, что-то о получении сертификата, который я вряд ли буду преследовать в ближайшее время.

Тем временем, для LocateMe и, возможно, для других, попробуйте скопировать их в / Applications и посмотреть, повезет ли вам больше.

Роб

rharder
источник
Я могу подтвердить, что работает.
markhunte
5

Эти приложения должны быть подписаны сертификатом разработчика, прежде чем они смогут авторизоваться с помощью службы Core Location. Если вы заглянете в Console.app, вы увидите неудачные попытки авторизации:

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 

Я использовал свою учетную запись разработчика, чтобы создать и подписать новый двоичный файл whereami . После запуска Mountain Lion запросит у вас разрешение на доступ к данным о местоположении.

paulgrav
источник
Это прекрасно работает для меня в Mac 10.8.2
TJ Luoma
4

Я автор CoreLocationCLI, упомянутый в комментариях выше. Просто хотел отметить, что мы перенесли проект в это место:

https://github.com/fulldecent/corelocationcli

Кроме того, теперь он поддерживается, --onceесли вы ищете только один выход, а не непрерывный вывод.

Наконец, на странице проекта также есть полный двоичный файл, если вы не хотите его компилировать самостоятельно. Вам все равно нужно будет авторизоваться («Хотели бы вы, чтобы это приложение могло получить доступ к вашему местоположению») при первом запуске приложения.

Уильям Энтрикен
источник