地图作为一种生活出行的必备工具为我们的生活提供了很多的便利 在此为大家讲述下 在ios开发中地图应用的使用
一 导入库文件
1.png
二 拖拽控件并关联
三 具体代码的实现
1 导入头文件
// 地图
#import <MapKit/MapKit.h>
//定位
#import <CoreLocation/CoreLocation.h>
2 在viewDidLoad 中 实现主要代码
- (void)viewDidLoad
{
[super viewDidLoad];
// 设置地图显示风格
self.MpView.mapType = MKMapTypeStandard;
// 设置地图缩放
self.MpView.zoomEnabled = YES;
// 设置地图滚动
self.MpView.scrollEnabled = YES;
// 设置地图旋转
self.MpView.rotateEnabled = YES;
//代理
self.MpView.delegate = self;
// 调用自己实现的方法设置地图的显示位置和区域
[self locateToLatitude:23 longitude:113];
// 打印
NSLog(@"用于当前是否位于地图中:%d",self.MpView.userLocationVisible);
}
3 在按钮的方法中实现如下的方式
- (IBAction)goClicked:(id)sender
{
// 关闭两个文本框的虚拟键盘
[self.jingdu resignFirstResponder];
[self.weidu resignFirstResponder];
NSString* latitudeStr = self.jingdu.text;
NSString* longtitudeStr = self.weidu.text;
// 如果用户输入的经度、纬度不为空
if (latitudeStr != nil && latitudeStr.length > 0
&& longtitudeStr != nil && longtitudeStr.length > 0)
{
// 调用自己实现的方法设置地图的显示位置和显示区域
[self locateToLatitude:latitudeStr.floatValue
longitude:longtitudeStr.floatValue];
}
}
4 进行封装
#pragma mark - 显示位置和显示区域 --封装
- (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.MpView setRegion:region animated:YES];
}
5 写下代理方法 在代理方法中<MKMapViewDelegate>直接粘贴即可(可写可不写)
#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(@"地图控件渲染地图完成!");
}
网友评论