我試圖繪製和地圖上的多個GPS座標區域。這些座標將從Web服務下載。有五個座標在彩色區域塊上創建。因爲我不能發佈圖像,但這裏是一個url的例子 OutageMap如何從GPS座標的地圖上顏色區域
有人可以告訴我什麼是實現這個最好的方式?我在黑暗中拍攝,所以沒有真正的代碼可用。下面的url是我們目前通過html使用的。試圖本地創建到iphone而不是調用webview。
我試圖繪製和地圖上的多個GPS座標區域。這些座標將從Web服務下載。有五個座標在彩色區域塊上創建。因爲我不能發佈圖像,但這裏是一個url的例子 OutageMap如何從GPS座標的地圖上顏色區域
有人可以告訴我什麼是實現這個最好的方式?我在黑暗中拍攝,所以沒有真正的代碼可用。下面的url是我們目前通過html使用的。試圖本地創建到iphone而不是調用webview。
您可以使用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
。
不會使用MKPolygon和MKPolygonView會更好嗎?移動和縮放也將被自動處理。 – Anna
你說得對,這是一個更好的方法。 –
謝謝,這真的幫了很多! – Dwill