POI(Point of Interest),即“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个景点、一个邮筒或者一个公交站等。
百度地图SDK提供三种类型的POI检索:城市内检索、周边检索和区域检索(即矩形区域检索)。下面分别对三种POI检索服务的使用方法作说明。
关键字检索适用于在某个城市内搜索某个名称相关的POI,例如:查找“北京市”的“小吃”。
使用示例如下:
// 构造检索参数BMFPoiCitySearchOption poiCitySearchOption =BMFPoiCitySearchOption(city: '北京', keyword: '小吃');// 检索实例BMFPoiCitySearch poiCitySearch = BMFPoiCitySearch();// 检索回调poiCitySearch.onGetPoiCitySearchResult(callback:(BMFPoiSearchResult result, BMFSearchErrorCode errorCode) {print(`poi城市检索回调 errorCode = ${errorCode}, result = ${result?.toMap()}`);// 解析reslut,具体参考demo});// 发起检索bool flag = await poiCitySearch.poiCitySearch(poiCitySearchOption);
显示的效果如下:
周边检索是在一个圆形范围内的POI检索,适用于以某个位置为中心点,自定义搜索半径,搜索某个位置附近的POI。
使用示例如下:
// 构造检索参数BMFPoiNearbySearchOption poiNearbySearchOption =BMFPoiNearbySearchOption(keywords: <String>['小吃', '酒店'],location: BMFCoordinate(40.049557, 116.279295),radius: 1000,isRadiusLimit: true);// 检索实例BMFPoiNearbySearch nearbySearch = BMFPoiNearbySearch();// 检索回调nearbySearch.onGetPoiNearbySearchResult(callback:(BMFPoiSearchResult result, BMFSearchErrorCode errorCode) {print(`poi周边检索回调 errorCode = ${errorCode}, result = ${result?.toMap()}`);// 解析reslut,具体参考demo});// 发起检索bool flag = await nearbySearch.poiNearbySearch(poiNearbySearchOption);
显示的效果如下:
POI区域检索,即"在由开发者指定的西南角和东北角组成的矩形区域内的POI检索"。
使用示例如下:
// 构造检索参数BMFPoiBoundSearchOption poiBoundSearchOption =BMFPoiBoundSearchOption(keywords: <String>['小吃'],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}, result = ${result?.toMap()}`);// 解析reslut,具体参考demo});// 发起检索bool flag = await boundSearch.poiBoundsSearch(poiBoundSearchOption);
显示的效果如下:
开发者可以针对Poi检索到的结果进行进一步的检索以获取详细信息。
使用示例如下:
// 构造检索参数BMFPoiDetailSearchOption poiDetailSearchOption =BMFPoiDetailSearchOption(scope: BMFPoiSearchScopeType.DETAIL_INFORMATION,poiUIDs: <String>['e96b44200baa3b4082288acc']);// 检索实例BMFPoiDetailSearch poiDetailSearch = BMFPoiDetailSearch();// 检索回调poiDetailSearch.onGetPoiDetailSearchResult(callback:(BMFPoiDetailSearchResult result,BMFSearchErrorCode errorCode) {print(`poi详情检索回调 errorCode = ${errorCode}, result = ${result?.toMap()}`);// 解析reslut,具体参考demo});// 发起检索bool flag = await poiDetailSearch.poiDetailSearch(poiDetailSearchOption);
显示的效果如下:
支持检索室内地图上的POI,即输入关键字后,返回室内图内的POI的点。
使用示例如下:
// 构造检索参数BMFPoiIndoorSearchOption poiIndoorSearchOption =BMFPoiIndoorSearchOption(indoorID: '1266498491660632063', keyword: '小吃', floor: '');// 检索实例BMFPoiIndoorSearch poiIndoorSearch = BMFPoiIndoorSearch();// 检索回调poiIndoorSearch.onGetPoiIndoorSearchearchResult(callback:(BMFPoiIndoorSearchResult result,BMFSearchErrorCode errorCode) {print(`poi室内检索回调 errorCode = ${errorCode}, result = ${result?.toMap()}`);// 解析reslut,具体参考demo});// 发起检索bool flag = await poiIndoorSearch.poiIndoorSearch(poiIndoorSearchOption);
显示的效果如下:
上一篇
下一篇
本篇文章对您是否有帮助?