-
(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
{
//
}
}];//
}
这一句很重要,因为他要是一个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=%@
具体使用方法,请参考官方文档,这里我就不介绍了。