MKMapView setVisibleMapRect第一次不能正常工作

时间:2016-08-17 08:42:07

标签: mkmapview mkannotationview uitapgesturerecognizer mkmaprect

我已使用以下代码实现双击缩放。

CLLocation* currentLocation = [myArray objectAtIndex:5];
MKMapPoint annotationPoint =  MKMapPointForCoordinate(currentLocation.coordinate);
MKMapRect zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1);
[mapView setVisibleMapRect:zoomRect animated:YES];

当我第一次双击时,缩放到特定的针位置不起作用,下次再开始工作正常。

如果从距离引脚位置很远的不同位置双击,那么相同的问题,即缩放到特定引脚位置不起作用。

任何人都可以有想法吗?

由于

1 个答案:

答案 0 :(得分:1)

要将地图置于坐标中心并缩小以显示坐标两侧的某些经度和纬度,请创建MKCoordinateRegion对象并更新MKMapView以显示新区域:

CLLocation* currentLocation = [myArray objectAtIndex:5];
// Create a span covering 0.1 degrees east to west and north to south
MKCoordinateSpan degreeSpan = MKCoordinateSpanMake(0.1, 0.1);
// Create a region that centers the span on currentLocation
MKCoordinateRegion region = MKCoordinateRegionMake(currentLocation.coordinate, degreeSpan);
// Update the map to show the new region
[mapView setRegion:region animated:YES];

要进一步放大,请缩小度数范围的大小,例如:

MKCoordinateSpan degreeSpan = MKCoordinateSpanMake(0.05, 0.05);

您还可以以米为单位创建区域,这可以更容易推理。以下内容创建了一个1000 x 1000米的区域:

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(currentLocation.coordinate, 1000, 1000);

要进一步放大,请减少米数。