地圖API for iOS,怎么實現返回所有指定半徑內的POI

蒂花之秀
/**
*根據中心點、半徑和檢索詞發起周邊檢索
*異步函數,返回結果在BMKPoiSearchDelegate的onGetPoiResult通知
*@param option 周邊搜索的搜索參數類(BMKNearbySearchOption)
*@param index 頁碼,如果是第一次發起搜索,填0,根據返回的結果可以去獲取第n頁的結果,頁碼從0開始
*@return 成功返回YES,否則返回NO
*/
- (BOOL)poiSearchNearBy:(BMKNearbySearchOption*)option;_searcher = [[BMKPoiSearch alloc] init];
_searcher.delegate = self;
BMKNearbySearchOption *option = [[BMKNearbySearchOption alloc]init];
option.pageIndex = 0; // 起始頁
option.pageCapacity = 30; // 每頁條數
option.location = _locationCoordinate; // 中心點
option.keyword = self.keywordTF.text; // 關鍵詞
option.sortType = BMK_POI_SORT_BY_DISTANCE; // 根據距離排序
option.radius = 3000; // 半徑
BOOL flag = [_searcher poiSearchNearBy:option];
if(flag)
{
NSLog(@"周邊檢索發送成功");
}
else
{
NSLog(@"周邊檢索發送失敗");
}//實現PoiSearchDeleage處理回調結果
- (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResult errorCode:(BMKSearchErrorCode)errorCode
{
if (errorCode == BMK_SEARCH_NO_ERROR) {
//在此處理正常結果
_result = poiResult;
[_mapView removeAnnotations:[_mapView annotations]];
for (int i = 0; i < poiResult.poiInfoList.count; i++) {
BMKPoiInfo *info = [poiResult.poiInfoList objectAtIndex:i];
BMKPointAnnotation *annotation = [[BMKPointAnnotation alloc] init];
annotation.title = info.name;
annotation.subtitle = info.address;
annotation.coordinate = info.pt;
[_mapView addAnnotation:annotation];
}
self.resultNumLabel.text = FORMATSTRING(@"共找到“%@”相關%d個結果",self.keywordTF.text,poiResult.currPoiNum);
}
else {
self.resultNumLabel.text = FORMATSTRING(@"抱歉,未找到“%@”相關的結果",self.keywordTF.text);
}
}

炫瑾
/**
*根據中心點、半徑和檢索詞發起周邊檢索
*異步函數,返回結果在BMKPoiSearchDelegate的onGetPoiResult通知
*@param option 周邊搜索的搜索參數類(BMKNearbySearchOption)
*@param index 頁碼,如果是第一次發起搜索,填0,根據返回的結果可以去獲取第n頁的結果,頁碼從0開始
*@return 成功返回YES,否則返回NO
*/
- (BOOL)poiSearchNearBy:(BMKNearbySearchOption*)option;
_searcher = [[BMKPoiSearch alloc] init];
_searcher.delegate = self;
BMKNearbySearchOption *option = [[BMKNearbySearchOption alloc]init];
option.pageIndex = 0; // 起始頁
option.pageCapacity = 30; // 每頁條數
option.location = _locationCoordinate; // 中心點
option.keyword = self.keywordTF.text; // 關鍵詞
option.sortType = BMK_POI_SORT_BY_DISTANCE; // 根據距離排序
option.radius = 3000; // 半徑
BOOL flag = [_searcher poiSearchNearBy:option];
if(flag)
{
NSLog(@"周邊檢索發送成功");
}
else
{
NSLog(@"周邊檢索發送失敗");
}
//實現PoiSearchDeleage處理回調結果
- (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResult errorCode:(BMKSearchErrorCode)errorCode
{
if (errorCode == BMK_SEARCH_NO_ERROR) {
//在此處理正常結果
_result = poiResult;
[_mapView removeAnnotations:[_mapView annotations]];
for (int i = 0; i < poiResult.poiInfoList.count; i++) {
BMKPoiInfo *info = [poiResult.poiInfoList objectAtIndex:i];
BMKPointAnnotation *annotation = [[BMKPointAnnotation alloc] init];
annotation.title = info.name;
annotation.subtitle = info.address;
annotation.coordinate = info.pt;
[_mapView addAnnotation:annotation];
}
self.resultNumLabel.text = FORMATSTRING(@"共找到“%@”相關%d個結果",self.keywordTF.text,poiResult.currPoiNum);
}
else {
self.resultNumLabel.text = FORMATSTRING(@"抱歉,未找到“%@”相關的結果",self.keywordTF.text);
}
}

蔣蔣
2021-09-23 17:23:58 1443查看 1回答

lztripnote
2021-09-23 17:28:03 701查看 1回答

深海陽光
2021-09-23 17:32:55 630查看 1回答

蜜桃巧克力
2021-09-23 17:34:26 661查看 2回答