iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/

http://zanderzhang.gitcafe.io/2015/09/19/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/

百度外卖选择送货地址:iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/饿了么选择送货地址:iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/

百度地图api官网

第一个图,就是放一个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的朋友可以留邮箱.

上一篇:识别拖动与点击操作之zepto的bug


下一篇:Cannot change version of project facet Dynamic web的解决方法