1、使用iOS定位功能 需要使用此类 CLLocationManager* locationManager,首先引入库文件
#import <CoreLocation/CoreLocation.h>,在工程配置中添加CoreLocation的静态库。
2、在定位的类实现此协议 <CLLocationManagerDelegate>
3、初始化类,新建locationManager对象。
-(id)initLocationManager { self.locationManager=[[CLLocationManager alloc]init]; [[self locationManager] setDelegate:self]; self.locationManager.headingFilter=0; self.locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters; self.locationManager.distanceFilter = 10.0f; return self; }
4、获得当前定位位置
-(CLLocation*) userLocation { return [locationManager location]; }
5、根据需要实现当定位位置变化的方法
-(void) locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation { self.preLocation = self.lastLocation; self.lastLocation=[newLocation coordinate]; self.lastTime = [NSDate date]; // NSLog(@"newLocation=%f,%f",self.lastLocation.latitude,self.lastLocation.longitude); if (userLocationAccuracyIndicator == nil) { RMCircle* circle = [[RMCircle alloc] initWithContents:self.mapView radiusInMeters:[newLocation horizontalAccuracy] latLong:[newLocation coordinate]]; [circle setLineWidthInPixels:2.0f]; // b2bed4 [circle setLineColor:[UIColor colorWithRed:1.f/255.f green:92.f/255.f blue:244.f/255.f alpha:1.0f]]; [circle setFillColor:[UIColor colorWithRed:178.f/255.f green:190.f/255.f blue:221.f/255.f alpha:0.5f]]; [self setUserLocationAccuracyIndicator:circle]; // add the user location's accuracy indicator as the first layer // [[self overlay] insertSublayer:circle atIndex:0]; circle.name=@"MYLOCATION"; [self.mapView.markerManager addRMCircle:circle]; } else { [userLocationAccuracyIndicator moveToLatLong:[newLocation coordinate]]; [userLocationAccuracyIndicator setRadiusInMeters:[newLocation horizontalAccuracy]]; } if (userLocationMarker == nil) { RMMarker* marker = [[RMMarker alloc] initWithUIImage:[UIImage imageNamed:@"image/gps_arrow.png"] anchorPoint:CGPointMake(0.5f,0.5f)]; UIView* view=[NSUIUtil bubbleView:@"我的位置"]; RMMarker* mark=[[RMMarker alloc]initWithUIView:view placename:@"我的位置"]; NSPlace* point=[[NSPlace alloc]init]; point.point=[newLocation coordinate]; point.name=@"我的位置"; marker.place=point; mark.name=@"MYLOCATION"; marker.name=@"MYLOCATION"; [self setUserLocationMarker:marker]; [self.mapView.markerManager addMarker:marker AtLatLong:point.point]; //[self.mapView.markerManager addMarker:mark AtLatLong:point.point]; } else{ [self.mapView.markerManager moveMarker:userLocationMarker AtLatLon:[newLocation coordinate]]; } }
#pragma mark CLLocationManagerDelegate protocol -(void) locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error { NSLog(@"Location manager failed with error: %@",[error localizedDescription]); } -(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{ if (userLocationMarker&&newHeading.headingAccuracy>0){ double nowAngle = 0; NSDate *nowTime = [NSDate date]; double del_lat = self.lastLocation.latitude - self.preLocation.latitude; double del_lon = self.lastLocation.longitude - self.preLocation.longitude; if(self.preLocation.latitude!=0.0 && self.preLocation.longitude!=0.0 && fabs(del_lat) + fabs(del_lon)> 0.0001 && [nowTime timeIntervalSinceDate:self.lastTime] < 3.0) { nowAngle = atan2(del_lon, del_lat); } else{ [userLocationMarker setAffineTransform:CGAffineTransformIdentity]; nowAngle=1.0*M_PI*(newHeading.magneticHeading+[self getDeviceOrientation])/180.0; } CGAffineTransform angle=CGAffineTransformMakeRotation(nowAngle); [userLocationMarker setAffineTransform:angle]; } } -(int)getDeviceOrientation{ UIInterfaceOrientation or= [UIApplication sharedApplication].statusBarOrientation; switch (or) { case UIInterfaceOrientationLandscapeLeft: return -90; break; case UIInterfaceOrientationLandscapeRight: return 90; break; default: break; } return 0; }
相关推荐
iOS定位的demo
IOS定位管理工具类,方便全局使用
模拟器下运行的话请设置模拟器的经纬度
更改iOS定位 swift
交友盲盒网站5.0全新源码,修复iOS定位、新增自定义搜索框抽取.txt
使用iOS自带的定位代码,实现简单的定位
根据经纬度实时定位,iOS8最新功能,可以根据经纬度准确定位自己的地理位置。
实现iOS地图定位功能,制作的的小demo,其中涵盖的功能基本地图定位.
一个闪烁的圆圈控件,主要用于定位,ios上的
获取当前位置 简单的实现定位,希望各位勿喷,牛刀小试
iOS定位服务Core Location使用详解
代码演示了使用CLLocationManager进行定位,来获取位置信息的示例
可以获取经纬度信息、并转换成城市信息。可用于自动定位等。
iOS Location的用法。包括一次性定位、持续定位、基站定位MonitoringLocation、指南针、区域监听、ibeacon监听
NULL 博文链接:https://zhangmingwei.iteye.com/blog/2017385
本demo是基于系统自带的MapKit实现的地位和目标大头针然后调用系统地图导航。建议真机运行,如果在模拟器上运行的话,请设置一下你的模拟器的经纬度
本文使用了苹果自带的类来实现定位 和反地理编码,简单便捷
这是一个ios的map源码,可以定位用户的位置等信息 -This is an ios source of the map can locate the user' s location and other information
简易的定位功能
NULL 博文链接:https://zhangmingwei.iteye.com/blog/1859342