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 注解居中在另一个其他视图坐标中的主要内容,如果未能解决你的问题,请参考以下文章