苹果地图(MKmap)获得附近的信息

- (void)fetchNearbyInfo
{
    CLLocationDegrees latitude=116.13554;
    CLLocationDegrees longitude=38.413546;
    CLLocationCoordinate2D location=CLLocationCoordinate2DMake(latitude, longitude);

    MKCoordinateRegion region=MKCoordinateRegionMakeWithDistance(location, DEFAULTSPAN ,DEFAULTSPAN );
    
    MKLocalSearchRequest *requst = [[MKLocalSearchRequest alloc] init];
    requst.region = region;
    requst.naturalLanguageQuery = @"place"; //想要的信息
    MKLocalSearch *localSearch = [[MKLocalSearch alloc] initWithRequest:requst];
    
    [localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){
        if (!error)
        {
            [_nearbyInfoArray addObjectsFromArray:response.mapItems];
            //
        }
        else
        {
            //
        }
    }];
    
    //
}

  1. naturalLanguageQuery 大家可以看到

    requst.naturalLanguageQuery = @"place"; //想要的信息

这一句很重要,因为他要是一个NSString类型的字符串,但是往往不知道应该赋值什么,其实我试过了,只要是你能想到的英语单词(地面)几乎都能显示出来,如:

医院:hospital

旅馆:hotel

小区:village

学校:school

这些都可以获得你想要的信息,当然你如果想要全部类型的可以使用place(我试了很多,发现这个最合适)

 2.苹果提供的这个接口,一次只会返回固定的10个数组,如果你有需求要获得多个的话,建议使用不同naturalLanguageQuery获得多次请求后将其拼组在一起(有什么好的办法,也求大神们评论告诉我)

3.除了苹果地图提供这个接口外还有其他的地图也能获得,可以使用http协议获得,如:

google接口:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=%f,%f&language=en&radius=1000&sensor=false&key=%@

百度接口:

http://api.map.baidu.com/place/v2/search?&query=%@&location=%f,%f&radius=2000&output=json&ak=%@

具体使用方法,请参考官方文档,这里我就不介绍了。

转载于:https://my.oschina.net/iq19900204/blog/270625

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中调用苹果地图的代码可以使用苹果提供的MapKit库来实现。MapKit库是苹果开发的用于在iOS和macOS平台上显示地图和处理地理位置信息的框架。 以下是一个简单的示例代码,演示如何在Python中使用MapKit库调用苹果地图: ```python import objc from PyObjCTools import AppHelper # 导入MapKit框架 objc.loadBundle('MapKit', globals(), bundle_path=objc.pathForFramework('/System/Library/Frameworks/MapKit.framework')) # 创建一个MapView对象 map_view = objc.lookUpClass('MKMapView').alloc().initWithFrame_(((0, 0), (400, 400))) # 设置地图的显示区域 region = objc.lookUpClass('MKCoordinateRegion') coordinate = objc.lookUpClass('CLLocationCoordinate2D') center = coordinate.alloc().init() center.latitude = 37.331789 center.longitude = -122.029620 span = coordinate.alloc().init() span.latitudeDelta = 0.01 span.longitudeDelta = 0.01 map_region = region.regionWithCenter_span_(center, span) map_view.setRegion_animated_(map_region, True) # 将MapView添加到窗口中显示 window = objc.lookUpClass('NSWindow').alloc().initWithContentRect_styleMask_backing_defer_(((0, 0), (400, 400)), 15, 2, False) window.contentView().addSubview_(map_view) window.makeKeyAndOrderFront_(None) # 运行主循环 AppHelper.runEventLoop() ``` 请注意,上述代码是使用PyObjC库来调用Objective-C代码的方式。在运行代码之前,需要确保已经安装了PyObjC库,并且在运行代码时,需要在macOS平台上执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值