0

複数の GPS 座標を使用してマップ上にプロットしてエリアを作成しようとしています。これらの座標は Web サービスからダウンロードされます。色付きエリアブロック上に作成する座標は 5 つあります。まだ画像を投稿できないので、例の OutageMapへの URL を次に示します。

誰かがこれを達成するための最良の方法を教えてもらえますか? ここでは暗闇で撮影しているため、実際のコードは利用できません。以下の URL は、現在 html 経由で使用しているものです。webview を呼び出す代わりに、iphone にネイティブに作成しようとしています。

4

1 に答える 1

0

ポイントのリストでaMKPolygonと aを使用できます。MKPolygonView

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サブクラスであるクラスを作成します。次に、データをロードするときに色を作成して設定します。では、 を aにキャストしてから、を に設定します。MKPolygoncolorColoredPolygonmapView:viewForOverlayMKOverlayColoredPolygonfillColorColoredPolygon.color

于 2012-10-31T20:57:00.523 に答える