iOS定位 - 普通定位(没有地图) - 反地理编码(得到具体位置),下面通过代码给大家详解,代码如下:

#import 使用到的头文件 要引入CoreLocation这个包

使用的代理名称

//1.使用定位服务

//设置app有访问定位服务的权限

//在使用应用期间 / 始终(app在后台)

//info.plist文件添加以下两条(或者其中一条):

//NSLocationWhenInUseUsageDescription 在使用应用期间

//NSLocationAlwaysUsageDescription 始终

//2.LocationManager 对象管理相关的定位服务

_manager = [[CLLocationManager alloc] init];

//manager判断: 手机是否开启定位 / app是否有访问定位的权限

//[CLLocationManager locationServicesEnabled]; //手机是否开启定位

//[CLLocationManager authorizationStatus]; //app访问定位的权限的状态

if (![CLLocationManager locationServicesEnabled] || [CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedWhenInUse) {

[_manager requestWhenInUseAuthorization]; //向用户请求访问定位服务的权限

}

_manager.delegate = self;

_manager.desiredAccuracy = kCLLocationAccuracyBest;

_manager.distanceFilter = 1.0f;

[_manager startUpdatingLocation];

//定位代理经纬度回调

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

[_manager stopUpdatingLocation];

CLGeocoder * geoCoder = [[CLGeocoder alloc] init];

[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {

for (CLPlacemark * placemark in placemarks) {

NSDictionary *test = [placemark addressDictionary];

// Country(国家) State(城市) SubLocality(区) Name全称

NSLog(@"%@", [test objectForKey:@"Name"]);

}

}];

}

ios百度地图的使用(普通定位、反地理编码)

1.首先接受基本的地图功能

新建一个地图类,xib拖也行,我这边是代码实现的。

_mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, self.view.frame.size.height)];//添加mapVIew

[self.view addSubview:_mapView];

#pragma mark - 设置mapView属性

-(void)setMapViewProperty

{

_mapView.mapType = BMKUserTrackingModeFollowWithHeading;

_mapView.showsUserLocation = YES; //是否显示定位图层(即我的位置的小圆点)

_mapView.zoomLevel = 16;//地图显示比例

_mapView.rotateEnabled = NO; //设置是否可以旋转

[self passLocationValue];

}

#pragma mark -传入定位坐标

//设置定位到得用户的位置,这里是简单的应用方法(必须打开程序时已经获取到地理位置坐标,为了解决地图定位时总是先显示天安门)

-(void)passLocationValue

{

BMKCoordinateRegion viewRegion = BMKCoordinateRegionMake([UserLocationManager sharedInstance].clloction.coordinate, BMKCoordinateSpanMake(0.02f,0.02f));

BMKCoordinateRegion adjustedRegion = [_mapView regionThatFits:viewRegion];

[_mapView setRegion:adjustedRegion animated:YES];

}

#pragma mark -设置定位圆点属性

-(void)setUserImage

{

//用户位置类

BMKLocationViewDisplayParam* param = [[BMKLocationViewDisplayParam alloc] init];

param.locationViewOffsetY = 0;//偏移量

param.locationViewOffsetX = 0;

param.isAccuracyCircleShow =NO;//设置是否显示定位的那个精度圈

param.isRotateAngleValid = NO;

[_mapView updateLocationViewWithParam:param];

}

这样基本的地图界面就出来了

如果你需要在地图上做一些请求,可以实现BMKMapViewDelegate,以下是mapView的一些协议方法

**

*地图区域即将改变时会调用此接口

*@param mapview 地图View

*@param animated 是否动画

*/

- (void)mapView:(BMKMapView *)mapView regionWillChangeAnimated:(BOOL)animated

{

//TODO

}

/**

*地图区域改变完成后会调用此接口

*@param mapview 地图View

*@param animated 是否动画

*/

- (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated

{

//TODO

}

/**

*地图状态改变完成后会调用此接口

*@param mapview 地图View

*/

- (void)mapStatusDidChanged:(BMKMapView *)mapView

{

//TODO

}

2.地图定位

我这边是将定位封装了一个独立的manager类来管理定位和地图上滑动到的位置,是将定位功能和地图mapVIew独立开来,管理地理移动位置的变化

#import

#import "BMapKit.h"

@interface UserLocationManager : NSObject

{

CLLocation *cllocation;

BMKReverseGeoCodeOption *reverseGeoCodeOption;//逆地理编码

}

@property (strong,nonatomic) BMKLocationService *locService;

//城市名

@property (strong,nonatomic) NSString *cityName;

//用户纬度

@property (nonatomic,assign) double userLatitude;

//用户经度

@property (nonatomic,assign) double userLongitude;

//用户位置

@property (strong,nonatomic) CLLocation *clloction;

//初始化单例

+ (UserLocationManager *)sharedInstance;

//初始化百度地图用户位置管理类

- (void)initBMKUserLocation;

//开始定位

-(void)startLocation;

//停止定位

-(void)stopLocation;

@end

#import "UserLocationManager.h"

@implementation UserLocationManager

+ (UserLocationManager *)sharedInstance

{

static UserLocationManager *_instance = nil;

@synchronized (self) {

if (_instance == nil) {

_instance = [[self alloc] init];

}

}

return _instance;

}

-(id)init

{

if (self == [super init])

{

[self initBMKUserLocation];

}

return self;

}

#pragma 初始化百度地图用户位置管理类

/**

* 初始化百度地图用户位置管理类

*/

- (void)initBMKUserLocation

{

_locService = [[BMKLocationService alloc]init];

_locService.delegate = self;

[self startLocation];

}

#pragma 打开定位服务

/**

* 打开定位服务

*/

-(void)startLocation

{

[_locService startUserLocationService];

}

#pragma 关闭定位服务

/**

* 关闭定位服务

*/

-(void)stopLocation

{

[_locService stopUserLocationService];

}

#pragma BMKLocationServiceDelegate

/**

*用户位置更新后,会调用此函数

*@param userLocation 新的用户位置

*/

- (void)didUpdateUserLocation:(BMKUserLocation *)userLocation

{

cllocation = userLocation.location;

_clloction = cllocation;

_userLatitude = cllocation.coordinate.latitude;

_userLongitude = cllocation.coordinate.longitude;

[self stopLocation];(如果需要实时定位不用停止定位服务)

}

/**

*在停止定位后,会调用此函数

*/

- (void)didStopLocatingUser

{

}

/**

*定位失败后,会调用此函数

*@param error 错误号

*/

- (void)didFailToLocateUserWithError:(NSError *)error

{

[self stopLocation];

}

以上代码就是本文ios百度地图的使用(普通定位、反地理编码),希望对大家今后的工作和学习有所帮助。

ios 百度地图指定区域_ios百度地图的使用(普通定位、反地理编码)相关推荐

  1. ios 百度地图指定区域_IOS 百度地图定位,显示地理位置

    最近公司要做一个类似与美团的东西,让我用百度地图来进行定位,并显示地理信息. 预览图 那么我们要如何做呢,直接上代码 先看看包结构,要把需要用到的库都要引入进来. 包结构 注意:appdelegate ...

  2. ios 百度地图指定区域_iOS百度地图简单使用详解

    百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口,还提供POI检索.路径规划.地图标注.离线地图.定位.周边雷达等丰富的LBS能力 . 今天主要 ...

  3. ios 百度地图指定区域_iOS 一步一步实现百度地图范围搜索

    实现百度地图显示范围内搜索关键词 效果图: 未命名.gif 实现原理: 首先,要实现范围内搜索,就得借助地图搜索类方法,去百度地图SDK里查看,发现根据范围和搜索词的方法正是我们所需要的. 屏幕快照_ ...

  4. ios 百度地图指定区域_iOS开发(第三方使用)——百度地图的简单使用(定位与当前位置的显示)...

    使用cocoapods导入 pod 'BaiduMapKit' 在plist添加NSLocationAlwaysUsageDescription 去百度地图开发者中心注册帐号,并创建项目,拿到AK的值 ...

  5. 百度地图开发(二)之添加覆盖物 地理编码和反地理编码

    转载请注明出处: http://blog.csdn.net/crazy1235/article/details/43377545 之前写过一篇关于百度地图开发的blog,主要介绍了百度地图的基本地图的 ...

  6. 百度地图----地理编码与反地理编码

    百度地图--地理编码与反地理编码 ONE Goal,ONE Passion ! 地理编码: 地理编码--就是将我们熟悉的地址解析为经纬度.如: 地址 LatLng(坐标) 郑州 34.7568711, ...

  7. 谷歌地图开发:地理编码和反地理编码

    谷歌地图Geocoding说明:内容主要来自谷歌官网的文档,谷歌地图android api地理和反地理编码反应迟钝内容有时不准确,这里使用的googlemap的webapi接口.嗯,需要vpn这个不多 ...

  8. 高德地图之反地理编码、线路规划、天气查询

    地理编码和反地理编码 /*** 地理编码和反地理编码*/private void geoSearch() {//地理编码GeocodeSearch geocoderSearch = new Geoco ...

  9. IOS 地理编码以及反地理编码

    2019独角兽企业重金招聘Python工程师标准>>> // //  ViewController.m //  地理编码以及反地理编码 // //  Created by dc008 ...

最新文章

  1. CCS Font 知识整理总结
  2. Can't connect to MySQL server on '127.0.0.1' (10061) (code 2003)解决方法
  3. 以完美主义的名义,拖延症在公开掠夺
  4. 隐形马尔可夫模型——前向算法就是条件概率
  5. CodeForces 699C - Vacations
  6. linux fedora14 u盘运行,Win7下Fedora 14 硬盘或U盘安装指南
  7. python正则表达式排除字符_利用正则表达式排除特定字符串
  8. Java 8th 函数式编程:lambda 表达式
  9. linux串口发送键值,c51:串口通信,按键发送字符串
  10. 实例8:python
  11. android系统存储路径在哪里,Android 手机存储目录
  12. xml没有提示解决办法eclipse
  13. Java中Math对象的属性与方法
  14. 发布量子加密手机,浓眉大眼的三星也开始技术碰瓷了?
  15. PO BO VO DTO POJO DAO概念及其作用
  16. std::begin、std::end、std::next 用法
  17. 蓝桥杯单片机第十届省赛题程序实现
  18. 【Aladdin Unity3D Shader编程】之四 贴图纹理
  19. 首次公开,300多页阿里百亿级系统架构设计实录
  20. 蓝色基因超级计算机top500,美国力推Graph500超级计算机排名欲取代Top500

热门文章

  1. 使用form上传文件到application server的另一种办法
  2. Ui5 tool debug - ctrl alt shift s
  3. OpenFOAM计算时,同时将结果输出到:计算窗口+文件
  4. Loadrunner学习笔记(二)
  5. 计算机网络可以按哪些原则分类,计算机网络的分类
  6. 动态规划简单应用:斐波那契数列
  7. python内置函数用来返回_Python内置函数用法
  8. 我国在量子计算机领域的发展情况的感受,量子计算机的现状及发展趋势.doc
  9. linux 追加多行文件,linux多行文件信息追加
  10. 分布式资源管理框架YARN的运行流程