浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
 
第4行: 第4行:
 
<div class="bluetitle"><div class="services-title-text">实现步骤</div></div><div class="devguide"><div class="leftborderbg" style="height:990px"></div><div class="devguideorder"><span>1</span>引入头文件</div><div class="devguidecenter">
 
<div class="bluetitle"><div class="services-title-text">实现步骤</div></div><div class="devguide"><div class="leftborderbg" style="height:990px"></div><div class="devguideorder"><span>1</span>引入头文件</div><div class="devguidecenter">
 
地点输入提示检索功能使用的是地图SDK的检索功能,需要在工程中导入检索功能包BaiduMapAPI_Search.framework
 
地点输入提示检索功能使用的是地图SDK的检索功能,需要在工程中导入检索功能包BaiduMapAPI_Search.framework
<pre class="prettyprint codestyle">#import <BaiduMapAPI_Base/BMKBaseComponent.h>
+
<div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">#import <BaiduMapAPI_Base/BMKBaseComponent.h>
#import <BaiduMapAPI_Search/BMKSearchComponent.h>
+
#import <BaiduMapAPI_Search/BMKSearchComponent.h></pre>
</pre>
+
<pre class="code_item prettyprint codestyle">// 在桥接头文件BMKSwiftDemo-Bridging-Header中添加
</div><div class="devguideorder"><span>2</span>初始化地点输入提示检索对象</div><div class="devguidecenter"><pre class="prettyprint codestyle">BMKSuggestionSearch *search = [[BMKSuggestionSearch alloc] init];
+
#import <BaiduMapAPI_Base/BMKBaseComponent.h>
</pre>
+
#import <BaiduMapAPI_Search/BMKSearchComponent.h></pre>
</div><div class="devguideorder"><span>3</span>设置地点输入提示检索代理</div><div class="devguidecenter"><pre class="prettyprint codestyle">search.delegate = self;
+
</div></div></div><div class="devguideorder"><span>2</span>初始化地点输入提示检索对象</div><div class="devguidecenter"><div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">BMKSuggestionSearch *search = [[BMKSuggestionSearch alloc] init];</pre>
</pre>
+
<pre class="code_item prettyprint codestyle">//初始化BMKSuggestionSearch实例
</div><div class="devguideorder"><span>4</span>构造地点输入提示检索参数</div><div class="devguidecenter"><pre class="prettyprint codestyle">BMKSuggestionSearchOption* option = [[BMKSuggestionSearchOption alloc] init];   
+
let search = BMKSuggestionSearch()</pre>
 +
</div></div></div><div class="devguideorder"><span>3</span>设置地点输入提示检索代理</div><div class="devguidecenter"><div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">search.delegate = self;</pre>
 +
<pre class="code_item prettyprint codestyle">search.delegate = self</pre>
 +
</div></div></div><div class="devguideorder"><span>4</span>构造地点输入提示检索参数</div><div class="devguidecenter"><div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">BMKSuggestionSearchOption* option = [[BMKSuggestionSearchOption alloc] init];   
 
option.cityname = @"北京";   
 
option.cityname = @"北京";   
option.keyword  = @"中关村";
+
option.keyword  = @"中关村"; </pre>
 
+
<pre class="code_item prettyprint codestyle">//初始化请求参数类BMKSuggestionSearchOption的实例
</pre>
+
let suggestionOption = BMKSuggestionSearchOption()
</div><div class="devguideorder"><span>5</span>发起地点输入提示检索请求</div><div class="devguidecenter"><pre class="prettyprint codestyle">BOOL flag = [search suggestionSearch:option];   
+
//城市名
 +
suggestionOption.cityname = "北京"
 +
//检索关键字
 +
suggestionOption.keyword = "中关村"
 +
//是否只返回指定城市检索结果,默认为NO(海外区域暂不支持设置cityLimit)
 +
//suggestionOption.cityLimit = NO</pre>
 +
</div></div></div><div class="devguideorder"><span>5</span>发起地点输入提示检索请求</div><div class="devguidecenter"><div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">BOOL flag = [search suggestionSearch:option];   
 
if (flag) {   
 
if (flag) {   
NSLog(@"Sug检索发送成功");   
+
    NSLog(@"Sug检索发送成功");   
 
}  else  {   
 
}  else  {   
 
     NSLog(@"Sug检索发送失败");   
 
     NSLog(@"Sug检索发送失败");   
}   
+
</pre>
 
+
<pre class="code_item prettyprint codestyle">/**
</pre>
+
关键词检索,异步方法,返回结果在BMKSuggestionSearchDelegate
</div><div class="devguideorder"><span>6</span>实现代理方法,获取检索结果</div><div class="devguidecenter"><pre class="prettyprint codestyle">/**
+
的onGetSuggestionResult里
 +
 +
suggestionOption sug检索信息类
 +
成功返回YES,否则返回NO
 +
*/
 +
let flag = search.suggestionSearch(suggestionOption)
 +
if flag {
 +
    print("关键词检索成功")
 +
} else {
 +
    print("关键词检索失败")
 +
}</pre>
 +
</div></div></div><div class="devguideorder"><span>6</span>实现代理方法,获取检索结果</div><div class="devguidecenter"><div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">/**
 
  *返回suggestion搜索结果
 
  *返回suggestion搜索结果
 
  *@param searcher 搜索对象
 
  *@param searcher 搜索对象
第31行: 第51行:
 
  */
 
  */
 
- (void)onGetSuggestionResult:(BMKSuggestionSearch*)searcher result:( BMKSuggestionSearchResult*)result errorCode:(BMKSearchErrorCode)error{   
 
- (void)onGetSuggestionResult:(BMKSuggestionSearch*)searcher result:( BMKSuggestionSearchResult*)result errorCode:(BMKSearchErrorCode)error{   
        if (error == BMK_SEARCH_NO_ERROR) {   
+
    if (error == BMK_SEARCH_NO_ERROR) {   
                //在此处理正常结果   
+
        //在此处理正常结果   
        }   
+
    }   
        else {   
+
    else {   
                NSLog(@"检索失败");   
+
        NSLog(@"检索失败");   
        }   
+
    }   
    }
+
}
 
+
 
</pre>
 
</pre>
</div><div class="devguideorder"><span>7</span>处理检索返回的结果</div><div class="devguidecenter">
+
<pre class="code_item prettyprint codestyle">/**
 +
关键字检索结果回调
 +
 +
@param searcher 检索对象
 +
@param result 关键字检索结果
 +
@param error 错误码,@see BMKCloudErrorCode
 +
*/
 +
func onGetSuggestionResult(_ searcher: BMKSuggestionSearch!, result: BMKSuggestionSearchResult!, errorCode error: BMKSearchErrorCode) {
 +
    if (error == BMK_SEARCH_NO_ERROR) { 
 +
        //在此处理正常结果 
 +
    } 
 +
    else { 
 +
        print("检索失败"); 
 +
    } 
 +
}</pre>
 +
</div></div></div><div class="devguideorder"><span>7</span>处理检索返回的结果</div><div class="devguidecenter">
 
通过代理返回的error判断检索是否成功,如果检索成功,可通过解析result字段获取具体的结果。具体使用示例可参照官方demo中的BMKSuggestionSearchPage。BMKSuggestionSearchResult类结构如下图<br/>http://mapopen-pub-iossdk.cdn.bcebos.com/map/img/SugSeach.png<br/>说明:<br/>BMKSuggestionSearchResult &nbsp; &nbsp; sug检索结果类
 
通过代理返回的error判断检索是否成功,如果检索成功,可通过解析result字段获取具体的结果。具体使用示例可参照官方demo中的BMKSuggestionSearchPage。BMKSuggestionSearchResult类结构如下图<br/>http://mapopen-pub-iossdk.cdn.bcebos.com/map/img/SugSeach.png<br/>说明:<br/>BMKSuggestionSearchResult &nbsp; &nbsp; sug检索结果类
  

2020年3月26日 (四) 11:18的最后版本

地点输入提示检索(Sug检索)简介

地点输入提示检索(也被称为POI热词建议检索、在线建议检索、Suggestion POI search),简称Sug检索,是指根据关键词查询在线建议词。为了帮助开发者实现检索出来的关键词快速定位到地图上,SDK开放了检索结果的经纬度信息及对应POI点的UID信息。Sug检索能够减少用户输入检索信息的长度,大幅提升用户的产品体验。如:输入“百度”,提示“百度大厦A座”,“百度科技园”。

实现步骤
1引入头文件

地点输入提示检索功能使用的是地图SDK的检索功能,需要在工程中导入检索功能包BaiduMapAPI_Search.framework

Objective-C
Swift
#import <BaiduMapAPI_Base/BMKBaseComponent.h>
#import <BaiduMapAPI_Search/BMKSearchComponent.h>
// 在桥接头文件BMKSwiftDemo-Bridging-Header中添加
#import <BaiduMapAPI_Base/BMKBaseComponent.h>
#import <BaiduMapAPI_Search/BMKSearchComponent.h>
2初始化地点输入提示检索对象
Objective-C
Swift
BMKSuggestionSearch *search = [[BMKSuggestionSearch alloc] init];
//初始化BMKSuggestionSearch实例
let search = BMKSuggestionSearch()
3设置地点输入提示检索代理
Objective-C
Swift
search.delegate = self;
search.delegate = self
4构造地点输入提示检索参数
Objective-C
Swift
BMKSuggestionSearchOption* option = [[BMKSuggestionSearchOption alloc] init];  
option.cityname = @"北京";  
option.keyword  = @"中关村"; 
//初始化请求参数类BMKSuggestionSearchOption的实例
let suggestionOption = BMKSuggestionSearchOption()
//城市名
suggestionOption.cityname = "北京"
//检索关键字
suggestionOption.keyword = "中关村"
//是否只返回指定城市检索结果,默认为NO(海外区域暂不支持设置cityLimit)
//suggestionOption.cityLimit = NO
5发起地点输入提示检索请求
Objective-C
Swift
BOOL flag = [search suggestionSearch:option];  
if (flag) {  
    NSLog(@"Sug检索发送成功");  
}  else  {  
    NSLog(@"Sug检索发送失败");  
}  
/**
 关键词检索,异步方法,返回结果在BMKSuggestionSearchDelegate
 的onGetSuggestionResult里
 
 suggestionOption sug检索信息类
 成功返回YES,否则返回NO
 */
let flag = search.suggestionSearch(suggestionOption)
if flag {
    print("关键词检索成功")
} else {
    print("关键词检索失败")
}
6实现代理方法,获取检索结果
Objective-C
Swift
/**
 *返回suggestion搜索结果
 *@param searcher 搜索对象
 *@param result 搜索结果
 *@param error 错误号,@see BMKSearchErrorCode
 */
- (void)onGetSuggestionResult:(BMKSuggestionSearch*)searcher result:( BMKSuggestionSearchResult*)result errorCode:(BMKSearchErrorCode)error{  
    if (error == BMK_SEARCH_NO_ERROR) {  
        //在此处理正常结果  
    }  
    else {  
        NSLog(@"检索失败");  
    }  
}
/**
 关键字检索结果回调
 
 @param searcher 检索对象
 @param result 关键字检索结果
 @param error 错误码,@see BMKCloudErrorCode
 */
func onGetSuggestionResult(_ searcher: BMKSuggestionSearch!, result: BMKSuggestionSearchResult!, errorCode error: BMKSearchErrorCode) {
    if (error == BMK_SEARCH_NO_ERROR) {  
        //在此处理正常结果  
    }  
    else {  
        print("检索失败");  
    }  
}
7处理检索返回的结果

通过代理返回的error判断检索是否成功,如果检索成功,可通过解析result字段获取具体的结果。具体使用示例可参照官方demo中的BMKSuggestionSearchPage。BMKSuggestionSearchResult类结构如下图
SugSeach.png
说明:
BMKSuggestionSearchResult     sug检索结果类

BMKSuggestionInfo                  sug检索信息类

BMKSuggestionChildrenInfo       sug检索子节点类


注意:BMKSuggestionSearchResult中tag,address,children字段需要额外申请权限,首先需要进行企业认证, 之后需要提交工单申请这个权限, 并详细说明使用场景, 包括但不限于, 使用开放平台哪些产品及服务, 应用在贵方哪些产品及应用上以及该产品或应用的相关介绍, 预估使用配额多少等。另外需附带AK信息。

Sug检索和POI检索的区别

1)Sug检索的本质是根据部分关键字检索出来可能的完整关键词名称,即关键词匹配;
2)POI检索的功能是检索POI,如果需要查询某些关键词对应的POI的具体信息,请使用POI检索来完成。
注意:Sug检索结果的第一条可能存在没有经纬度信息的情况,该条结果为文字联想出来的关键词结果,并不对应任何确切POI点。
例如输入“肯”,第一条结果为“肯德基”,这条结果是一个泛指的名称,不会带有经纬度等信息。
常用的使用方式:用户输入“关键字”时以Sug检索做为检索入口,边输入边检索热词;输入完成后如还没有搜到结果,再用POI检索以“关键字”为keywords再继续搜索。

注意事项

Sug检索,城市为必填输入项。 BMKSuggestionSearchOption中城市控制属性citylimit(默认值为NO)。
Sug检索不控制poi必须在城市内:citylimit设置为NO时,不会严格限制召回POI一定在请求中传入的城市内。若检索时,在其他城市发现检索热度及匹配度较高的POI,也会一并召回。如,在北京市检索「迪士尼乐园」。Sug检索可以将city设置为全国,但不建议使用,会降低检索精度。
Sug检索控制poi在城市内:citylimit设置为YES时,仅返回city中指定城市检索结果。
注意:境外区域暂不支持设置cityLimit。

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消