前言
騰訊地圖iOS SDK推出了4.4.0版本,更新了多個比較實用的功能,本次介紹地圖SDK行政區劃檢索功能新添加的行政區劃輪廓點串,可以讓我們在地圖上繪製行政區劃的邊界。
使用場景
繪製行政區劃的邊界
準備
單個行政區劃繪製
1、使用QMSDistrictSearchSearchOption類來發起單個行政區劃檢索功能
QMSDistrictSearchSearchOption *option = [[QMSDistrictSearchSearchOption alloc] init];
2、配置檢索參數對象,並設置行政區劃輪廓點串,發起檢索:
option.keyword = @"110001";
// 需要注意,該屬性只有在keyword爲adcode時纔會生效
option.get_polygon = QMSDistrictPolygonWithSeaArea;
[self.searcher searchWithDistrictSearchSearchOption:option];
3、在MapView的代理方法中獲取檢索結果,並繪製在地圖中:
- (void)searchWithDistrictSearchOption:(QMSDistrictBaseSearchOption *)districtSearchOption didRecevieResult:(QMSDistrictSearchResult *)districtSearchResult {
NSArray *districtArray = districtSearchResult.result.firstObject;
QMSDistrictData *data = districtArray.firstObject;
CLLocationCoordinate2D coords[data.polygon.count];
for (int i = 0; i < data.polygon.count; i++) {
NSValue *coordValue = data.polygon[i];
coords[i] = [coordValue coordinateValue];
}
QPolygon *polygon = [[QPolygon alloc] initWithWithCoordinates:coords count:data.polygon.count];
[self.mapView addOverlay:polygon];
}
- (QOverlayView *)mapView:(QMapView *)mapView viewForOverlay:(id<QOverlay>)overlay {
if ([overlay isKindOfClass:[QPolygon class]]) {
QPolygonView *polygon = [[QPolygonView alloc] initWithPolygon:overlay];
polygon.strokeColor = [UIColor redColor];
polygon.lineWidth = 2;
return polygon;
}
return nil;
}
4、示例圖
多個子行政區劃繪製
1、使用QMSDistrictSearchSearchOption類來發起單個行政區劃檢索功能
QMSDistrictChildrenSearchOption *option2 = [[QMSDistrictChildrenSearchOption alloc] init];
2、配置檢索參數對象,並設置行政區劃輪廓點串,發起檢索:
// 這裏需要注意,子級行政區劃檢索需要根據父級的行政區劃ID來檢索
option2.ID = @"110000";
[option2 setGet_polygon:QMSDistrictPolygonWithSeaArea];
[self.searcher searchWithDistrictChildrenSearchOption:option2];
3、示例圖
總結
行政區劃檢索可以配合定位功能來展示用戶當前所在的區域,也可以用於做行政區劃的展示功能。
作者:麪糊
鏈接:https://www.jianshu.com/p/ae7351337371
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。