2012-10-31 38 views
0

我試圖繪製和地圖上的多個GPS座標區域。這些座標將從Web服務下載。有五個座標在彩色區域塊上創建。因爲我不能發佈圖像,但這裏是一個url的例子 OutageMap如何從GPS座標的地圖上顏色區域

有人可以告訴我什麼是實現這個最好的方式?我在黑暗中拍攝,所以沒有真正的代碼可用。下面的url是我們目前通過html使用的。試圖本地創建到iphone而不是調用webview。

回答

0

您可以使用MKPolygon,並與您點的列表中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類,它是MKPolygon的一個子類,並且具有color屬性。然後創建ColoredPolygon並在加載數據時設置顏色。在mapView:viewForOverlay中,您只需將MKOverlay轉換爲ColoredPolygon,然後將fillColor設置爲ColoredPolygon.color

+1

不會使用MKPolygon和MKPolygonView會更好嗎?移動和縮放也將被自動處理。 – Anna

+0

你說得對,這是一個更好的方法。 –

+0

謝謝,這真的幫了很多! – Dwill