我认为这不能使用 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 来实现地图标注。