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

title: iOS Andriod百度地图仿百度外卖 饿了么 选择我的地址 POI检索 date: 2015-09-19 21:06:26

tags:

百度外卖选择送货地址: 饿了么选择送货地址:

百度地图api官网

第一个图,就是放一个UIImageViewMapView的中间,然后我们拖动的时候下面地图在跑. 

-(void)addMiddleImage{

    UIImageView *imaV=[UIImageView new];

    imaV.center=_mapView.center;

    imaV.bounds=CGRectMake(0, 0, 24, 36);

    imaV.p_w_picpath=[UIImage p_w_picpathNamed:@"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的朋友可以留邮箱.