ios系统自带地图功能使用MapKit

1.先展示效果图



展示的效果很简单,就是根据经纬度找地址。

2.注意点


ios系统自带地图功能使用MapKit_第1张图片
库文件

大家不要忘了导库

3.代码展示

3.1   .m文件

```

- (void)viewDidLoad {

[super viewDidLoad];

/**类型

MKMapTypeStandard = 0,可映射类型标准

MKMapTypeSatellite,  可映射类型卫星

MKMapTypeHybrid,  可映射类型混合(普通地图覆盖于卫星云图之上)

MKMapTypeSatelliteFlyover MK地图类型的国家立交桥(3D 立体卫星)

MKMapTypeHybridFlyover    MK地图型混合飞行(3D 立体混合)

*/

//设置地图的显示风格

self.mapView.mapType = MKMapTypeStandard;

//设置地图可缩放

self.mapView.zoomEnabled = YES;

//设置地图可滚动

self.mapView.scrollEnabled = YES;

//设置地图可旋转

self.mapView.rotateEnabled = YES;

//设置显示用户当前位置

self.mapView.showsUserLocation = YES;

//为mapView设置代理

self.mapView.delegate = self;

[self locateTolatitude:23.126272 longitude:113.395568];

NSLog(@"用户当前是否位于地图中:%d" , self.mapView.userLocationVisible);

}

- (IBAction)gogogo:(id)sender {

//关闭两个文本框的虚拟键盘

[self.weidu resignFirstResponder];

[self.jingdu resignFirstResponder];

NSString* latitudeStr = self.weidu.text;

NSString* longtitudeStr = self.jingdu.text;

//如果用户输入的经纬度不为空

if (latitudeStr != nil && latitudeStr.length > 0

&& longtitudeStr != nil && longtitudeStr.length > 0)

{

// 调用自己实现的方法设置地图的显示位置和显示区域

[self locateTolatitude:latitudeStr.floatValue

longitude:longtitudeStr.floatValue];

}

}

-(void)locateTolatitude:(CGFloat)latitude longitude:(CGFloat)longitude

{

//设置地图中心的经度维度

CLLocationCoordinate2D center = {latitude,longitude};

// 也可以使用如下方式设置经、纬度

//center.latitude = latitude;

// center.longitude = longitude;

//设置地图的显示范围

MKCoordinateSpan span;

//地图显示范围越小,越清楚

span.latitudeDelta = 0.01;

span.longitudeDelta = 0.01;

// 创建MKCoordinateRegion对象,该对象代表了地图的显示中心和显示范围。

MKCoordinateRegion region = {center,span};

// 设置当前地图的显示中心和显示范围

[self.mapView setRegion:region animated:YES];

}

#pragma mark -MKMapViewDelegate(地图代理)

// MKMapViewDelegate协议中的方法,当MKMapView显示区域将要发生改变时激发该方法

- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated

{

NSLog(@"地图控件的显示区域将要发生改变!");

}

// MKMapViewDelegate协议中的方法,当MKMapView显示区域改变完成时激发该方法

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animatedx

{

NSLog(@"地图控件的显示区域完成了改变!");

}

// MKMapViewDelegate协议中的方法,当MKMapView开始加载数据时激发该方法

- (void) mapViewWillStartLoadingMap:(MKMapView *)mapView

{

NSLog(@"地图控件开始加载地图数据!");

}

// MKMapViewDelegate协议中的方法,当MKMapView加载数据完成时激发该方法

- (void) mapViewDidFinishLoadingMap:(MKMapView *)mapView

{

NSLog(@"地图控件加载地图数据完成!");

}

// MKMapViewDelegate协议中的方法,当MKMapView加载数据失败时激发该方法

- (void) mapViewDidFailLoadingMap:(MKMapView *)mapView

withError:(NSError *)error

{

NSLog(@"地图控件加载地图数据发生错误,错误信息 %@!" , error);

}

// MKMapViewDelegate协议中的方法,当MKMapView开始渲染地图时激发该方法

- (void) mapViewWillStartRenderingMap:(MKMapView *)mapView

{

NSLog(@"地图控件开始渲染地图!");

}

// MKMapViewDelegate协议中的方法,当MKMapView渲染地图完成时激发该方法

- (void) mapViewDidFinishRenderingMap:(MKMapView *)mapView

fullyRendered:(BOOL)fullyRendered

{

NSLog(@"地图控件渲染地图完成!");

}

```



4.代码粗糙,见谅。

你可能感兴趣的:(ios系统自带地图功能使用MapKit)