iOS 苹果自带地图需求开发——1

在iOS开发的过程中,不可避免的要涉及到地图方面的需求,本人也刚刚实现了一些地图上面的需求所以整理了以下的一些实现方式。
1.实现景点(地点)的定位功能
比较简单 话不多说上代码

// 引入mapKit和location框架
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>
// 签订协议
@interface MapLocationViewController ()<MKMapViewDelegate,CLLocationManagerDelegate>

@property (nonatomic, strong) CLGeocoder *geocoder;
@property (nonatomic, strong) MKMapView *mapView;
@property (nonatomic, strong) CLLocationManager *locationManager;
@end
- (void)viewDidLoad {
    [super viewDidLoad];
    self.mapView.userTrackingMode = MKUserTrackingModeFollow;
    // 2.设置地图类型
    self.mapView.mapType = MKMapTypeStandard;
    // 3.设置代理
    self.mapView.delegate = self;
    // 添加地图视图
    [self.view addSubview:self.mapView];
        // 景点的经纬度传到下面的方法里面
    [self locateToLatitude:23.126372 longitude:113.395528];
 }
 #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.mapView setRegion:region animated:YES];
}

通过以上的简单代码 即可实现地点(景点)在地图上的定位。

2.实现用户自身地理位置定位
在这个地方有一个坑 就是想要获取用户的位置定位要获得用户的许可,这是需要一个系统的是否允许获取的弹框 想要让系统弹出这个提示框 需要在pilist文件里面添加NSLocationAlwaysUsageDescription这个属性(复制即可)但是一般的Xcode工程会有两个plist文件 这个属性一定要加入到正确的plist文件里 (本人就因为加错,困扰了几个小时)好了 加好了这个属性之后 附上代码

#pragma mark - MKMapViewDelegate
/**
 *  当用户的位置更新,就会调用
 *
 *  @param userLocation 表示地图上蓝色那颗大头针的数据
 */
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    userLocation.title = @"在这里";
    userLocation.subtitle = @"我现在在这个位置";

    CLLocationCoordinate2D center = userLocation.location.coordinate;
    NSLog(@"%f %f", center.latitude, center.longitude);

    // 设置地图的显示范围, 让其显示到当前指定的位置
    MKCoordinateSpan span = MKCoordinateSpanMake(0.021321, 0.019366);//这个显示大小精度自己调整
    MKCoordinateRegion region = MKCoordinateRegionMake(center, span);
    [mapView setRegion:region animated:YES];
}

好了以上就是在地图需求中会涉及到得两个简单的需求,之后我会写上一些更深层的需求。感谢大家阅读和指点批评。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值