#import "ViewController.h"
#import@interface?
ViewController ()
{
MKMapView *mkmapview;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//? ? 初始化地圖
mkmapview = [[MKMapView alloc] init];
//? ? 設置位置
[mkmapview setFrame:self.view.bounds];
//? ? 設置地圖類型為標準類型
mkmapview.mapType = MKMapTypeStandard;
//? ? 設置縮放
mkmapview.zoomEnabled = YES;
//? ? 設置旋轉
mkmapview.rotateEnabled = YES;
//? ? 設置用戶顯示位置
mkmapview.showsUserLocation = YES;
//? ? 設置代理
mkmapview.delegate = self;
//? ? ?設置地圖的經緯度
CLLocationCoordinate2D center = {40.0412330000,116.3004370000};
//? ? 設置地圖顯示范圍為
MKCoordinateSpan span;
//? ? 地圖顯示范圍越小,細節越清楚
span.latitudeDelta = 0.01;
span.longitudeDelta = 0.01;
//? ? 創建mkcoor對象,該對象代表了地圖的顯示中心和顯示范圍
MKCoordinateRegion refion = {center,span};
//? ? 設置當前地圖的顯示中心和顯示范圍
[mkmapview setRegion:refion animated:YES];
[self.view addSubview:mkmapview];
UISearchBar *searchbar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, 40)];
searchbar.prompt = @"搜索";
searchbar.searchBarStyle = UISearchBarStyleMinimal;
searchbar.translucent = YES;
searchbar.delegate = self;
[mkmapview addSubview:searchbar];
}
//點擊搜索按鈕調用
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
//? ? 獲取搜索內容
NSString *str = searchBar.text;
//? ? 將文字由逗號隔開
NSArray *array = [str componentsSeparatedByString:@","];
if ([array count] == 2) {
//? ? ?設置地圖的經緯度
CLLocationDegrees latitude = [array[0]floatValue];
CLLocationDegrees longitude = [array[1]floatValue];
if (latitude >= 90 || latitude <= -90) {
NSLog(@"緯度超標");
return;
}
if (longitude >= 180 || longitude <= -180) {
NSLog(@"經度超標");
return;
}
CLLocationCoordinate2D center = {latitude,longitude};
//? ? 設置地圖顯示范圍為
MKCoordinateSpan span;
//? ? 地圖顯示范圍越小,細節越清楚
span.latitudeDelta = 0.01;
span.longitudeDelta = 0.01;
//? ? 創建mkcoor對象,該對象代表了地圖的顯示中心和顯示范圍
MKCoordinateRegion refion = {center,span};
//? ? 設置當前地圖的顯示中心和顯示范圍
[mkmapview setRegion:refion animated:YES];
}
}
//顯示區域改變完成時
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{
NSLog(@"顯示區域改變完成時");
}
//加載數據完成時激發該方法
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView{
NSLog(@"加載數據完成時激發該方法");
}
//渲染地圖完成時技法該方法
- (void)mapViewDidFinishRenderingMap:(MKMapView *)mapView fullyRendered:(BOOL)fullyRendered NS_AVAILABLE(10_9, 7_0){
NSLog(@"渲染地圖完成時技法該方法");
}
@end