MKMapkit Center将userLocation注释放在另一个其他视图坐标中

时间:2014-03-23 18:00:32

标签: ios objective-c uiview mkmapview mapkit

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

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

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

此图像显示了两个层以及它们的组成方式。

Part 1

此图像显示完整图片。您可以在查看窗口下方看到用户位置信标脉冲。

Part 2

我已经尝试创建一个适合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 个答案:

答案 0 :(得分:2)

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];