iOS开发之地图

作者: 呼噜ZR | 来源:发表于2016-02-23 12:11 被阅读268次

    目前,地图和定位功能被大量使用于应用开发中,在实际使用中定位这一功能可以服务于我们,使我们的生活更加便捷,多彩,例如,你到了一个地方,想找一找周边的美食或者酒店其他的,打开相应的软件,软件就会自动定位并帮我们查找周边。
    那么这一功能是如何实现的呢,今天就让我们来了解一下在开发过程中如何使用地图和定位。
    地图视图依赖于MapKit这一类,而定位则依赖于CoreLocation这一类,所以我们使用地图和定位时需要先添加这两个类
    首先我们先声明一个私有地图变量

    //声明一个地图视图
    @property(nonatomic,strong)MKMapView *mapView;
    

    然后初始化这个地图并添加到视图

    //1 创建地图
        self.mapView = [[MKMapView alloc]initWithFrame:[UIScreen mainScreen].bounds];
        //把地图添加进控制器
        [self.view addSubview:_mapView];
    

    我们还可以根据地图的属性进行不同的设置
    例如我们可以通过MKMapType来设置地图类型,xcode为我们提供了三种地图模式可选

    MKMapTypeStandard 标准式的行政地图(会显示城市,街道等)
    MKMapTypeSatellite 标准的卫星地图
    MKMapTypeHybrid 混合地图(在卫星图上显示街道等名称)
    //地图类型
        _mapView.mapType = MKMapTypeStandard;
    

    这样一张简单的世界地图就显示出来了


    如果我们需要使用定位功能在创建地图之后,需要开启定位功能

    //开启定位
        //创建定位管理对象
        CLLocationManager *locationManager = [[CLLocationManager alloc]init];
        //判断当前定位是否可用
        if (![CLLocationManager locationServicesEnabled]) {
            return;
        }
        
        if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined ) {
            
            [locationManager requestWhenInUseAuthorization];
            
        }else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedWhenInUse){
            //设置定位精度
            locationManager .desiredAccuracy = kCLLocationAccuracyBest;
            //设置没移动多少米获取一次位置
            locationManager.distanceFilter = 100;
            //开启定位
            [locationManager startUpdatingLocation];
        }
    

    如果开发需要我们也可以根据情况关闭定位

    - (void) stopUpdatingLocation;
    

    当然这只是关于xcode原生地图和定位的简单使用, 但是在我们开发中往往会使用一些第三方地图服务,例如百度地图、高德地图等等,并且这些第三方为我们提供了较为详细的使用说明,如果有需要的朋友可以参考以下链接:
    高德地图开发平台:http://lbs.amap.com
    百度地图开放平台:http://lbsyun.baidu.com/index.php?title=iossdk

    相关文章

      网友评论

      • 沧海千寻:多谢楼主了。但是我按照你的方法做了一个demo为什么不能定位呢。。。

      本文标题:iOS开发之地图

      本文链接:https://www.haomeiwen.com/subject/kcwpkttx.html