大佬教程收集整理的这篇文章主要介绍了ios – iPhone MKMapView – MKPolygon问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
- (void)viewDidLoad { [super viewDidLoad]; dataController = [[DataController alloc] initWithmockData]; coordinateData = [dataController getCordData]; CLLOCATIOnCoordinate2D *coords = NULL; NSUInteger coordsLen = 0; /* How do we actually define an array of CLLOCATIOnCoordinate2d? */ MKPolygon *polygon = [MKPolygon polygonWithCoordinates:coords count:coordsLen]; [mapView addOverlay: polygon]; } - (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { MKPolygonView *polygonView = [[MKPolygonView alloc] initWithPolygon: routePolygon]; NSLog(@"AttempTing to add Overlay View"); return polygonView; }
我明白的是:
>我需要创建MKPolygon
> Ddd覆盖MapView
>这将转动将触发MKPolygonView的创建.
我的问题是如何使用NSArray(coordinateData)中包含的自定义对象,并将这些对象转换为CLLOCATIOnCoordinate2d的数组,以便Polygon可以解释和呈现?我不知道CLLOCATIOnCoordinate2d甚至是一个数组?有人可以清楚这一点.
例如:
coordsLen = [coordinateData count]; CLLOCATIOnCoordinate2D *coords = malloc(sizeof(CLLOCATIOnCoordinate2D) * coordsLen); for (int i=0; i < coordsLen; i++) { YourCustomObj *coordObj = (YourCustomObj *)[coordinateData objectATindex:i]; coords[i] = CLLOCATIOnCoordinate2DMake(coordObj.latitude,coordObj.longitudE); } MKPolygon *polygon = [MKPolygon polygonWithCoordinates:coords count:coordsLen]; free(coords); [mapView addOverlay:polygon];
viewForOverlay方法应如下所示:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { MKPolygonView *polygonView = [[[MKPolygonView alloc] initWithPolygon:overlay] autorelease]; polygonView.lineWidth = 1.0; polygonView.strokeColor = [UIColor redColor]; polygonView.fillColor = [UIColor greenColor]; return polygonView; }
以上是大佬教程为你收集整理的ios – iPhone MKMapView – MKPolygon问题全部内容,希望文章能够帮你解决ios – iPhone MKMapView – MKPolygon问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。