百度地图之POI
// // PoiViewController.m // baiDuDemo // // Created by City--Online on 15/6/4. // Copyright (c) 2015年 XQB. All rights reserved. // #import "PoiViewController.h" #import "BMKTypes.h" #import "BMKPoiSearch.h" #import "BMKBusLineSearch.h" #import "BMKGeocodeSearch.h" @interface PoiViewController ()<BMKPoiSearchDelegate,BMKGeoCodeSearchDelegate,UITableViewDataSource,UITableViewDelegate> //周边、详情搜索 @property(nonatomic,strong) BMKPoiSearch *searcher; //周边搜索条件 @property(nonatomic,strong) BMKNearbySearchOption *nearbySearchOption; //详情搜索条件 @property(nonatomic,strong) BMKPoiDetailSearchOption *detailSearchOption; @property(nonatomic,strong) UITableView *tableView; //周边搜索列表数据 @property(nonatomic,strong) NSMutableArray *poiInfoList; //地理信息编码 @property(nonatomic,strong) BMKGeoCodeSearch *geoCodeSearch; @end @implementation PoiViewController - (void)viewDidLoad { [super viewDidLoad]; //初始化检索对象 _searcher =[[BMKPoiSearch alloc]init]; _searcher.delegate = self; //发起周边检索 _nearbySearchOption = [[BMKNearbySearchOption alloc]init]; // _nearbySearchOption.pageIndex = 1; // _nearbySearchOption.pageCapacity = 10; _nearbySearchOption.location=CLLocationCoordinate2DMake(22.5538, 114.0672); _nearbySearchOption.radius=; _nearbySearchOption.sortType=BMK_POI_SORT_BY_DISTANCE; _nearbySearchOption.keyword = @"小吃"; BOOL flag = [_searcher poiSearchNearBy:_nearbySearchOption]; if(flag) { NSLog(@"周边检索发送成功"); } else { NSLog(@"周边检索发送失败"); } // 地理信息编码 _geoCodeSearch =[[BMKGeoCodeSearch alloc]init]; _geoCodeSearch.delegate = self; BMKGeoCodeSearchOption *geoCodeSearchOption = [[BMKGeoCodeSearchOption alloc]init]; geoCodeSearchOption.city= @"深圳市"; geoCodeSearchOption.address = @"音乐厅"; flag = [_geoCodeSearch geoCode:geoCodeSearchOption]; if(flag) { NSLog(@"geo检索发送成功"); } else { NSLog(@"geo检索发送失败"); } // 地理信息反编码 CLLocationCoordinate2D pt = (CLLocationCoordinate2D){22.588393, 113.946523}; BMKReverseGeoCodeOption *reverseGeoCodeSearchOption = [[ BMKReverseGeoCodeOption alloc]init]; reverseGeoCodeSearchOption.reverseGeoPoint = pt; flag = [_geoCodeSearch reverseGeoCode:reverseGeoCodeSearchOption]; if(flag) { NSLog(@"反geo检索发送成功"); } else { NSLog(@"反geo检索发送失败"); } _tableView =[[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain]; [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"]; _tableView.dataSource=self; _tableView.delegate=self; [self.view addSubview:_tableView]; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return _poiInfoList.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; BMKPoiInfo *poiInfo=[_poiInfoList objectAtIndex:indexPath.row]; cell.textLabel.text=[NSString stringWithFormat:@"%@ %@",poiInfo.name,poiInfo.uid]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { //发起详情搜索 _detailSearchOption=[[BMKPoiDetailSearchOption alloc]init]; BMKPoiInfo *poiInfo=[_poiInfoList objectAtIndex:indexPath.row]; _detailSearchOption.poiUid=poiInfo.uid; BOOL flag = [_searcher poiDetailSearch:_detailSearchOption]; if(flag) { NSLog(@"详情检索发起成功"); //详情检索发起成功 } else { NSLog(@"详情检索发送失败"); //详情检索发送失败 } } //周边搜索 - (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResult errorCode:(BMKSearchErrorCode)errorCode { if (errorCode == BMK_SEARCH_NO_ERROR) { _poiInfoList=[poiResult.poiInfoList mutableCopy]; [_tableView reloadData]; NSLog(@"%d %d %d %d",poiResult.totalPoiNum,poiResult.currPoiNum,poiResult.pageNum,poiResult.pageIndex); for (BMKPoiInfo *poiInfo in poiResult.poiInfoList) { NSLog(@"name:%@ UId:%@",poiInfo.name,poiInfo.uid); } for (BMKCityListInfo *CityListInfo in poiResult.cityList) { NSLog(@"%@",CityListInfo.city); } } else if (errorCode == BMK_SEARCH_AMBIGUOUS_KEYWORD){ //当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表 // result.cityList; NSLog(@"起始点有歧义"); } else { NSLog(@"抱歉,未找到结果"); } } //详情搜索 - (void)onGetPoiDetailResult:(BMKPoiSearch*)searcher result:(BMKPoiDetailResult*)poiDetailResult errorCode:(BMKSearchErrorCode)errorCode { if (errorCode == BMK_SEARCH_NO_ERROR) { NSLog(@"%@ %@ %@ %@",poiDetailResult.name,poiDetailResult.address,poiDetailResult.phone,poiDetailResult.shopHours); NSString *message=[NSString stringWithFormat:@"店名:%@ \n地址:%@\n 电话:%@\n 营业时间:%@\n经纬度:%lf %lf",poiDetailResult.name,poiDetailResult.address,poiDetailResult.phone,poiDetailResult.shopHours,poiDetailResult.pt.latitude,poiDetailResult.pt.longitude]; UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"搜索详情" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } else if (errorCode == BMK_SEARCH_AMBIGUOUS_KEYWORD){ //当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表 // result.cityList; NSLog(@"起始点有歧义"); } else { NSLog(@"抱歉,未找到结果"); } } - (void)onGetGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error { if (error == BMK_SEARCH_NO_ERROR) { NSLog(@"%lf %lf %@",result.location.latitude,result.location.longitude,result.address); } else { NSLog(@"抱歉,未找到结果"); } } - (void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error { if (error == BMK_SEARCH_NO_ERROR) { NSLog(@"%@",result.address); for (BMKPoiInfo *poiInfo in result.poiList) { NSLog(@"%@ %@",poiInfo.name,poiInfo.address); } } else { NSLog(@"抱歉,未找到结果"); } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any_ resources that can be recreated. } @end
百度地图之POI的更多相关文章
- Android学习笔记之使用百度地图实现Poi搜索
PS:装个系统装了一天.心力憔悴.感觉不会再爱了. 学习内容: 1.使用百度Map实现Poi搜索. 2.短串分享 3.在线建议查询 百度地图的研究也算是过半了.能够实现定位,实现相关信息的搜索,实 ...
- 教你如何拔取百度地图POI兴趣点
教你如何拔取百度地图POI兴趣点 通过聚合数据提供的接口,获取百度地图的POI兴趣点,并存储至数据库中. 实现: 1.聚合数据百度POI接口说明 调用聚合数据,首先得注册聚合.聚合数据提供的百度地 ...
- 百度地图开发之POI数据检索
前面学习百度地图的一些基本的用法,这次我们一起来看一看百度地图的检索功能吧 poi检索api的基本用法 百度地图的POI类中共有如下几个方法 PoiBoundSearchOption POI范围内检索 ...
- 获取百度地图POI数据二(准备搜索关键词)
上篇讲到 想要获取尽可能多的POI数据 需要准备尽可能多的搜索关键字 那么这些关键字如何得来呢? 本人使用的方法是通过一些网站来获取这些关键词 http://poi.mapbar.com ...
- 百度地图POI数据爬取,突破百度地图API爬取数目“400条“的限制11。
1.POI爬取方法说明 1.1AK申请 登录百度账号,在百度地图开发者平台的API控制台申请一个服务端的ak,主要用到的是Place API.检校方式可设置成IP白名单,IP直接设置成了0.0.0.0 ...
- iOS第三方地图-百度地图常用功能使用(POI搜索,地理正反编码,定位,添加标注)
百度地图官网: http://developer.baidu.com/map/index.php?title=iossdk 百度地图集成 1.引入相关包
- (转载) 百度地图工具类封装(包括定位,附近、城市、范围poi检索,反地理编码)
目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选 程序员8月书讯 项目管理+代码托管+文档协作,开发更流畅 百度地图工具类封装(包括定位,附近.城市.范围poi检索, ...
- IOS_OC_百度地图与社交分享
前奏. 知识点介绍 一. 导航和画线 地图画线 (理解) 二. 百度地图 集成百度地图 (掌握) POI检索 (掌握) 三. 社交分享 系统自带分享 (了解) 友盟分享 (掌握) SSO授权 (理解) ...
- 百度地图Key的设置方法
一.为什么要设置百度Key 万能地图下载器提供了百度POI的下载功能,但由于本软件用户群极大,会导致一天之内访问量超出300万次以上而无法继续下载. 因此,当POI下载不成功能,用户可以自己申请百度地 ...
随机推荐
- 可自定义导航条功能案例ios项目源码
可定制的navigationitem ,当我们使用系统的方法设置navigationItem的leftItem或者rightItem时,我们会 发现item位置会有偏差(左边的偏右,右边的偏左).当设 ...
- 自动计算尺寸列表功能案例ios源码
源码HTKDynamicResizingCell,HTKDynamicResizingCell提供自动计算尺寸的TableViewCell/CollectionViewCel,只要设置了合适AutoL ...
- centos6.2下安装redis和phpredis扩展,亲测好用
安装redis: 下载:http://www.redis.io/download redis-2.6.2.tar.gz ]# tar -zxf redis-2.6.2.tar.gz ]# cd red ...
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(五)-- Filter
在上一篇里,介绍了中间件的相关内容和使用方法.本篇将介绍Asp.Net Core MVC框架的过滤器的相关内容和使用方法,并简单说明一下与中间件的区别. 第一部分.MVC框架内置过滤器 下图展示了As ...
- Winform主窗体的设置
软件必然涉及到一个主窗体MainForm,下面介绍一下几个简单的属性设置,可能比较有用 (1)icon,当然是咱们软件的图标了,设置上去即可 (2)isMdiContainer,这个比较重要了哦,必须 ...
- linux下的循环命令写法
直切正题 方法一:利用while do循环,举例,while true;do ls;sleep 1;done 解释,该命令为每秒执行ls查询命令,sleep 1 为每秒循环,其他命令可直接替换 ls ...
- 第二十一章 数据访问(In .net4.5) 之 序列化
1. 概述 应用程序间传递数据,需要先将数据对象转化为字符流或字节流的形式,然后接收端收到后再转化回原始的数据对象.这就是序列化与反序列化. 本章介绍 .net中的序列化与反序列化.序列化器的种类 以 ...
- Python核心编程--学习笔记--9--文件和输入输出
本章将深入介绍Python的文件处理和相关输入输出能力,包括:文件对象(以及它的内建函数.内建方法和属性),标准文件,文件系统的访问方法,文件执行,最后简要涉及持久存储和标准库中与文件有关的模块. 1 ...
- Moses创建一个翻译系统的基本过程记录,以后会按照每个过程详细说明,并给出每个步骤的参数说明
软件需求: 首先你必须要有Moses(废话哈哈).然后要有GIZA++用作词对齐(traning-model.perl的时候会用到).IRSTLM产生语言模型 大致步骤: 大体的步骤如下: 准备Par ...
- 如何解决android studio 运行时中文乱码的问题
相信很多朋友都会遇到android studio 在MAC OS中运行的时候中文乱码.而在代码编辑的时候正常.经过几天的不断寻找解决办法,终于解决了 比如: Toast.makeText(MainAc ...