我想在MKPolygon
上创建MKMapView
。我的问题是,我无法弄清楚如何做到这一点。
我知道要创建MKPolygon
我必须创建一堆MKMapPoint
结构并将它们放入数组并调用类方法polygonWithPoints
。
我的问题是,我有NSArray
个包含CLLocation
和coordinate.latitude
属性的coordinate.longitude
个对象。
如何将其逐个转换为MKMapPoint
结构?
答案 0 :(得分:2)
如果您有NSArray
个包含坐标的对象,则使用polygonWithCoordinates:count:
方法而不是polygonWithPoints:count:
会更容易。
polygonWithCoordinates:count:
方法接受CLLocationCoordinate2D
结构的C数组。 coordinate
对象中的CLLocation
属性也是CLLocationCoordinate2D
。
如果您仍想使用polygonWithPoints:count:
,则可以使用MKMapPointForCoordinate
功能将coordinate
中的CLLocation
属性转换为MKMapPoint
。< / p>
使用任一方法,首先创建相应结构的C数组,循环遍历NSArray
以设置C数组中的每个项目。然后拨打polygonWithCoordinates
或polygonWithPoints
。
This answer有一个使用polygonWithCoordinates
的代码示例。在该示例中,您可以将for
循环中的两行更改为:
CLLocation *coordObj = (CLLocation *)[coordinateData objectAtIndex:i];
coords[i] = coordObj.coordinate;
不要忘记实现viewForOverlay
委托方法(并确保设置了地图视图的delegate
属性)。