我正在尝试在具有多个 GPS 坐标的地图上绘制和区域。这些坐标将从网络服务下载。在彩色区域块上创建了五个坐标。因为我还不能发布图片,这里是示例 OutageMap的 url
有人能告诉我实现这一目标的最佳方法是什么吗?我在这里在黑暗中拍摄,所以没有真正的代码可用。下面的 url 是我们目前通过 html 使用的。尝试在 iphone 上本地创建它,而不是调用 webview。
我正在尝试在具有多个 GPS 坐标的地图上绘制和区域。这些坐标将从网络服务下载。在彩色区域块上创建了五个坐标。因为我还不能发布图片,这里是示例 OutageMap的 url
有人能告诉我实现这一目标的最佳方法是什么吗?我在这里在黑暗中拍摄,所以没有真正的代码可用。下面的 url 是我们目前通过 html 使用的。尝试在 iphone 上本地创建它,而不是调用 webview。
您可以将 aMKPolygon
和 aMKPolygonView
与您的点列表一起使用:
创建 viewController 或加载数据时,MKPolygon
为地图中的每个彩色块添加一个:
- (void)viewDidLoad {
for (NSDictionary *coloredAreas in coloredAreas) {
NSArray *coordinateData = coloredArea[@"coords"];
// this assumes coordinateData is an array of arrays like:
// [[0, 0], [0, 1], [0, 1]]
NSUInteger coordsLen = [coordinateData count];
CLLocationCoordinate2D *coords = malloc(sizeof(CLLocationCoordinate2D) * coordsLen);
for (int i=0; i < coordsLen; i++) {
coords[i] = CLLocationCoordinate2DMake(coordinateData[i][0], coordinateData[i][1]);
}
MKMapPoint point[] = coloredAreas['points'];
MKPolygon *polygon = [MKPolygon polygonWithPoints:points count:3];
[self.mapView addOverlay:polygon];
}
}
然后添加一个mapView:viewForOverlay
方法来绘制每个多边形:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
MKPolygonView *polygonView = [[MKPolygonView alloc] initWithPolygon:overlay]];
polygonView.fillColor = [UIColor greenColor];
return polygonView;
}
这将为每个多边形绘制一个绿色框。为了使每个多边形都具有某种颜色,我将创建一个ColoredPolygon
类,该类是其子类MKPolygon
并且具有color
属性。ColoredPolygon
然后在加载数据时创建并设置颜色。在mapView:viewForOverlay
您只需将MKOverlay
a 转换为 aColoredPolygon
然后将其设置fillColor
为ColoredPolygon.color
。