CoreLocation MKMapView

高德开发者平台 有开发指南

iOS9配置网络:

<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>

请看这里  原文章:http://www.oschina.net/question/262659_149771?fromerr=Y0rzKueR

1. GPS定位:<CoreAudioKit/CoreAudioKit.h>

1. 基本属性:

1>

CLLocationManager:定位管理器   协议:<CLLocationManagerdelegate> 设置代理 实现方法

CLLocation:位置的具体信息(经纬度 等等)

CLHeading:设备移动方向

CLRegion:一个区域(常用子类:CLCircularRegion:圆形 CLBeaconRegion:蓝牙)

[CLLocationManager locationServicesEnabled] 定位服务是否可用

distanceFilter:自动过滤距离 移动某个距离之后重新调用代理方法 更新位置

desiredAccuracy:定位的精度

self.manager.desiredAccuracy = kCLLocationAccuracyBest; // 最佳精度
self.manager.pausesLocationUpdatesAutomatically = YES; // 不需要的时候可以自动暂停
- (void)viewDidLoad {
    [super viewDidLoad];
    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;

// 允许定位
    [self.locationManager requestAlwaysAuthorization];

// 自动过滤距离 移动100米之后重新调用代理方法 更新位置
    self.locationManager.distanceFilter = 100.0;  // 米为单位

// iOS7的系统下 写完start就可以开始定位了
    [self.locationManager startUpdatingLocation];

// 初始化地理编码器:
    self.geocoder = [CLGeocoder new];
}

2> CLGeocoder 地理编码器:

创建:

self.geocoder = [CLGeocoder new];

编码:提供某个字符串 来定位位置:- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;

[self.geocoder geocodeAddressString:self.inputLocation.text completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        // 取出一个位置信息
        CLPlacemark *placeMark = placemarks.lastObject;
        // 输出信息
        NSLog(@"%lf   %lf", placeMark.location.coordinate.latitude, placeMark.location.coordinate.longitude);
    }];

反编码:根据位置显示该地方的名字等等

[self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        CLPlacemark *place = placemarks.lastObject;
        self.inputLocation.text = place.name;
        NSLog(@" %@",place.name);
    }];

2. 获取位置信息:

iOS7的系统下 写完start就可以开始定位了:

[self.locationManager startUpdatingLocation];

但是在iOS之后就需要设置是否允许定位:设置完成这个之后才可以定位

requestAlwaysAuthorization:一直允许定位

requestWhenInUseAuthorization:用户允许

在添加之前需要在info.plist 文件中添加字段:NSLocationAlwaysUsageDescription  (后面的字符串知识提示的时候会显示 并没有什么用)

[self.locationManager requestAlwaysAuthorization];

2. 地图:<MapKit/MapKit.h>

MKUserLocation:地图上的大头针 有title subtitle等属性

MKMapView:用来显示地图 与视图一样 初始化需要确定frame

//     创建比例系数 显示在某个点上
    MKCoordinateRegion region = MKCoordinateRegionMake(userLocation.coordinate, MKCoordinateSpanMake(0.1, 0.1)) ;
//     比例系数越小 放大效果越大
    self.mapView.region = region;

showsUserLocation 设置为YES 允许跟踪定位 (MKMapView的属性)

可自定义MKAnnotation

时间: 2024-11-10 12:30:45

CoreLocation MKMapView的相关文章

iOS:地图:MapKit和CoreLocation

地图:MapKit和CoreLocation 简介: 现在很多的社交软件都引入了地图和定位功能,要想实现这2大功能,那就不得不学习其中的2个框架:MaKit和CoreLocation CoreLocation框架可以使用硬件设备来进行定位服务 MapKit框架能够使应用程序做一些地图展示与交互的相关功能 几乎所有的iOS设备都支持位置服务,不过在使用位置服务之前,最好检查一下可用性 手机定位的三种方式:手机基站.WIFI.GPS 添加框架: #import <MapKit/MapKit.h>

iOS 利用CoreLocation和MapKit开发搜索附近的商场功能

代码如下: ////  SearchNearbyShopViewController.m//  SearchNearbyShop////  Created by Linzhixiao on 16/2/14.//  Copyright © 2016年 B5m. All rights reserved.// #import "SearchNearbyShopViewController.h"#import <CoreLocation/CoreLocation.h>#import

[iOS 利用MapKit和CoreLocation框架打造精简的定位和导航]

运行效果:            一.利用<CoreLocation/CoreLocation.h>定位 创建变量 CLLocationManager *locationManager ,并加入<CLLocationManagerDelegate>协议 以下是Viewdidload里需要初始化的参数: self.locationManager = [[CLLocationManager alloc]init]; [self.locationManager setDelegate:s

简易地图(MKMapView,CLLocationManagerDelegate,CLGeocoder)

概要 本章主要简示了IOS里面位置服务的使用,包括定位,地图,地图标记以及地图定位.由于现在的地图开发和以前的差别比较大,而且地图涉及的东西相对而言复杂点,所以本实验耗时比较多,有的地方还存在一些问题. 结果展示 注意文本框的两个数字是当前的经纬度,地图视图切换是切换到该经纬度的位置,最后红色的那个标注即为地图中的经纬度,不过由于经纬度解析部分有问题,所以未能显示经纬度的对应地址是什么.(示例里面不是使用代理来解析经纬度的,使用的是CLGeocoder,因为以前使用的代理官方建议不再使用了.)

iOS MKMapView嵌入地图

要看到那个google的地图,在实现上也相当简便.嵌入地图时需要MKMapView这个类, 它有很多方法和属性,不过如果只是想得到基本的定位功能的话,只需实例化一个对像然后加到当前的 view上就可以了. <一>先介绍一下,它的几个常用的属性. region 用来设置地图的那一部份被显示,它是一个结构体,定义如下: typedef struct{ CLLocationCoordinate2D center;//表示显示的中心 MKCoordinateSpan span; //表示比例 }MKC

【iOS开发-110】MapKit框架的主要类MKMapView以及代理方法,大头针的使用addAnnotation

#import "ViewController.h" #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> @interface ViewController ()<MKMapViewDelegate> @property(nonatomic,strong) CLLocationManager *locMgr; @property (weak, nonatomic) IBOut

Corelocation及地图控件学习笔记

Corelocation基本使用 在地图章节的学习中,首先要学的便是用户位置定位,因此我们首先要掌握Corelocation的使用.(在IOS8以前可以系统会直接请求授权,现在需要我们自己调用方式通知系统请求授权) 首先设置一个Corelocation属性并实现懒加载设置代理,此对象需要自己调用方法startUpdatingLocation及stopUpdatingLocation来开始和结束位置获取 1 //定位管理者 2 @property (nonatomic , strong ) CLL

iOS iOS9.0 的CoreLocation定位

一.简介 iOS9.0如果当前处于前台授权状态,默认是不可以后台获取用户位置. 如果在前台授权下,让其能获取到后台定位,该怎么办 可以设置以下属性为YES,就可以继续获取后台位置,但是会出现蓝条 使用注意:必须设置对应的后台模式,勾选后台模式:location updates @property(assign,nonatomic) BOOL allowsBackgroundLocationUpdates 注意:iOS9.0 可以单次请求用户位置 - (void)requestLocation /

CoreLocation的基本使用

CoreLocation是iOS中用于定位服务的系统框架,它提供了强大的API可以让我们开发者用简洁的的代码实现强大而丰富的功能...下面就来介绍一下它的基本使用: 1.首先我们必须先导入CoreLocation框架以及对应的主头文件:#import <CoreLocation/CoreLocation.h> 2.创建CLLocationManager对象并设置代理:    self.locationM = [[CLLocationManager alloc] init];    self.l