某些GUI应用程序使用OS X定位服务,但我想从命令行检索Mac的物理位置。这对于运行脚本,切换设置等很有用。该机制应该是CoreLocation,而不是Geo IP服务(数据分辨率太低,需要在线连接)。
最低要求是输出经度和纬度。尼斯将是一个数字,表示精度。超级好:提供位置名称的地址解析器。
某些GUI应用程序使用OS X定位服务,但我想从命令行检索Mac的物理位置。这对于运行脚本,切换设置等很有用。该机制应该是CoreLocation,而不是Geo IP服务(数据分辨率太低,需要在线连接)。
最低要求是输出经度和纬度。尼斯将是一个数字,表示精度。超级好:提供位置名称的地址解析器。
Answers:
vilmoskörte的答案似乎是一个不错的答案,但我认为自己要为我自己的教育创造一个可以做到这一点的工具。我把它放在GitHub上。
一个简单的命令行工具。没有选项,仅运行并输出纬度/经度,以米为单位的精度和时间戳。它需要打开OS X定位服务(“系统偏好设置”>“安全性和隐私”),并具有收集位置的权限(OS X会在首次运行时提示您)。
-g … Generate a Google Map URL
brew install locateme
并在macOS Mojave上运行。
这些应用必须先使用开发者证书签名,然后才能使用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将询问您的权限以使其能够访问位置数据。
我是上面评论中提到的CoreLocationCLI的作者。只是要注意,我们已经将项目移到了这个位置:
https://github.com/fulldecent/corelocationcli
此外,它现在还支持--once
仅查找单个输出而不是连续输出。
最后,如果您不想自己编译它,那么在项目页面上也会有完整的二进制文件。您仍需要在首次运行应用程序时进行授权(“您是否希望此应用程序能够访问您的位置”)。