更新时间:2021年02月25日
poi(point of interest),即“兴趣点”。在地理信息系统中,一个poi可以是一栋房子、一个景点、一个邮筒或者一个公交站等。
百度地图sdk提供三种类型的poi检索:城市内检索、周边检索和区域检索(即矩形区域检索)。下面分别对三种poi检索服务的使用方法作说明。
百度地图sdk提供三种类型的poi检索:城市内检索、周边检索和区域检索(即矩形区域检索)。下面分别对三种poi检索服务的使用方法作说明。
poi城市检索
关键字检索适用于在某个城市内搜索某个名称相关的poi,例如:查找“北京市”的“小吃”。
使用示例如下:
// 构造检索参数 bmfpoicitysearchoption poicitysearchoption = bmfpoicitysearchoption(city: '北京', keyword: '小吃'); // 检索实例 bmfpoicitysearch poicitysearch = bmfpoicitysearch(); // 检索回调 poicitysearch.ongetpoicitysearchresult(callback: (bmfpoisearchresult result, bmfsearcherrorcode errorcode) { print( `poi城市检索回调 errorcode = ${errorcode} \n result = ${result?.tomap()}`); // 解析reslut,具体参考demo }); // 发起检索 bool flag = await poicitysearch.poicitysearch(poicitysearchoption);
显示的效果如下:
poi周边检索
周边检索是在一个圆形范围内的poi检索,适用于以某个位置为中心点,自定义搜索半径,搜索某个位置附近的poi。
使用示例如下:
// 构造检索参数 bmfpoinearbysearchoption poinearbysearchoption = bmfpoinearbysearchoption( keywords:['小吃', '酒店'], location: bmfcoordinate(40.049557, 116.279295), radius: 1000, isradiuslimit: true); // 检索实例 bmfpoinearbysearch nearbysearch = bmfpoinearbysearch(); // 检索回调 nearbysearch.ongetpoinearbysearchresult(callback: (bmfpoisearchresult result, bmfsearcherrorcode errorcode) { print( `poi周边检索回调 errorcode = ${errorcode} \n result = ${result?.tomap()}`); // 解析reslut,具体参考demo }); // 发起检索 bool flag = await nearbysearch.poinearbysearch(poinearbysearchoption);
显示的效果如下:
poi矩形检索(poi区域检索)
poi区域检索,即"在由开发者指定的西南角和东北角组成的矩形区域内的poi检索"
使用示例如下:
// 构造检索参数 bmfpoiboundsearchoption poiboundsearchoption = bmfpoiboundsearchoption( keywords:['小吃'], leftbottom: bmfcoordinate(40.049557, 116.279295), righttop: bmfcoordinate(40.056057, 116.308102)); // 检索实例 bmfpoiboundsearch boundsearch = bmfpoiboundsearch(); // 检索回调 boundsearch.ongetpoiboundssearchresult(callback: (bmfpoisearchresult result, bmfsearcherrorcode errorcode) { print( `poi矩形检索回调 errorcode = ${errorcode} \n result = ${result?.tomap()}`); // 解析reslut,具体参考demo }); // 发起检索 bool flag = await boundsearch.poiboundssearch(poiboundsearchoption);
显示的效果如下:
poi详情检索
开发者可以针对poi检索到的结果进行进一步的检索以获取详细信息。
使用示例如下:
// 构造检索参数 bmfpoidetailsearchoption poidetailsearchoption = bmfpoidetailsearchoption( scope: bmfpoisearchscopetype.detail_information, poiuids:['e96b44200baa3b4082288acc']); // 检索实例 bmfpoidetailsearch poidetailsearch = bmfpoidetailsearch(); // 检索回调 poidetailsearch.ongetpoidetailsearchresult(callback: (bmfpoidetailsearchresult result, bmfsearcherrorcode errorcode) { print( `poi详情检索回调 errorcode = ${errorcode} \n result = ${result?.tomap()}`); // 解析reslut,具体参考demo }); // 发起检索 bool flag = await poidetailsearch.poidetailsearch(poidetailsearchoption);
显示的效果如下:
poi室内检索
支持检索室内地图上的poi,即输入关键字后,返回室内图内的poi的点。
使用示例如下:
// 构造检索参数 bmfpoiindoorsearchoption poiindoorsearchoption = bmfpoiindoorsearchoption( indoorid: '1266498491660632063', keyword: '小吃', floor: ''); // 检索实例 bmfpoiindoorsearch poiindoorsearch = bmfpoiindoorsearch(); // 检索回调 poiindoorsearch.ongetpoiindoorsearchearchresult(callback: (bmfpoiindoorsearchresult result, bmfsearcherrorcode errorcode) { print( `poi室内检索回调 errorcode = ${errorcode} \n result = ${result?.tomap()}`); // 解析reslut,具体参考demo }); // 发起检索 bool flag = await poiindoorsearch.poiindoorsearch(poiindoorsearchoption);
显示的效果如下: