POI搜索
关键字搜索
关键字搜索是在不设置搜索方式的情况下进行的搜索。示例代码如下:
POISearch mPOISearch=new POISearch(); //设置请求参数, POISearch.Query query=POISearch.Query.newKeywordQuery("人民大会堂宾馆","北京市", null); //设置返回详细信息 query.setExinfo(2); mPOISearch.setQuery(query); //搜索结果接口 mPOISearch.setListener(new POISearch.Listener() { @Override public void onSuccess(final POISearchResult result) { //搜索成功 } @Override public void onFail(APIStatus status) { //搜索成功 } }); mPOISearch.search();
POISearch.Query 说明:
1. 只能通过POISearch.Query中newKeywordQuery(String keyword, String city, SearchArea area)方法获取实例;
2. 参数keyword 为搜索的关键字,例如“人民大会堂宾馆”。
3. 参数city为要搜索的城市,可以是城市名称/adcode 例如“北京市”。
4. area 搜索区域。圆形,矩形,沿路。普通搜索设置为null即可。
5. setExinfo(int exinfo)方法设置返回POI的信息详细程度,exinfo支持的取值和POI信息详细程度如下表:
exinfo取值 | 详细程度 |
---|---|
1(默认) | 返回POI的基本信息 |
2 | 返回POI的详细信息。仅当exinfo=2时,才可以获取到合作方信息。 |
3 | 返回POI的详细信息,但不返回该POI的子POI信息。 |
注:结果返回接口为异步线程接口,Android项目如需在返回中操作控件,必须切换到Main主线程中。
圆形搜索
以设置的坐标为圆点,展开设置半径范围内的关键字搜索,示例代码如下:
POISearch mPOISearch=new POISearch(); //设置请求参数 POISearch.Query query= POISearch.Query.newKeywordQuery("人民大会堂宾馆","北京市",new SearchArea.Circular(new GeoPoint(116.39750, 39.90850),1000)); //设置返回详细信息 query.setExinfo(2); mPOISearch.setQuery(query); //搜索结果接口 mPOISearch.setListener(new POISearch.Listener() { @Override public void onSuccess(final POISearchResult result) { //搜索成功 } @Override public void onFail(APIStatus status) { //搜索成功 } }); mPOISearch.search();
POISearch.Query 说明:
1. 只能通过POISearch.Query中newKeywordQuery(String keyword, String city, SearchArea area)方法获取实例;
2. 参数keyword 为搜索的关键字,例如“人民大会堂宾馆”;
3. 参数city为要搜索的城市,可以是城市名称/adcode 如“北京市”;
4. area 搜索区域,圆形区域参数设置解释如下:
5. new SearchArea.Circular(GeoPoint point, int radius),参数解释如下:
(1) point:为Geopoint类,圆形的原点。
(2) radius:int类,搜索的半径,单位米。
6. setExinfo(int exinfo)方法设置返回POI的信息详细程度,exinfo支持的取值和POI信息详细程度如下表:
exinfo取值 | 详细程度 |
---|---|
1(默认) | 返回POI的基本信息 |
2 | 返回POI的详细信息。仅当exinfo=2时,才可以获取到合作方信息。 |
3 | 返回POI的详细信息,但不返回该POI的子POI信息。 |
注:结果返回接口为异步线程接口,Android项目如需在返回中操作控件,必须切换到Main主线程中。
矩形搜索
以设置的左上角和右下角的坐标矩形范围内的关键字搜索,示例代码如下:
POISearch mPOISearch=new POISearch(); //设置请求参数 POISearch.Query query= POISearch.Query.newKeywordQuery("人民大会堂宾馆","北京市",new SearchArea.Bounds(new GeoRect(116.43423, 39.93766,116.39750, 39.90850))); //设置返回详细信息 query.setExinfo(2); mPOISearch.setQuery(query); //搜索结果接口 mPOISearch.setListener(new POISearch.Listener() { @Override public void onSuccess(final POISearchResult result) { //搜索成功 } @Override public void onFail(APIStatus status) { //搜索成功 } }); mPOISearch.search();
POISearch.Query 说明:
1. 只能通过POISearch.Query中newKeywordQuery(String keyword, String city, SearchArea area)方法获取实例;
2. 参数keyword: 搜索的关键字,例如“人民大会堂宾馆”;
3. 参数city: 要搜索的城市,可以是城市名称/adcode 如北京市;
4. 参数area: 搜索区域,矩形区域参数设置new SearchArea.Bounds(GeoRect geoRect)
5. GeoRect类,new SearchArea.Bounds(new GeoRect(left,top,right,bottom),参数解释如下:
(1) left: 左上角坐标经度;
(2) top: 左上角坐标纬度;
(3) right: 右下角坐标经度;
(4) bottom: 右下角坐标纬度。
6. setExinfo(int exinfo)方法设置返回POI的信息详细程度,exinfo支持的取值和POI信息详细程度如下表:
exinfo取值 | 详细程度 |
---|---|
1(默认) | 返回POI的基本信息 |
2 | 返回POI的详细信息。仅当exinfo=2时,才可以获取到合作方信息。 |
3 | 返回POI的详细信息,但不返回该POI的子POI信息。 |
注:结果返回接口为异步线程接口,Android项目如需在返回中操作控件,必须切换到Main主线程中。
沿途搜索
以设置的路线坐标序列进行沿路关键字搜索,示例代码如下:
POISearch mPOISearch=new POISearch(); //设置请求参数 GeoPoint[] geoPoints=new GeoPoint[2]; geoPoints[0]=new GeoPoint(116.39750, 39.90850); geoPoints[1]= new GeoPoint(116.43423, 39.93766); POISearch.Query query= POISearch.Query.newKeywordQuery("人民大会堂宾馆","北京市",new SearchArea.Path(geoPoints)); //设置返回详细信息 query.setExinfo(2); mPOISearch.setQuery(query); //搜索结果接口 mPOISearch.setListener(new POISearch.Listener() { @Override public void onSuccess(final POISearchResult result) { //搜索成功 } @Override public void onFail(APIStatus status) { //搜索成功 } }); mPOISearch.search();
POISearch.Query 说明:
1. 只能通过POISearch.Query中newKeywordQuery(String keyword, String city, SearchArea area)方法获取实例;
2. 参数keyword: 搜索的关键字,例如“人民大会堂宾馆”;
3. 参数city: 要搜索的城市,可以是城市名称,如北京市;
4. 参数area: 搜索区域,沿路参数设置new SearchArea.Path(GeoPoint[] geoPointArray),参数geoPointArray为路线经过的坐标点数组。
5. setExinfo(int exinfo)方法设置返回POI的信息详细程度,exinfo支持的取值和POI信息详细程度如下表:
exinfo取值 | 详细程度 |
---|---|
1(默认) | 返回POI的基本信息 |
2 | 返回POI的详细信息。仅当exinfo=2时,才可以获取到合作方信息。 |
3 | 返回POI的详细信息,但不返回该POI的子POI信息。 |
注:结果返回接口为异步线程接口,Android项目如需在返回中操作控件,必须切换到Main主线程中。
详情查询
POI信息搜索根据POI的Id获取POI的信息,示例代码如下:
//设置参数 POIDetailSearch.POIDetailQuery poiDetailQuery = POIDetailSearch.POIDetailQuery.newQuery (poiId); //设置返回详细信息 poiDetailQuery.setExinfo(2); //设置参数,监听,开启搜索 POIDetailSearch.searchPoiDetail(poiDetailQuery, new POIDetailSearch.POIDetailListener() { @Override public void onSuccess(POI result) { //搜索成功,获取POI信息 } @Override public void onFail(APIStatus status) { //搜索失败 } });
POIDetailSearch.POIDetailQuery构造方法说明:
1. POIDetailSearch.POIDetailQuery.newQuery (String poiId);构造方法参数poiId是通过获取POI信息后,在POI中通过getPid()获取。
2. setExinfo(int exinfo)方法设置返回POI的信息详细程度,exinfo支持的取值和POI信息详细程度如下表:
exinfo取值 | 详细程度 |
---|---|
1(默认) | 返回POI的基本信息 |
2 | 返回POI的详细信息。仅当exinfo=2时,才可以获取到合作方信息。 |
3 | 返回POI的详细信息,但不返回该POI的子POI信息。 |
注:结果返回接口为异步线程接口,Android项目如需在返回中操作控件,必须切换到Main主线程中。
合作方信息查询
根据在POI信息中的合作方id和合作方名称,获取POI合作方信息,示例代码如下:
// 设置参数 POIDetailSearch.CPInfoQuery cpInfoQuery = POIDetailSearch.CPInfoQuery.newQuery (extend.getCpId(), extend.getCpName()); // 发起请求 POIDetailSearch.searchCPInfo(cpInfoQuery, new POIDetailSearch.CPInfoListener() { @Override public void onSuccess(final CPInfo result) { // 成功得到合作方信息cpinfo } @Override public void onFail(APIStatus status) { // 获取结果失败 } });
POIDetailSearch.CPInfoQuery构造方法说明:
1. POIDetailSearch.CPInfoQuery.newQuery(String cpId, String cpName): 构造方法
2. 参数cpid和cpName是通过设置返回获取POI详细信息(参考setExinfo(int exinfo) 方法,exinfo为2时返回)后,在POI中获取Extend中,包含cpId和cpName。POI类中getExtend()方法获取Extend类,Extend中getCpId()方法获取CpId,Extentd中getCpName()获取cpName。
注:结果返回接口为异步线程接口,Android项目如需在返回中操作控件,必须切换到Main主线程中。