浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

iOS 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

POI检索简介
    POI(Point of Interest),中文可以翻译为“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。

    百度地图SDK提供三种类型的POI检索:圆形区域检索、矩形区域检索和行政区划检索。
POI行政区划检索
    行政区划检索是根据关键字检索适用于在「某个行政区划,如北京市、四川省等」搜索某个名称相关的POI,例如:查找北京市的“小吃”。
     
-(void)viewDidLoad 
{
     //初始化搜索对象 ,并设置代理
    _searcher =[[BMKPoiSearch alloc]init];  
    _searcher.delegate = self;  
    //请求参数类BMKCitySearchOption
    BMKCitySearchOption *citySearchOption = [[BMKCitySearchOption alloc]init];
    citySearchOption.pageIndex = curPage;
    citySearchOption.pageCapacity = 10;
    citySearchOption.city= @"北京";
    citySearchOption.keyword = @"小吃";
    //发起城市内POI检索
    BOOL flag = [_searcher poiSearchInCity:citySearchOption];
    if(flag) {
               NSLog(@"城市内检索发送成功");
              }
    else {
          NSLog(@"城市内检索发送失败");
          }
}
//实现PoiSearchDeleage处理回调结果  
 - (void)onGetPoiResult:(BMKPoiSearch *)searcher result:(BMKPOISearchResult *)poiResult errorCode:(BMKSearchErrorCode)errorCode  
 {  
    if (error == BMK_SEARCH_NO_ERROR) {  
        //在此处理正常结果   
    }  
    else if (error == BMK_SEARCH_AMBIGUOUS_KEYWORD){  
         //当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表  
         // result.cityList;  
         NSLog(@"起始点有歧义");  
         } 
         else {  
            NSLog(@"抱歉,未找到结果");  
            }  
 }  
//不使用时将delegate设置为 nil    
-(void)viewWillDisappear:(BOOL)animated    
{    
     _searcher.delegate = nil;    
}

POI圆形区域检索
    圆形区域检索是一个圆形范围,适用于以某个位置为中心点,自定义检索半径值,搜索某个位置附近的POI。
    
-(void)viewDidLoad  
{    
    //初始化检索对象  
    _searcher =[[BMKPoiSearch alloc]init];  
    _searcher.delegate = self;    
    //发起检索  
    BMKNearbySearchOption *option = [[BMKNearbySearchOption alloc]init];  
    option.pageIndex = curPage;  
    option.pageCapacity = 10;
    option.location = CLLocationCoordinate2D{39.915, 116.404};
    option.keyword = @"小吃";  
    BOOL flag = [_searcher poiSearchNearBy:option];  
    [option release];  
    if(flag)  
    {  
        NSLog(@"周边检索发送成功");  
    }  
    else  
    {  
        NSLog(@"周边检索发送失败");  
    }  
 }  
 //实现PoiSearchDeleage处理回调结果  
 - (void)onGetPoiResult:(BMKPoiSearch *)searcher result:(BMKPOISearchResult *)poiResult errorCode:(BMKSearchErrorCode)errorCode  
 {  
    if (error == BMK_SEARCH_NO_ERROR) {  
        //在此处理正常结果   
    }  
    else if (error == BMK_SEARCH_AMBIGUOUS_KEYWORD){  
         //当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表  
         // result.cityList;  
         NSLog(@"起始点有歧义");  
    } else {  
         NSLog(@"抱歉,未找到结果");  
    }  
}  
//不使用时将delegate设置为 nil    
-(void)viewWillDisappear:(BOOL)animated    
{    
     _searcher.delegate = nil;    
}

POI矩形区域检索
    POI矩形区域检索是在指定的绘制的矩形范围内(依据左下角坐标和右上角坐标绘制的矩形范围),检索POI。
     //初始化搜索对象,并设置代理
    _searcher =[[BMKPoiSearch alloc]init];
    _searcher.delegate = self;
    //请求参数类BMKBoundSearchOption
    BMKBoundSearchOption *boundsOption = [[BMKBoundSearchOption alloc] init];
    boundsOption.leftBottom = CLLocationCoordinate2DMake(40.047722, 116.31327);
    boundsOption.rightTop = CLLocationCoordinate2DMake(40.057284, 116.34351);
    boundsOption.keyword = @"小吃";
    //发起范围内POI检索检索
    BOOL flag = [_searcher poiSearchInbounds:boundsOption];
    if(flag) {
        NSLog(@"区域内POI检索发送成功");
    }
    else {
        NSLog(@"区域内POI检索发送失败");
    }
//实现PoiSearchDeleage处理回调结果  
 - (void)onGetPoiResult:(BMKPoiSearch *)searcher result:(BMKPOISearchResult *)poiResult errorCode:(BMKSearchErrorCode)errorCode  
 {  
    if (error == BMK_SEARCH_NO_ERROR) {  
        //在此处理正常结果   
    }  
    else if (error == BMK_SEARCH_AMBIGUOUS_KEYWORD){  
         //当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表  
         // result.cityList;  
         NSLog(@"起始点有歧义");  
    } else {  
         NSLog(@"抱歉,未找到结果");  
    }  
}  
//不使用时将delegate设置为 nil    
-(void)viewWillDisappear:(BOOL)animated    
{    
     _searcher.delegate = nil;    
}

POI详情
    POI详情服务提供查询单个POI的详情信息,比如好评、门店营业时间等。 POI详情检索的实现方式如下:
    1.发起检索:
//初始化检索服务
_poisearch = [[BMKPoiSearch alloc] init];
_poisearch.delegate = self;
//POI详情检索
BMKPoiDetailSearchOption* option = [[BMKPoiDetailSearchOption alloc] init];
option.poiUid = @”此处为POI的uid”;//POI搜索结果中获取的uid
BOOL flag = [_poisearch poiDetailSearch:option];
[option release];
if(flag)
{
    //详情检索发起成功
}
else
{
    //详情检索发送失败
}
    2.设置结果监听:
- (void)onGetPoiDetailResult:(BMKPoiSearch*)searcher result:(BMKPOIDetailSearchResult*)poiDetailResult errorCode:(BMKSearchErrorCode)errorCode
{
if(errorCode == BMK_SEARCH_NO_ERROR){
//在此处理正常结果   
    }
}