您现在的位置:

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

返回顶部