gpt4 book ai didi

iOS - 如何从 JSON 文件创建与其 GMSMutablePath 关联的 GMSPolygons 字典

转载 作者:行者123 更新时间:2023-11-29 00:21:45 25 4
gpt4 key购买 nike

我目前正在使用 iOS Google Map SDK,我想在 map 上绘制一些多边形。

更准确地说,我有一个包含特定部门的不同纬度/经度点的 JSON。

我可以通过创建仅由几个点组成的 GMSMutablePath 来绘制 GMSPolygon,如 Google 文档中所示。

我在另一端无法实现的是使其通用。

让我给你看一些代码。

{"01": [[51.01, 2.07], [50.99, 2.12], [51.01, 2.11], [51.03, 2.15], ...], "02": [[50.51, 1.64], [50.51, 1.66], ...]}

我有这个 JSON 文件,其中包含特定部门的数千个职位点。我已将其缩短,以便您只能看到 JSON 对象的格式。

这是我的解析:

-(void) parseJsonDept {
NSString *jsonFilePath = [[NSBundle mainBundle] pathForResource:@"dept" ofType:@"json"];
if (!jsonFilePath) {
NSLog(@"Not a valid FilePath");
return;
}

NSString *myJSON = [[NSString alloc] initWithContentsOfFile:jsonFilePath encoding:NSUTF8StringEncoding error:NULL];
if (!myJSON) {
NSLog(@"File couldn't be read!");
return;
}

NSError *error = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:[myJSON dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:&error];
}

非常简单,现在我不知道如何处理。

我从 Google 文档中获取了这段代码来绘制多边形。

-(void) drawPolygon {
// Create a rectangular path
GMSMutablePath *rect = [GMSMutablePath path];
[rect addCoordinate:CLLocationCoordinate2DMake(51.01, 2.07)];
[rect addCoordinate:CLLocationCoordinate2DMake(50.99, 2.12)];
[rect addCoordinate:CLLocationCoordinate2DMake(51.03, 2.15)];
[rect addCoordinate:CLLocationCoordinate2DMake(51.01, 2.18)];

// Create the polygon, and assign it to the map.
GMSPolygon *polygon = [GMSPolygon polygonWithPath:rect];
polygon.fillColor = [UIColor colorWithRed:0.25 green:0 blue:0 alpha:0.05];
polygon.strokeColor = [UIColor blackColor];
polygon.strokeWidth = 2;
polygon.map = _mapView;
}

我的问题是如何创建与其 GMSMutablePath 及其 Department 关联的 GMSPolygons 字典。

例如,循环抛出我的 JSON 字典中的每个部门,并且 [rect addCoordinate:CLLocationCoordinate2DMake(lat, long)] 将坐标添加到我的 GMSMutablePath

每个部门依此类推,最终我得到了多边形列表。

我在 JSON 方面的挣扎超出了我的预期......

最佳答案

获得 Dictionary 后,您可以循环遍历它并从中生成 GMSMutablePath

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:[myJSON dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:&error];
GMSMutablePath *rect = [GMSMutablePath path];
for(id key in json) {
NSArray *coordinates = [json objectForKey:key];
for(NSArray *coordinate in coordinates) {
double latitude = [[coordinate firstObject] doubleValue];
double longitude = [[coordinate lastObject] doubleValue];
[rect addCoordinate:CLLocationCoordinate2DMake(latitude, longitude)];
}
}
// Create the polygon, and assign it to the map.
GMSPolygon *polygon = [GMSPolygon polygonWithPath:rect];
polygon.fillColor = [UIColor colorWithRed:0.25 green:0 blue:0 alpha:0.05];
polygon.strokeColor = [UIColor blackColor];
polygon.strokeWidth = 2;
polygon.map = _mapView;

关于iOS - 如何从 JSON 文件创建与其 GMSMutablePath 关联的 GMSPolygons 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44042963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com