MKMapkit 将 userLocation 注解居中在另一个其他视图坐标中

Posted

技术标签:

【中文标题】MKMapkit 将 userLocation 注解居中在另一个其他视图坐标中【英文标题】:MKMapkit Center the userLocation annotation in another other views coordinates 【发布时间】:2014-03-23 18:00:31 【问题描述】:

我在另一个视图后面有一个 MKMapView,其中有一个透明部分供查看。

如何在顶视图的查看窗口中将地图视图中的用户位置居中?

请参阅下面的图片以获得视觉效果...

这张图片展示了这两层以及它们是如何组成的。

这张图片显示了完整的图片。您可以在查看窗口下方看到用户位置信标在跳动。

我尝试创建一个适合 userLocation 注释的区域,并手动将区域跨度增量调整为各种任意值,但这并没有奏效。

MKCoordinateRegion adjustedRegion = [mapView regionThatFits:MKCoordinateRegionMakeWithDistance(userLocation, 800, 800)];
adjustedRegion.span.longitudeDelta = 0.005;
adjustedRegion.span.latitudeDelta = 0.005;
[mapView setRegion:adjustedRegion animated:animated];

有什么想法吗??

【问题讨论】:

你为什么不调整地图视图的大小? 仅供参考,我无法调整地图视图的大小以适应查看窗口,因为我需要地图视图为全高,以便在表格视图滚动时显示更多/更少的地图。所以基本上只是为了效果。 【参考方案1】:
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:MKCoordinateRegionMakeWithDistance(userLocation, 800, 800)];

// Calculate the offset to scroll up the map. This example is just a rough guess. 
// You should use your concrete UI item's geometry for a more accurate calcluation. 
CLLocationDegrees moveUpDistance = adjustedRegion.span.latitudeDelta / 3 * 2;

// Move the centerfurther down to scroll up the map. 
adjustedRegion.center.latiude = adjustedRegion.center.latitude + moveUpDistance;

[mapView setRegion:adjustedRegion animated:animated];

【讨论】:

是的,它做到了!谢谢!我必须按照指示调整数字,但最终我需要从region.center.latitude 中减去moveUpDistance 才能正确!!

以上是关于MKMapkit 将 userLocation 注解居中在另一个其他视图坐标中的主要内容,如果未能解决你的问题,请参考以下文章

带有 MKMapKit 的 Swift GestureRecognizers - 放置引脚并拖动

MKMapKit 上的高斯模糊

MKMapKit 图钉点击

如何从 MKMapkit 中的地址获取经纬度?

MKMapKit 隐藏苹果地图

MKMapView 显示UserLocation 默认是灰点,不是蓝点