以编程方式从命令行获取MacBook的城市/状态?
答
分为两个部分:(一个黑客位的)
让你的ip地址:
ifconfig | grep "inet addr" | grep -v '127\.0\.0\.1' | tr ':' ' ' | awk '{print $3}'
查找您的地址与表: http://ipinfodb.com/linux_script.php
希望这可以帮助!
答
编辑(原始响应进一步下跌)
如下所述,我开始了一个GitHub库做的正是:https://github.com/inspector-g/getloc
由于今天有时间有限,较容易/更快地只使用典型外部IP地理定位技巧。它在我测试过的所有机器上运行良好。但是,我确实放置了所有必需的CoreLocation存根以供将来使用。如果本周我有更多时间,我可能会为Mac OS X实施第三方MapKit(如下所述)。
原始回复
没有内置的命令行程序来执行此操作。您可以通过在Xcode中构建一个可可命令行程序来自己做一个简单的程序,如下所示:
从Mac OS 10.6开始,您可以使用CLLocationManager
获取用户的经纬度位置。在类,你想成为的位置信息的委托:
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
[locationManager startUpdatingLocation];
随着locationManager
是类的成员。为了从CLLocationManager
接收消息,您的代理类需要实现以下方法:
-(void) locationManager:(CLLocationManager*)manager
didUpdateToLocation:(CLLocation*)newLocation
fromLocation:(CLLocation*)oldLocation;
-(void) locationManager:(CLLocationManager*)manager
didFailWithError:(NSError*)error;
现在,您已经全部建立完毕,并接收这些方法CLLocation
情况下,你怎么弄的城市,州,或来自CLLocation
的经纬度数据的其他地理信息?你不要! Apple不提供适用于Mac OS X(仅适用于iOS)的反向地理编码器。
然而,填补了国内空白,一个相当不错的图书馆,以配合在iOS MapKit的功能已发布:http://github.com/Oomph/MacMapKit
这意味着要匹配MapKit的特点,其实和做了很好的工作。祝你好运:)
(事实上,现在我想到了,我可能只是制作这个小程序并将其发布到GitHub上) – 2012-04-01 18:01:25