POI搜索

关键字搜索

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

  1. 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主线程中。

圆形搜索

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

  1. 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主线程中。

矩形搜索

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

  1. 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主线程中。

沿途搜索

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

  1. 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的信息,示例代码如下:

  1. //设置参数
    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合作方信息,示例代码如下:

  1. // 设置参数
    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主线程中。

返回顶部