定位知识的回顾

2018-06-26  本文已影响17人  Rui哥

1.定位
CoreLocation框架
CLLocationManager
设置代理
开始定位
代理方法CLLocation对象,Coordinate:latitude longitude

-(CLLocationManager *)locMgr{
    if (!_locMgr) {
        _locMgr = [[CLLocationManager alloc]init];
        _locMgr.delegate = self;
        _locMgr.distanceFilter = kCLDistanceFilterNone;
        _locMgr.desiredAccuracy = kCLLocationAccuracyBest ;
    }
    return _locMgr;
}

 [self.locMgr startUpdatingLocation];

#pragma mark-CLLocationManagerDelegate

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{

    CLLocation *location = locations[0];

    [_locMgr stopUpdatingLocation];
}

1.1定位 之 区域监听

  CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(40, 116);
  CLLocationDistance   distance = 0.01;
  CLRegion *region = [[CLRegion alloc]initCircularRegionWithCenter:coordinate radius:distance identifier:@"MangoHome"];
    
  [self.locMgr startMonitoringForRegion:region];

#pragma mark-CLLocationManagerDelegate
-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region{

  [self.locMgr stopMonitoringForRegion:region];
}
-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region{
  [self.locMgr stopMonitoringForRegion:region];
}

2.地理编码,反地理编码
Coordinate -> CLPlaceMarks ->CLPlaceMark -> CLLocation
注意: 在获取CLPlaceMark 中的city 时需要注意,如果是直辖市(adm)时那么city是没有值得

3.地图的基本使用
注意: 如果是在storyboard 中使用mapView 时需要导入 <MKMapkit/MKMapkit.h>框架,否则可能报错

这个设置可以在使用地图是拿到用户的定位(跟踪用户的位置)
self.mapView.userTrackingMode = MKUserTrackingModeFollow;

展示地图时不需要获取用户的位置
self.mapView.userTrackingMode = MKUserTrackingModeNone;

展示地图时获取用户的位置(跟踪)和方向
self.mapView.userTrackingMode = MKUserTrackingModeFollowWithHeading;

MKUserLocation 大头针模型 -> CLLocation --title -- subtitle
setRegion: 设置地图展示的区域(中心点和跨度)
setCenterCoordinate:(设置地图展示的中心点)
上一篇下一篇

猜你喜欢

热点阅读