您现在的位置:

POI搜索

关键字搜索

关键字搜索是在不设置搜索方式的情况下进行的搜索。示例代码如下:

  1. POISearch mPOISearch=new POISearch();
  2. //设置请求参数,
  3. POISearch.Query query=POISearch.Query.newKeywordQuery("人民大会堂宾馆","北京市", null);
  4. //设置返回详细信息
  5. query.setExinfo(2);
  6. mPOISearch.setQuery(query);
  7. //搜索结果接口
  8. mPOISearch.setListener(new POISearch.Listener() {
  9. @Override
  10. public void onSuccess(final POISearchResult result) {
  11. //搜索成功
  12. }
  13. @Override
  14. public void onFail(APIStatus status) {
  15. //搜索成功
  16. }
  17. });
  18. 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信息。

注:结果返回接口为异步线程接口。

圆形搜索

以设置的坐标为圆点,展开设置半径范围内的关键字搜索,示例代码如下:

  1. POISearch mPOISearch=new POISearch();
  2. //设置请求参数
  3. POISearch.Query query= POISearch.Query.newKeywordQuery("人民大会堂宾馆","北京市",new SearchArea.Circular(new GeoPoint(116.39750, 39.90850),1000));
  4. //设置返回详细信息
  5. query.setExinfo(2);
  6. mPOISearch.setQuery(query);
  7. //搜索结果接口
  8. mPOISearch.setListener(new POISearch.Listener() {
  9. @Override
  10. public void onSuccess(final POISearchResult result) {
  11. //搜索成功
  12. }
  13. @Override
  14. public void onFail(APIStatus status) {
  15. //搜索成功
  16. }
  17. });
  18. 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信息。

注:结果返回接口为异步线程接口。

矩形搜索

以设置的左上角和右下角的坐标矩形范围内的关键字搜索,示例代码如下:

  1. POISearch mPOISearch=new POISearch();
  2. //设置请求参数
  3. POISearch.Query query= POISearch.Query.newKeywordQuery("人民大会堂宾馆","北京市",new SearchArea.Bounds(new GeoRect(116.43423, 39.93766,116.39750, 39.90850)));
  4. //设置返回详细信息
  5. query.setExinfo(2);
  6. mPOISearch.setQuery(query);
  7. //搜索结果接口
  8. mPOISearch.setListener(new POISearch.Listener() {
  9. @Override
  10. public void onSuccess(final POISearchResult result) {
  11. //搜索成功
  12. }
  13. @Override
  14. public void onFail(APIStatus status) {
  15. //搜索成功
  16. }
  17. });
  18. 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信息。

注:结果返回接口为异步线程接口。

沿途搜索

以设置的路线坐标序列进行沿路关键字搜索,示例代码如下:

  1. POISearch mPOISearch=new POISearch();
  2. //设置请求参数
  3. GeoPoint[] geoPoints=new GeoPoint[2];
  4. geoPoints[0]=new GeoPoint(116.39750, 39.90850);
  5. geoPoints[1]= new GeoPoint(116.43423, 39.93766);
  6. POISearch.Query query= POISearch.Query.newKeywordQuery("人民大会堂宾馆","北京市",new SearchArea.Path(geoPoints));
  7. //设置返回详细信息
  8. query.setExinfo(2);
  9. mPOISearch.setQuery(query);
  10. //搜索结果接口
  11. mPOISearch.setListener(new POISearch.Listener() {
  12. @Override
  13. public void onSuccess(final POISearchResult result) {
  14. //搜索成功
  15. }
  16. @Override
  17. public void onFail(APIStatus status) {
  18. //搜索成功
  19. }
  20. });
  21. 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信息。

注:结果返回接口为异步线程接口。

详情查询

POI信息搜索根据POI的Id获取POI的信息,示例代码如下:

  1. //设置参数
  2. POIDetailSearch.POIDetailQuery poiDetailQuery = POIDetailSearch.POIDetailQuery.newQuery (poiId);
  3. //设置返回详细信息
  4. poiDetailQuery.setExinfo(2);
  5. //设置参数,监听,开启搜索
  6. POIDetailSearch.searchPoiDetail(poiDetailQuery, new POIDetailSearch.POIDetailListener() {
  7. @Override
  8. public void onSuccess(POI result) {
  9. //搜索成功,获取POI信息
  10. }
  11. @Override
  12. public void onFail(APIStatus status) {
  13. //搜索失败
  14. }
  15. });

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信息。

注:结果返回接口为异步线程接口。

合作方信息查询

根据在POI信息中的合作方id和合作方名称,获取POI合作方信息,示例代码如下:

  1. // 设置参数
  2. POIDetailSearch.CPInfoQuery cpInfoQuery = POIDetailSearch.CPInfoQuery.newQuery (extend.getCpId(), extend.getCpName());
  3. // 发起请求
  4. POIDetailSearch.searchCPInfo(cpInfoQuery, new POIDetailSearch.CPInfoListener() {
  5. @Override
  6. public void onSuccess(final CPInfo result) {
  7. // 成功得到合作方信息cpinfo
  8. }
  9.  
  10. @Override
  11. public void onFail(APIStatus status) {
  12. // 获取结果失败
  13. }
  14. });

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。
注:结果返回接口为异步线程接口。

返回顶部