2

反正有WKInterfaceMapWatchkit的动画注释吗?

我有 35 张图像来形成动画。目前我正在使用NSTimerwhich 调用

-(void)addAnnotation:(CLLocationCoordinate2D)location withImageNamed:(NSString *)name centerOffset:(CGPoint)offset

具有不同图像名称的方法,但结果效率不高,动画也不流畅,因为每次它必须首先删除以前的注释并添加一个新注释。

非常感谢任何评论/建议。

4

1 回答 1

0

我认为这不能使用 WKInterfaceMap 来实现,但可以使用 WKInterfaceImage 来实现。我还没有实施所有步骤,但流程可以,

使用 MKMapSnapshotter 生成具有选定 lat-long 在中心作为 UIImage 的地图快照,

MKMapSnapshotOptions * snapOptions= [[MKMapSnapshotOptions alloc] init];
CLLocation * Location = [[CLLocation alloc] initWithLatitude:23.0300 longitude:72.5800];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(Location.coordinate, 300, 300);
snapOptions.region = region;
snapOptions.size = CGSizeMake(300, 300);
snapOptions.scale = [[UIScreen mainScreen] scale];

MKMapSnapshotter *mapSnapShot = [[MKMapSnapshotter alloc] initWithOptions:snapOptions];
[mapSnapShot startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
    if (error) {
        NSLog(@"[Error] %@", error);
        return;
    }

    UIImage *image = snapshot.image;//map image
    NSLog(@"%@",image);
    [self.mapImage setImage:image];
}];
  • 我们已经在资源中有注释图像所以动态创建注释图像的合并图像以映射快照图像。如果要从顶部添加动画,则需要在地图图像上从点 (150,0) 到 (150,150) 渲染注释图像。如果要为动画生成 15 个图像,则需要设置 15 个限制的循环,并且每次将注释图像的 Y 增加到 150/15 = 10。在 NSMutableArray 中跟踪这些合并的图像。您可以考虑将这个答案用于渲染图像。

  • 使用这些动态生成的图像 NSMutableArray 并设置为 Animation for WKInterfaceImage 来实现地图标注。

于 2015-06-08T04:37:28.423 回答