ios – 在Apple Maps中繪制GeoJson作為疊加層

    有人能告訴我如何在Apple地圖中繪制GeoJson文件作為疊加層?我想要一個完整得例子,我有多邊形或多邊形得形狀?

    如果您為我提供了使用MKMapView渲染它得代碼或庫,那么這個文件Countries GeoJSON就足夠了

    解決方法

    我找到了一個解決方案,萬一有人也想要幫助.
    @interface HHLViewController+ (NSArray *)countriesOverlays;@end@implementation HHLViewController- (void)viewDidLoad {    [super viewDidLoad];    NSArray *overlays = [HHLViewController countriesOverlays];    [self.stateMapView addOverlays:overlays];}+ (NSArray *)countriesOverlays {    NSString *fileName = [[NSBundle mainBundle] pathForResource:@"countries" ofType:@"json"];    NSData *overlayData = [NSData dataWithContentsOfFile:fileName];    NSArray *countries = [[NSJSONSerialization JSONObjectWithData:overlayData options:NSJSONReadingAllowFragments error:nil] objectForKey:@"features"];    NSMutableArray *overlays = [NSMutableArray array];    for (NSDictionary *country in countries) {        NSDictionary *geometry = country[@"geometry"];        if ([geometry[@"type"] isEqualToString:@"Polygon"]) {            MKPolygon *polygon = [HHLViewController overlaysFromPolygons:geometry[@"coordinates"] id:country[@"properties"][@"name"]];            if (polygon) {                [overlays addObject:polygon];            }        } else if ([geometry[@"type"] isEqualToString:@"MultiPolygon"]){            for (NSArray *polygonData in geometry[@"coordinates"]) {                MKPolygon *polygon = [HHLViewController overlaysFromPolygons:polygonData id:country[@"properties"][@"name"]];                if (polygon) {                    [overlays addObject:polygon];                }            }        } else {            NSLog(@"Unsupported type: %@",geometry[@"type"]);        }    }    return overlays;}+ (MKPolygon *)overlaysFromPolygons:(NSArray *)polygons id:(NSString *)title{    NSMutableArray *interiorPolygons = [NSMutableArray arrayWithCapacity:[polygons count] - 1];    for (int i = 1; i < [polygons count]; i++) {        [interiorPolygons addObject:[HHLViewController polygonFromPoints:polygons[i] interiorPolygons:nil]];    }    MKPolygon *overlayPolygon = [HHLViewController polygonFromPoints:polygons[0] interiorPolygons:interiorPolygons];    overlayPolygon.title = title;    return overlayPolygon;}+ (MKPolygon *)polygonFromPoints:(NSArray *)points interiorPolygons:(NSArray *)polygons{    NSInteger numberOfCoordinates = [points count];    CLLocationCoordinate2D *polygonPoints = malloc(numberOfCoordinates * sizeof(CLLocationCoordinate2D));    NSInteger index = 0;    for (NSArray *pointArray in points) {        polygonPoints[index] = CLLocationCoordinate2DMake([pointArray[1] floatValue],[pointArray[0] floatValue]);        index++;    }    MKPolygon *polygon;    if (polygons) {        polygon = [MKPolygon polygonWithCoordinates:polygonPoints count:numberOfCoordinates interiorPolygons:polygons];    } else {        polygon = [MKPolygon polygonWithCoordinates:polygonPoints count:numberOfCoordinates];    }    free(polygonPoints);    return polygon;}@end

    以上是來客網為你收集整理得ios – 在Apple Maps中繪制GeoJson作為疊加層全部內容,希望內容能夠幫你解決ios – 在Apple Maps中繪制GeoJson作為疊加層所遇到得程序開發問題。

    如果覺得來客網網站內容還不錯,歡迎將來客網網站推薦給程序員好友。

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 男女久久久国产一区二区三区| 免费无码A片一区二三区| 亚洲成AV人片一区二区| 国产精品无码亚洲一区二区三区| 一区二区三区人妻无码| 小泽玛丽无码视频一区| 精品视频午夜一区二区| 毛片一区二区三区| 精品视频一区二区三区免费| 国产成人精品一区二区三区无码| 久久久久国产一区二区| 国产精品无圣光一区二区 | 欧亚精品一区三区免费| 国产精品日本一区二区不卡视频| 国产不卡视频一区二区三区| 国产一区二区精品久久岳| 激情综合一区二区三区| 一区二区三区四区视频在线| 日本一区二区三区在线观看视频| 国产精品一区二区综合| 亚洲一区二区三区在线观看网站| 日本免费一区二区三区最新| 一区二区三区视频| 亚洲一区二区三区乱码在线欧洲| 久久一区二区三区精品| 国产av一区二区三区日韩| 久久精品国产免费一区| 国产亚洲一区二区三区在线| 国产一区二区福利| 久草新视频一区二区三区| 国产av一区二区三区日韩| 久久久久人妻一区精品性色av| 亚洲国产精品自在线一区二区| 亚洲av无码一区二区三区人妖| 无码av人妻一区二区三区四区| 国产91精品一区二区麻豆网站 | 免费一区二区无码视频在线播放 | 日本不卡一区二区三区视频| 国产乱码精品一区二区三区中文| 亚洲一区二区三区偷拍女厕| 亚洲色偷偷偷网站色偷一区|