我從pressanswer.com得到了這個答案,我認爲它可以幫助你。
由於目前我不能使用「position」keypath進行動畫製作,因此我最終使用「緯度」和「經度」keypath單獨進行了動畫處理。
首先計算點並將它們添加到2個單獨的數組中,一個用於緯度值(y)和一個用於經度(x),然後使用CAKeyFrameAnimation中的values屬性進行動畫處理。創建2個CAKeyFrameAnimation對象(每個軸1個)並使用CAAnimationGroup將它們組合在一起並將它們一起動畫以形成一個圓。
在我的等式中,我改變每個軸上半徑的長度,這樣我也可以生成一條橢圓路徑。
NSMutableArray *latitudes = [NSMutableArray arrayWithCapacity:21];
NSMutableArray *longitudes = [NSMutableArray arrayWithCapacity:21];
for (int i = 0; i <= 20; i++) {
CGFloat radians = (float)i * ((2.0f * M_PI)/20.0f);
// Calculate the x,y coordinate using the angle
CGFloat x = hDist * cosf(radians);
CGFloat y = vDist * sinf(radians);
// Calculate the real lat and lon using the
// current lat and lon as center points.
y = marker.position.latitude + y;
x = marker.position.longitude + x;
[longitudes addObject:[NSNumber numberWithFloat:x]];
[latitudes addObject:[NSNumber numberWithFloat:y]];
}
CAKeyframeAnimation *horizontalAnimation = [CAKeyframeAnimation animationWithKeyPath:@"longitude"];
horizontalAnimation.values = longitudes;
horizontalAnimation.duration = duration;
CAKeyframeAnimation *verticleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"latitude"];
verticleAnimation.values = latitudes;
verticleAnimation.duration = duration;
CAAnimationGroup *group = [[CAAnimationGroup alloc] init];
group.animations = @[horizontalAnimation, verticleAnimation];
group.duration = duration;
group.repeatCount = HUGE_VALF;
[marker.layer addAnimation:group forKey:[NSString stringWithFormat:@"circular-%@",marker.description]];
我有同樣的問題,雖然我看到的崩潰的門檻更低。我很想看到這個解決方案。 – 2013-05-05 19:03:38
我想爲各種GMSOverlays提供解決方案 – 2013-05-05 19:29:20
我看不到你想如何使用TiledLayer ..覆蓋使用UIImage ... – 2013-05-05 19:30:11