騰訊地圖行政區划邊界繪制教程來啦!!


前言

騰訊地圖iOS SDK推出了4.4.0版本,更新了多個比較實用的功能,本次介紹地圖SDK行政區划檢索功能新添加的行政區划輪廓點串,可以讓我們在地圖上繪制行政區划的邊界。

使用場景

繪制行政區划的邊界

准備

騰訊地圖iOS 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、示例圖

image.png

多個子行政區划繪制

1、使用QMSDistrictSearchSearchOption類來發起單個行政區划檢索功能

QMSDistrictChildrenSearchOption *option2 = [[QMSDistrictChildrenSearchOption alloc] init];

2、配置檢索參數對象,並設置行政區划輪廓點串,發起檢索:

// 這里需要注意,子級行政區划檢索需要根據父級的行政區划ID來檢索
option2.ID = @"110000";
[option2 setGet_polygon:QMSDistrictPolygonWithSeaArea];
[self.searcher searchWithDistrictChildrenSearchOption:option2];

3、示例圖

image.png

總結

行政區划檢索可以配合定位功能來展示用戶當前所在的區域,也可以用於做行政區划的展示功能。

作者:面糊

鏈接:https://www.jianshu.com/p/ae7351337371

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM