您的位置:首页 > 其它

限制MKMapView显示的区域

2013-08-12 16:15 274 查看
限制MKMapView显示的区域: 自定义一个显示范围 (根据 centerCoord 和 span 来确定地图的初始 Region),拖动或者缩放都不能超过限定的范围。

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{

//限制map显示区域
/*
newLocCoordinate : 初始的中心点经纬度
oriSpan :初始的Span

*/
MKCoordinateRegion regin = mapView.region;

if ((regin.span.latitudeDelta > oriSpan.latitudeDelta ) || (regin.span.longitudeDelta > oriSpan.longitudeDelta) ) {

CLLocationCoordinate2D centerCoord = newLocCoordinate;

MKCoordinateSpan span = oriSpan;

MKCoordinateRegion region = MKCoordinateRegionMake(centerCoord, span);

[mapView setRegion: region animated: YES];
}

if (regin.center.latitude+regin.span.latitudeDelta/2 > newLocCoordinate.latitude+oriSpan.latitudeDelta/2
||regin.center.latitude-regin.span.latitudeDelta/2 < newLocCoordinate.latitude-oriSpan.latitudeDelta/2) {
CLLocationCoordinate2D centerCoord = newLocCoordinate;

MKCoordinateSpan span = oriSpan;

MKCoordinateRegion region = MKCoordinateRegionMake(centerCoord, span);

[mapView setRegion: region animated: YES];

}

if (regin.center.longitude+regin.span.longitudeDelta/2 > newLocCoordinate.longitude+oriSpan.longitudeDelta/2
||regin.center.longitude-regin.span.longitudeDelta/2 < newLocCoordinate.longitude-oriSpan.longitudeDelta/2) {
CLLocationCoordinate2D centerCoord = newLocCoordinate;

MKCoordinateSpan  span = oriSpan;

MKCoordinateRegion region = MKCoordinateRegionMake(centerCoord, span);

[mapView setRegion: region animated: YES];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: