百度地图之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下载不成功能,用户可以自己申请百度地 ...
随机推荐
- MySQL的20条基本优化 加参考资料
mysql的性能优化包罗甚广:索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等.这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理 ...
- 搭建高性能计算环境(六)、应用软件的安装之lammps
1,上传需要的软件包lammps-stable.tar.gz. 2,解压缩并进入安装目录 tar xvf lammps-stable.tar.gz cd lammps-30Oct14 3,如果需要re ...
- 14种网页图片和文字特效的jQuery插件代码
1.网页图片3d旋转jQuery代码 演示和下载地址 2.存css3实现的tabl选项卡代码 演示和下载地址 3.jQuery标签旋转代码 演示和下载地址 4.鼠标悬浮的图片选项卡代码 演示和下载地址 ...
- 关于Ajax跨域
本人因工作需求,编写了一个测试页面,在页面填写完信息之后去向一个站点请求数据,然后返回结果!一开始是直接用Ajax在脚本中去访问,没有大碍(因为目标地址是本机上的一个网站),但是当站点去外部的网站时, ...
- 反编译工具(.NET Reflector )
1.下载安装原程序,然后运行 Reflector.exe 2.运行注册机,点击 Generate 获得序列号 3.把序列号填写到 Reflector 软件上4.断开网络,点击 Activate 激活( ...
- 怎样用foreach去修改数组之中的数据
$table_exchange=array(1,2,3,4,5,6,7,8); foreach ($table_exchange as $b=>$c){ $table_exchange[$b]= ...
- MapReduce数据流
图4.5细节化的Hadoop MapReduce数据流 图4.5展示了流线水中的更多机制.虽然只有2个节点,但相同的流水线可以复制到跨越大量节点的系统上.下去的几个段落会详细讲述MapReduce程序 ...
- C语言-L Buffer is too small && 0 解决方法
问题如下: 问题出在程序语句(见下): 其中,字符串p1和p2分别指向某个字符串,p是定义的一个字符数组.问题出现在对strlen()的使用,这个函数计算的字符串长度是不包括'\0'的,所以在设置第二 ...
- devexpress 数据导入(gridcontrol 导出 csv)
// 1.gridcontrol 导出 csv: DataTable dtbNew = new DataTable(); dtbNew.Columns.Add().GetType()); dtbNew ...
- mysql 汉字乱码
原因:mysql server character设置问题 一.检查mysql server 安装目录下my.ini文件 找到如下设置 [mysql] default-character-set = ...