有没有办法以编程方式从MacBook获取位置或城市/州?它不一定非常准确,只是想知道它是否可能。
没有远程访问GeoIP服务的东西。
答案 0 :(得分:1)
分两部分:(有点黑客)
获取您的ipaddress:
ifconfig | grep "inet addr" | grep -v '127\.0\.0\.1' | tr ':' ' ' | awk '{print $3}'
使用表格查找您的地址: http://ipinfodb.com/linux_script.php
希望这有帮助!
答案 1 :(得分:1)
编辑(原始回复进一步下降)
我已经开始使用GitHub回购,完全如下所述:https://github.com/inspector-g/getloc
由于今天的时间有限,使用典型的外部IP地理定位技巧更容易/更快。它在我测试过的所有机器上运行良好。但是,我确实放置了所有必要的CoreLocation存根以供将来使用。如果我本周有更多时间,我可能会为Mac OS X实现第三方MapKit(如下所述)。
原始回复
没有内置的命令行程序来执行此操作。您可以通过在Xcode中构建Cocoa命令行程序来自己创建一个简单的程序,如下所示......
从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的功能,并且做得非常好。祝你好运:))