我正在尝试在具有多个GPS坐标的地图上绘制地图。这些坐标将从Web服务下载。在彩色区域块上创建了五个坐标。因为我无法发布图像,这里是一个例子的网址 OutageMap
有人能告诉我实现这一目标的最佳方式是什么?我在黑暗中拍摄,所以没有真正的代码可用。以下网址是我们目前通过html使用的内容。尝试将其原生于iphone,而不是调用webview。
答案 0 :(得分: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
。