在MapKit中沿弧形设置可视元素的动画

时间:2014-03-19 11:46:01

标签: ios objective-c mkmapview mapkit

如何在弧形中添加视觉元素并为其添加动画,我在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];
}

enter image description here

1 个答案:

答案 0 :(得分:6)

实际上,注释可能是最好的选择。使用可分配的坐标属性定义注释类(或使用MKPointAnnotation)。

令人惊讶的是,MKGeodesicPolyline类足以通过points属性(给出MKMapPoint s)或{{1来提供它计算出来的各个点来创建弧。方法(给出getCoordinates:range: s)。

(实际上,该属性和方法位于CLLocationCoordinate2D类中MKMultiPoint是其子类,而MKPolylineMKGeodesicPolyline的子类。)

只需在计时器上更新注释的MKPolyline属性,地图视图就会自动移动注释。

注意:对于这么长的弧,会有数千个点。

以下是使用coordinate属性(比points方法更易于使用)和getCoordinates:range:简单粗略示例:

performSelector:withObject:afterDelay: