ios 百度地图指定区域_ios百度地图的使用(普通定位、反地理编码)
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百度地图的使用(普通定位、反地理编码)相关推荐
- ios 百度地图指定区域_IOS 百度地图定位,显示地理位置
最近公司要做一个类似与美团的东西,让我用百度地图来进行定位,并显示地理信息. 预览图 那么我们要如何做呢,直接上代码 先看看包结构,要把需要用到的库都要引入进来. 包结构 注意:appdelegate ...
- ios 百度地图指定区域_iOS百度地图简单使用详解
百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口,还提供POI检索.路径规划.地图标注.离线地图.定位.周边雷达等丰富的LBS能力 . 今天主要 ...
- ios 百度地图指定区域_iOS 一步一步实现百度地图范围搜索
实现百度地图显示范围内搜索关键词 效果图: 未命名.gif 实现原理: 首先,要实现范围内搜索,就得借助地图搜索类方法,去百度地图SDK里查看,发现根据范围和搜索词的方法正是我们所需要的. 屏幕快照_ ...
- ios 百度地图指定区域_iOS开发(第三方使用)——百度地图的简单使用(定位与当前位置的显示)...
使用cocoapods导入 pod 'BaiduMapKit' 在plist添加NSLocationAlwaysUsageDescription 去百度地图开发者中心注册帐号,并创建项目,拿到AK的值 ...
- 百度地图开发(二)之添加覆盖物 地理编码和反地理编码
转载请注明出处: http://blog.csdn.net/crazy1235/article/details/43377545 之前写过一篇关于百度地图开发的blog,主要介绍了百度地图的基本地图的 ...
- 百度地图----地理编码与反地理编码
百度地图--地理编码与反地理编码 ONE Goal,ONE Passion ! 地理编码: 地理编码--就是将我们熟悉的地址解析为经纬度.如: 地址 LatLng(坐标) 郑州 34.7568711, ...
- 谷歌地图开发:地理编码和反地理编码
谷歌地图Geocoding说明:内容主要来自谷歌官网的文档,谷歌地图android api地理和反地理编码反应迟钝内容有时不准确,这里使用的googlemap的webapi接口.嗯,需要vpn这个不多 ...
- 高德地图之反地理编码、线路规划、天气查询
地理编码和反地理编码 /*** 地理编码和反地理编码*/private void geoSearch() {//地理编码GeocodeSearch geocoderSearch = new Geoco ...
- IOS 地理编码以及反地理编码
2019独角兽企业重金招聘Python工程师标准>>> // // ViewController.m // 地理编码以及反地理编码 // // Created by dc008 ...
最新文章
- CCS Font 知识整理总结
- Can't connect to MySQL server on '127.0.0.1' (10061) (code 2003)解决方法
- 以完美主义的名义,拖延症在公开掠夺
- 隐形马尔可夫模型——前向算法就是条件概率
- CodeForces 699C - Vacations
- linux fedora14 u盘运行,Win7下Fedora 14 硬盘或U盘安装指南
- python正则表达式排除字符_利用正则表达式排除特定字符串
- Java 8th 函数式编程:lambda 表达式
- linux串口发送键值,c51:串口通信,按键发送字符串
- 实例8:python
- android系统存储路径在哪里,Android 手机存储目录
- xml没有提示解决办法eclipse
- Java中Math对象的属性与方法
- 发布量子加密手机,浓眉大眼的三星也开始技术碰瓷了?
- PO BO VO DTO POJO DAO概念及其作用
- std::begin、std::end、std::next 用法
- 蓝桥杯单片机第十届省赛题程序实现
- 【Aladdin Unity3D Shader编程】之四 贴图纹理
- 首次公开,300多页阿里百亿级系统架构设计实录
- 蓝色基因超级计算机top500,美国力推Graph500超级计算机排名欲取代Top500
热门文章
- 使用form上传文件到application server的另一种办法
- Ui5 tool debug - ctrl alt shift s
- OpenFOAM计算时,同时将结果输出到:计算窗口+文件
- Loadrunner学习笔记(二)
- 计算机网络可以按哪些原则分类,计算机网络的分类
- 动态规划简单应用:斐波那契数列
- python内置函数用来返回_Python内置函数用法
- 我国在量子计算机领域的发展情况的感受,量子计算机的现状及发展趋势.doc
- linux 追加多行文件,linux多行文件信息追加
- 分布式资源管理框架YARN的运行流程