- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 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/
我的谷歌地图中有许多 GMSPolygon。现在我想检查一个特定的多边形是否位于(完全位于)任何其他多边形内。还需要找出哪些其他多边形与该多边形的边界相交,以及其他既不相交、既不在给定多边形内部也不覆
我的 map 中有一些 GMSPolygon: let españa = GMSMutablePath() españa.add(CLLocationCoordinate2D(latitud
无法找到任何直接的解决方案来计算 GMSPolygon 对象面积。有什么方法可以做到这一点,或者我必须用边长和一些数学计算来计算它? 最佳答案 感谢@Larme; GMSGeometryArea 就是
我的 Google map 出现在我的 ios 应用程序中,我的多边形已成功绘制在 map 上,在我的 View Controller 中使用以下代码: let camera = GMSCameraP
我正在使用 google maps api 在我的 ios 应用程序的 map 中绘制一个多边形,我从这个链接获得了这个免费的手绘多边形: https://github.com/saru2020/SA
是否存在从 GMSMapView 中移除 GMSPolygons 的方法? 它似乎不存在包含它们的 GMSMapView 属性(如 GMSPlolyLines),我应该清除 map 并重新渲染吗? 谢
是否可以从 didTapOverlay GMSMapViewDelegate 委托(delegate)方法更改 GMSPolygon .fillColor 属性?这是委托(delegate)方法: f
我有一个通过点坐标创建的 GMSPolygon,我需要将它与我的 mapView 集成。但是 map 是 mkMapView。 因为我使用的是集群图钉等,所以我想保留我在 map 上所做的工作,但现在
这是我的代码,它显示多边形但标题没有显示在任何地方。 func showGeofense(zoomeffectTo:Int) { for item in sel
我想绘制一个带有图像的 GMSPolygon 或裁剪 GMSGroundOverlay 的图像。 GMSCameraPosition *camera = [GMSCameraPosition came
我目前正在使用 iOS Google Map SDK,我想在 map 上绘制一些多边形。 更准确地说,我有一个包含特定部门的不同纬度/经度点的 JSON。 我可以通过创建仅由几个点组成的 GMSMut
我知道如何在 this link 之后使用 Apple MapKit 做到这一点,但不知道如何检查位置或注释 (GMSMarker) 是否在 Google Map SDK 的 GMSPolygon 内
根据入门指南添加了所有内容。加载 map ,我可以毫无问题地将 GMSMarker 添加到 map 中。我有一个绘制多边形的方法,但应用程序每次都会崩溃。 方法: -(void)drawPolygon
我是一名优秀的程序员,十分优秀!