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定位相关的知识点,包括核心位置框架(Core Location)、权限管理、定位精度、节能模式以及实时定位更新...
这个“iOS 定位+大头针+导航demo”显然是一款基于地图的示例应用,用于演示如何集成定位服务、显示大头针标记以及实现导航功能。下面我们将深入探讨这些关键知识点。 首先,我们要了解的是iOS中的定位服务。这主要...
IOS定位管理工具类,方便全局使用
"ios定位零误差,应用极其简单的方法"这个标题暗示了博主张明伟分享了一种能实现高精度定位的技术,且操作简便。虽然描述部分为空,但我们可以根据标签“源码”和“工具”推测,这篇博客可能提供了源代码示例和实用...
以下将详细介绍标题“iOS 定位+大头针+导航”所涉及的知识点。 首先,我们来讨论iOS中的定位服务。iOS设备内建了GPS硬件,可以通过CoreLocation框架获取用户的位置信息。开发者需要在Info.plist文件中声明使用定位...
本文将深入探讨使用Swift进行iOS定位的方法,特别是通过`CoreLocation`框架来实现的一次性定位、持续定位、基站定位、指南针功能、区域监听以及iBeacon监听。 ### 一、一次性定位 一次性定位是获取用户当前地理位置...
首先,iOS中的定位服务主要由Core Location框架提供,它提供了与位置数据相关的接口和类,如CLLocationManager和CLGeocoder。CLLocationManager用于管理定位服务的开启、关闭以及设置定位参数,如精度、更新频率等。...
在iOS系统中,实现根据经纬度的实时定位主要依赖于Core Location框架,这是Apple提供的一套强大的定位服务API。本文将深入探讨如何利用这个框架在iOS应用中进行精确的地理位置定位。 1. Core Location框架介绍 Core...
交友盲盒网站5.0全新源码,修复iOS定位、新增自定义搜索框抽取.txt
在iOS开发中,苹果提供了内置的Core Location框架,使得开发者能够轻松地集成定位功能到自己的应用中。这个框架允许我们获取设备的地理位置信息,包括经纬度、海拔、速度和方向等。下面我们将深入探讨如何使用iOS...
在iOS开发中,Core Location是苹果提供的一套强大的框架,用于获取设备的地理位置信息。它允许开发者集成到应用中,实现精准的定位服务,包括经纬度坐标、海拔、速度等数据。本示例将深入讲解如何使用Objective-C...
在iOS开发中,实现基本的定位功能是许多应用的核心需求,尤其对于导航、社交和生活服务类应用来说至关重要。本教程将介绍如何使用Objective-C来实现这一功能,主要涉及`CLLocationManager`、`CLLocation`和`...
locationManager.requestAlwaysAuthorization() // 请求始终定位权限(iOS 13及以上) } ``` 实现`CLLocationManagerDelegate`协议的方法,如`locationManager(_:didUpdateLocations:)`,它会在位置更新时被调用:...
在iOS开发中,地图定位是一项基础且重要的功能,它允许用户获取当前位置信息并进行相关操作。本Demo,"ios 地图定位 demo",旨在帮助开发者了解如何在iOS应用中集成地图定位服务,以实现基本的地图定位功能。下面将...
在iOS开发中,创建一个闪烁的圆圈控件可以为用户提供一种引人注意的视觉指示,通常用于定位或强调某个特定的功能。这个“闪烁的圆圈控件”可能是一个自定义视图,专为iOS平台设计,以实现特定的交互效果。在本案例中...
本教程将深入探讨如何在Swift中更改iOS设备的定位设置,并提供相关知识点。 1. **CoreLocation框架** CoreLocation是iOS SDK中的一个核心组件,用于处理与地理位置相关的数据,如经度、纬度、海拔、速度等。开发者...
一、iOS定位服务基础 1. Core Location框架:苹果提供了一个名为Core Location的框架,它是iOS、watchOS和tvOS中处理地理位置信息的核心组件。它允许开发者获取用户的实时位置、方向、速度等信息,同时还能管理位置...
一、iOS定位服务 iOS设备支持GPS、Wi-Fi、蜂窝数据和iBeacon等多种定位技术,通过Core Location框架提供服务。开发者可以使用Core Location框架获取用户的位置信息,包括经纬度坐标、海拔、速度和方向。为了保护用户...
在iOS开发中,苹果提供了内置的定位服务框架Core Location,使得开发者可以轻松地在应用程序中集成定位功能。本文将深入探讨iOS自带的定位服务,并基于提供的`mapViewController`这一文件名称,推测这是一个与地图和...