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. 估计百度的 ...
随机推荐
- 微信支付开发,再次签名,APP调用
1.商户服务器生成支付订单,先调用[统一下单API]生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付. 再次生成签名的时候,按照接口: https://pay.weixin.q ...
- sharepoint 2010 找不到搜索不到ad里的用户
前提条件: 1.这个用户是在ad中存在的. 2.这个用户也同步到了userprofile中. 问题现象: 在sharepoint的人员选择器中,搜索不到已经添加的用户. 可能原因: 1.有人说需要将 ...
- QT 的信号与槽
转载: QT 的信号与槽机制介绍 QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 ...
- ubuntu 屏幕截图
无意间发现这个组合 Fn+Shift+t,按下之后,鼠标变成一个十字, 选择一个范围,okay,可以截图了
- SQLite函数详解之二
sqlite3支持的数据类型: NULL.INTEGER.REAL.TEXT.BLOB 但是,sqlite3也支持如下的数据类型 smallint 16位整数 integer ...
- IOS- 网络图片缓存到沙盒中 ,离线取出。
一.缓存图片 //1.首先创建在沙盒中创建一个文件夹用于保存图片 NSFileManager *fileManager = [[NSFileManager alloc] init]; NSString ...
- 设计模式之Birdge(桥接)模式
1.出现原因 1.同一个类型,有两个变化的维度(两个维度的抽象:一个抽象部分的抽象,一个实现部分的抽象) 2.如何应对这种“多维度的变化”?如何利用面向对象技术来使得同一类型可以轻松地沿着两个方向变化 ...
- 【每日scrum】NO.7
Yesterday:学习和设计路线的编程 Today:编写代码 Problem:.在设计查询参观路线的时候,整个逻辑特别的混乱,设想了各种树,图以及网的遍历问题,但经过多次与同学的交流以及网上的查询资 ...
- bower解决js的依赖管理
bower解决js的依赖管理 前言: 一个新的web项目开始,我们总是很自然地去下载需要用到的js类库文件,比如jQuery,去官网下载名为jquery-1.10.2.min.js文件,放到我们的项目 ...
- ELK kibana查询与过滤(17th)
在kibana中,可通过搜索查询过滤事务或者在visualization界面点击元素过滤. 创建查询 在Discover界面的搜索栏输入要查询的字段.查询语法是基于Lucene的查询语法.允许布尔运算 ...