0

我正在尝试在具有多个 GPS 坐标的地图上绘制和区域。这些坐标将从网络服务下载。在彩色区域块上创建了五个坐标。因为我还不能发布图片,这里是示例 OutageMap的 url

有人能告诉我实现这一目标的最佳方法是什么吗?我在这里在黑暗中拍摄,所以没有真正的代码可用。下面的 url 是我们目前通过 html 使用的。尝试在 iphone 上本地创建它,而不是调用 webview。

4

1 回答 1

0

您可以将 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您只需将MKOverlaya 转换为 aColoredPolygon然后将其设置fillColorColoredPolygon.color

于 2012-10-31T20:57:00.523 回答