mapkit 地图视图幻灯片滑动到并放大效果?

Posted

技术标签:

【中文标题】mapkit 地图视图幻灯片滑动到并放大效果?【英文标题】:mapkit map view slide to glide to and zoom into effect? 【发布时间】:2014-12-22 06:06:51 【问题描述】:

我是 mapkit 的新手,正在尝试为 MkMapView 添加我在此类地图应用程序中经常看到的“滑动/滑动和放大类型转换效果”。

例如,我可能正在通过触摸/捏合和缩放查看、导航和缩放地图,然后单击“转到我的位置”,例如它会滑过/滑过,然后用我设置的区域/视图大小,我想你可以称之为过渡效果。 这是怎么做到的?有没有一种方法可以做到这一点,还是您必须手动编写该效果?

目前我会按“转到我的位置”按钮,它会转到我当前的位置,大小是我想要的,但没有滑动/滑动/缩放过渡类型效果。 任何帮助都会很棒

- (IBAction)zoomToCurrentLocation:(id)sender  

    float spanX = 0.00725;
    float spanY = 0.00725;

    MKCoordinateRegion region;
    region.center.latitude = self.mapView.userLocation.coordinate.latitude;
    region.center.longitude = self.mapView.userLocation.coordinate.longitude;
    region.span.latitudeDelta = spanX;
    region.span.longitudeDelta = spanY;

    [self.mapView setRegion:region animated:YES];


【问题讨论】:

【参考方案1】:

动画序列是这样的:

在第一个动画块中,将滑动/滑行映射到您指定的位置(假设是用户位置)。

然后在完成块中:

另一个动画将放大/缩小到您的位置。根据需要更改适当的值。

- (void) showUserLocation 
    [UIView animateWithDuration:1.5 animations:^

        [self.mapView setCenterCoordinate:self.mapView.userLocation.coordinate];

     completion:^(BOOL finished) 
        [UIView animateWithDuration:1.5 animations:^
            MKCoordinateSpan span;
            span.latitudeDelta  = 1;
            span.longitudeDelta = 1;

            MKCoordinateRegion region;
            region.span = span;
            region.center = self.mapView.userLocation.coordinate;
            [self.mapView setRegion:region animated:YES];
        ];
    ];

【讨论】:

很酷,感谢@Kampai,它让我放大了我想要的动画类型效果,但不是水平/垂直滑动到位置的一部分。例如。假设我的 MapView 显示的是中国,而我当前的位置在美国,我希望视图从中国滑到美国,然后像您提供的那样进行缩小部分等我该怎么做? 我尝试了您编辑的代码@Kampai,但没有运气,它仍然只是直接跳转到用户位置(没有从国家到国家效果的地图幻灯片等)它从放大级别开始,然后在 animateWithDuration 之后:1.5 缩小到国家区域视图 我又添加了一个动画块来显示缩小到的动画,我已经尝试过这段代码,它运行良好。请在调用此方法之前检查您在调用此方法时没有为地图设置任何区域或跨度值(您不需要)。 太棒了@Kampai,非常感谢,是的,我在我的 - (IBAction)zoomToCurrentLocation:(id)sender 方法中设置了一个区域/跨度值,只要我把它拿出来,它就完美地工作了!我现在明白了,这两个动画块很有意义,再次感谢!

以上是关于mapkit 地图视图幻灯片滑动到并放大效果?的主要内容,如果未能解决你的问题,请参考以下文章

幻灯片效果不起作用

谷歌地图 api 与 jquery 幻灯片的集成存在动画故障

SwiftUI 如何获取自定义幻灯片转换的视图大小?

Swift:处理自定义幻灯片菜单中的快速滑动

向引导下拉菜单添加幻灯片效果

具有动态变化视图的幻灯片功能