import MapKit/MapKit.h
@interface ViewController () UISearchBarDelegate
@property (nonatomic,strong) MKMapView *mapView;
@property (nonatomic,strong) UISearchBar *searchBar;
@end
@implementation ViewController
(void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 400, 44)];
self.searchBar.delegate = self;
self.navigationItem.titleView = self.searchBar;
self.mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
[self.mapView setRegion:MKCoordinateRegionMake(CLLocationCoordinate2DMake(22.579911, 113.960739), MKCoordinateSpanMake(0.05, 0.05)) animated:YES];
[self.view addSubview:self.mapView];
}
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
MKLocalSearchRequest *req = [[MKLocalSearchRequest alloc] init];
//设置查询的内容
req.naturalLanguageQuery = searchBar.text;
//设置查询的区域
req.region = MKCoordinateRegionMake(CLLocationCoordinate2DMake(22.579911, 113.960739), MKCoordinateSpanMake(0.05, 0.05));
MKLocalSearch *localSeach = [[MKLocalSearch alloc] initWithRequest:req];
//开始查询
[localSeach startWithCompletionHandler:^(MKLocalSearchResponse * _Nullable response, NSError * _Nullable error) {
//清除之前的大头针
[self.mapView removeAnnotations:self.mapView.annotations];
for (MKMapItem *item in response.mapItems) {
NSLog(@"%@ ---> %@",item.name,item.phoneNumber);
MKPointAnnotation *ann = [[MKPointAnnotation alloc] init];
ann.title = item.name;
ann.subtitle = item.phoneNumber;
ann.coordinate = item.placemark.location.coordinate;
[self.mapView addAnnotation:ann];
};
}];
}