有没有办法从终端访问Mac的地理位置?


46

某些GUI应用程序使用OS X定位服务,但我想从命令行检索Mac的物理位置。这对于运行脚本,切换设置等很有用。该机制应该是CoreLocation,而不是Geo IP服务(数据分辨率太低,需要在线连接)。

最低要求是输出经度纬度。尼斯将是一个数字,表示精度。超级好:提供位置名称的地址解析器。


请不要直接在问题中回答,也容易迷惑人,并使得很难理解什么的问题实际上是。如果要将示例输出添加到提供的不同解决方案中,可以直接通过编辑答案来完成。
nohillside

Answers:


31

vilmoskörte的答案似乎是一个不错的答案,但我认为自己要为我自己的教育创造一个可以做到这一点的工具。我把它放在GitHub上。

我在哪里

一个简单的命令行工具。没有选项,仅运行并输出纬度/经度,以米为单位的精度和时间戳。它需要打开OS X定位服务(“系统偏好设置”>“安全性和隐私”),并具有收集位置的权限(OS X会在首次运行时提示您)。

直接下载链接(.zip)


太好了-简单奖励!!
myhd 2012年

链接断开,向rob提出了拉取请求
booyaa

@booyaa感谢您的提示。不久前,当GitHub终止下载并我弄乱了我的帐户时,链接中断了。现在回来了。
robmathers


8

我是LocateMe的作者,我只是发现必须将LocateMe复制到/ Applications文件夹中才能在Mountain Lion中工作。我不确定如何避免这种情况-可能与获得证书有关,我不太可能在不久的将来追求。

同时,对于LocateMe以及其他人,请尝试将它们复制到/ Applications,看看您是否运气更好。

-抢


我可以确认可行。
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将询问您的权限以使其能够访问位置数据。


在Mac 10.8.2中,这对我非常有用
TJ Luoma

4

我是上面评论中提到的CoreLocationCLI的作者。只是要注意,我们已经将项目移到了这个位置:

https://github.com/fulldecent/corelocationcli

此外,它现在还支持--once仅查找单个输出而不是连续输出。

最后,如果您不想自己编译它,那么在项目页面上也会有完整的二进制文件。您仍需要在首次运行应用程序时进行授权(“您是否希望此应用程序能够访问您的位置”)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.