iOS第三方地图-百度地图定位的封装
//
// BaiduMapTools.h
// baidumapTest
//
// Created by apple on 15/8/26.
// Copyright (c) 2015年 tqh. All rights reserved.
// #import <Foundation/Foundation.h> @interface WJBaiduMapTools : NSObject
/**单例*/
+(WJBaiduMapTools *)instance; /**定位,能得到省市街道*/
- (void)startlocation:(BOOL)needaddress
locationSuccess:(void(^)(double longitude,double latitude)) locationSuccess
addressSuccess:(void(^)(double longitude,double latitude,BMKAddressComponent *address))addressSuccess; /**停止定位*/
- (void)stoplocation;
@end
//
// BaiduMapTools.m
// baidumapTest
//
// Created by apple on 15/8/26.
// Copyright (c) 2015年 tqh. All rights reserved.
// #import "WJBaiduMapTools.h"
//注:需要导入百度地图api @interface WJBaiduMapTools ()<BMKLocationServiceDelegate,BMKGeoCodeSearchDelegate> {
BMKLocationService *_locService; //定位
BMKGeoCodeSearch *_searcher; //geo搜索服务
BOOL _needaddress; //是否定位
//得到经纬度
void (^ _locationSuccess)(double longitude,double latitude);
//得到经纬度和地理位置信息
void (^ _addressSuccess)(double longitude,double latitude,BMKAddressComponent *address);
} @end @implementation WJBaiduMapTools +(WJBaiduMapTools *)instance {
static WJBaiduMapTools *location;
@synchronized(self) {
if(!location) {
location = [[WJBaiduMapTools alloc] init]; }
}
return location;
} - (instancetype)init
{
self = [super init];
if (self) {
_needaddress=NO;
[BMKLocationService setLocationDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[BMKLocationService setLocationDistanceFilter:.f];
_locService = [[BMKLocationService alloc]init];
_locService.delegate = self;
_searcher =[[BMKGeoCodeSearch alloc]init];
_searcher.delegate = self;
}
return self;
} //开始定位
-(void)startlocation:(BOOL)needaddress locationSuccess:(void (^)(double, double))locationSuccess addressSuccess:(void (^)(double, double, BMKAddressComponent *))addressSuccess{
_needaddress=needaddress;
_locationSuccess=locationSuccess;
_addressSuccess=addressSuccess;
if (_locService!=nil) {
[_locService startUserLocationService];
}
} //停止定位
- (void)stoplocation {
if (_locService!=nil) {
[_locService stopUserLocationService];
}
} // 定位成功
-(void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation{
[_locService stopUserLocationService];
double longitude=userLocation.location.coordinate.longitude;
double latitude=userLocation.location.coordinate.latitude;
if (_locationSuccess) {
_locationSuccess(longitude,latitude);
}
if (_needaddress) {
//发起反向地理编码检索
BMKReverseGeoCodeOption *reverseGeocodeSearchOption = [[BMKReverseGeoCodeOption alloc]init];
reverseGeocodeSearchOption.reverseGeoPoint = (CLLocationCoordinate2D){latitude,longitude};
BOOL flag = [_searcher reverseGeoCode:reverseGeocodeSearchOption];
if(flag)
{
NSLog(@"反geo检索发送成功");
}
else
{
NSLog(@"反geo检索发送失败");
}
}else{ }
} -(void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error{
if (error == BMK_SEARCH_NO_ERROR) {
if (_addressSuccess) {
_addressSuccess(result.location.longitude,result.location.latitude,result.addressDetail);
}
}
}
@end
iOS第三方地图-百度地图定位的封装的更多相关文章
- IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息
IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息 /**当获取到定位的坐标后,回调函数*/ - (void)didUpdateBMKUserLocation:(BMKUserLocati ...
- iOS开发---集成百度地图完善版
一.成为百度的开发者.创建应用 http://developer.baidu.com/map/index.php?title=首页 (鼠标移向 然后选择你的项目需要的功能 你可以在里面了解到你想要使用 ...
- 通过百度地图API定位--第三方开源--百度地图(一)
1.把百度地图定位API(下载地址:http://lbsyun.baidu.com/sdk/download?selected=location)里面的libs复制到自己的项目libs里面 2.进行相 ...
- IOS苹果和百度地图的相关使用
iOS中使用较多的3款地图,google地图.百度地图.苹果自带地图(高德).其中苹果自带地图在中国使用的是高德的数据.苹果在iOS 6之后放弃了使用谷歌地图,而改用自家的地图.在国内使用的较多的就是 ...
- iOS开发之百度地图导航
本篇主要讲述百度地图的导航功能: 第一步:在使用百度导航之前,我们需要在百度地图开放平台上下载导航的 SDK,共85.8M,网速不好的同学可提前准备好. 第二步:引入导航所需的系统包 将AudioTo ...
- iOS开发---集成百度地图,位置偏移问题
iOS 集成百度SDK 请参考 百度地图官方文档 ,这里不就多啰嗦了 本文介绍的是在百度地图上根据经纬度,自定义气泡时,气泡位置的偏移,在我们天朝这种事是很常见的,也见怪不怪了,在项目中使用的百度地图 ...
- iOS开发---集成百度地图
由于iOS MapKit框架很多情况并不能满足我们的需求,我们可以选择集成百度地图,那该如何操作呢? 申请Key 登录百度API管理中心申请Key http://lbsyun.baidu.com/ap ...
- 通过百度地图API实现搜索地址--第三方开源--百度地图(三)
搜索地址功能是建立在能够通过百度地图API获取位置的基础上 通过百度地图定位获取位置详情:http://www.cnblogs.com/zzw1994/p/5008134.html package c ...
- 通过百度地图API显示当前位置在地图上(图标显示)--第三方开源--百度地图(二)
1.下载百度地图的demo,下载地址:http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfuncti ...
- 在iOS中使用百度地图
就如同在百度地图的文档中所说的一样,这么来.但是,有一个小疏忽. 到添加完所需要的framework之后,一定要记得把你的(Class-Prefix)AppDelegate的后缀改成mm. 估计百度的 ...
随机推荐
- .NET开源工作流RoadFlow-表单设计-新建表单(属性设置)
点击表单设计工具栏上的 新建表单 按钮会弹出新表单属性设置框: 表单名称:新表单表名称. 数据连接:表单对应的数据库连接(此连接在 系统管理-->数据库连接 中维护). 数据表:表单对应的数据库 ...
- hdu 1026 Ignatius and the Princess I
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1026 Ignatius and the Princess I Description The Prin ...
- 用Java实现3DES
3DES,即三重DES,是DES的加强版,也是DES的一个更安全的变形.它使用3个56位(共168位)的密钥对数据进行三次加密,和DES相比,安全性得到了较大的提高. 实际上,3DES是一个过渡的加密 ...
- OpenStack:安装Horizon
1. 安装:# apt-get install memcached libapache2-mod-wsgi openstack-dashboard!Note for Ubuntu users# apt ...
- OpenStack:安装Keystone
>安装Keystone1. 安装# apt-get install keystone2. 创建dbcreate database keystone;grant all privileges on ...
- mysql开启日志
在 centos 5 下, 在 mysld 下面,添加一行 log=/var/log/mysql.log 然后执行如下命令 touch /var/log/mysql.logchmod 777 /va ...
- python数组的使用
python数组的使用 2010-07-28 17:17 1.Python的数组分三种类型:(1) list 普通的链表,初始化后可以通过特定方法动态增加元素.定义方式:arr = [元素] (2) ...
- PHP闭包(Closure)初探
不知不觉发现PHP已经出到了5.5版本,而自己一直在用PHP5.2,让我看起来像深山出来的小伙子一样,又土又落后.在我习惯在javascript中使用闭包之后,忽然间对PHP的闭包打起了兴趣. 于是乎 ...
- 团队项目(NABC分析)
我们团队开发的是<校园导航>软件 (1)N(Need需求) 我们的团队主要考虑到我们学校没有自己的校园导航,有时会给同学及参观人员带来不便,又看到好多学校都有自己的导航,所以就从这个需求方 ...
- Vim实用命令
[n]yy:从当前行复制n行 [n]p:粘贴n次 [n]dd:删除当前行往下的n行 / : 向后查找 ?:向前查找 u → undo 撤销上一操作 <C-r> → redo 0 → 开启 ...