如何在弧形中添加视觉元素并为其添加动画,我在mapkit中创建了 ?
以下代码将在两点之间创建一个漂亮的弧。想象一下,动画视觉将代表沿着这条弧线飞行的飞机。
-(void)addArc
{
CLLocationCoordinate2D sanFrancisco = { 37.774929, -122.419416 };
CLLocationCoordinate2D newYork = { 40.714353, -74.005973 };
CLLocationCoordinate2D pointsArc[] = { sanFrancisco, newYork };
//
MKGeodesicPolyline *geodesic;
geodesic = [MKGeodesicPolyline polylineWithCoordinates:&pointsArc[0]
count:2];
//
[self.mapView addOverlay:geodesic];
}
答案 0 :(得分:6)
实际上,注释可能是最好的选择。使用可分配的坐标属性定义注释类(或使用MKPointAnnotation
)。
令人惊讶的是,MKGeodesicPolyline
类足以通过points
属性(给出MKMapPoint
s)或{{1来提供它计算出来的各个点来创建弧。方法(给出getCoordinates:range:
s)。
(实际上,该属性和方法位于CLLocationCoordinate2D
类中MKMultiPoint
是其子类,而MKPolyline
是MKGeodesicPolyline
的子类。)
只需在计时器上更新注释的MKPolyline
属性,地图视图就会自动移动注释。
注意:对于这么长的弧,会有数千个点。
以下是使用coordinate
属性(比points
方法更易于使用)和getCoordinates:range:
的简单粗略示例:
performSelector:withObject:afterDelay: