http://zanderzhang.gitcafe.io/2015/09/19/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/
title: iOS Andriod百度地图仿百度外卖 饿了么 选择我的地址 POI检索
date: 2015-09-19 21:06:26
tags:
百度外卖选择送货地址:
饿了么选择送货地址:

第一个图,就是放一个UIImageView在MapView的中间,然后我们拖动的时候下面地图在跑.
-(void)addMiddleImage{
UIImageView *imaV=[UIImageView new];
imaV.center=_mapView.center;
imaV.bounds=CGRectMake(0, 0, 24, 36);
imaV.image=[UIImage imageNamed:@"poi_icon"];
[self.view addSubview:imaV];
}
取屏幕中心点,也就是UIImageView的坐标:geo.reverseGeoPoint=mapStatus.targetGeoPt;
geo是BMKReverseGeoCodeOption *geo;
移动完成会调用:
-(void)mapStatusDidChanged:(BMKMapView *)mapView{
BMKMapStatus *mapStatus=[mapView getMapStatus];
geo.reverseGeoPoint=mapStatus.targetGeoPt;
[_geoSearcher reverseGeoCode:geo];
NSLog(@"mapStatusDidChanged");
}
回调函数获得反编译结果和周边result.poiList:
-(void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error{
[geoArr removeAllObjects];
[geoArr addObjectsFromArray:result.poiList];
if (result.poiList.count) {
BMKPoiInfo *info=result.poiList[0];
_city=info.city;
}
[_bottomTable reloadData];
}
第二个图,我开始使用在线建议查询,后面发现这个POI搜索更好用点,它有三种,我使用的是POI城市内搜索:
开始检索:
_bMKPoiSearch =[[BMKPoiSearch alloc]init];
_bMKPoiSearch.delegate = self;
BMKCitySearchOption *option=[BMKCitySearchOption new];
// 城市内搜索
option.city =_city;
option.keyword = searchText;
[_bMKPoiSearch poiSearchInCity:option];
回调返回:
-(void)onGetPoiResult:(BMKPoiSearch )searcher result:(BMKPoiResult )poiResult errorCode:(BMKSearchErrorCode)errorCode{[_suggestionSearchArr removeAllObjects];
[_suggestionSearchArr addObjectsFromArray:poiResult.poiInfoList];
[_suggestionTable reloadData];}`
在poiResult里面有poiInfoList,成员是BMKPoiInfo,跟第一个图一样.
Andriod和这差不多,函数有所区别.有需要demo的朋友可以留邮箱.
本文详细介绍了如何在iOS和Android平台上使用百度地图API实现百度外卖和饿了么应用中的选择送货地址功能,包括在地图上添加中间ImageView、获取屏幕中心点坐标、反向地理编码获取周边POI检索结果等关键步骤。

2万+

被折叠的 条评论
为什么被折叠?



