创建覆盖MKMapView中当前区域的方形叠加

时间:2014-05-03 20:53:00

标签: ios ios7 mkmapview mkoverlay mkpolygon

如何创建覆盖MKMapView当前区域的方形叠加层。我的MKMapView设置了用户当前位置的坐标,但它们是中心坐标。如何计算方形坐标,以便创建一个完全适合当前视图的方形叠加?

谢谢你们!

1 个答案:

答案 0 :(得分:6)

您可以使用centerCoordinate的{​​{1}}和region属性,然后通过提取四个角来创建MKMapView叠加层,如下面的代码所示:

MKPolygon

然后将多边形添加为叠加层:

    vertex[0]=CLLocationCoordinate2DMake(map.centerCoordinate.latitude+map.region.span.latitudeDelta/2.,map.centerCoordinate.longitude-map.region.span.longitudeDelta/2.);
    vertex[1]=CLLocationCoordinate2DMake(map.centerCoordinate.latitude+map.region.span.latitudeDelta/2.,map.centerCoordinate.longitude+map.region.span.longitudeDelta/2.);
    vertex[2]=CLLocationCoordinate2DMake(map.centerCoordinate.latitude-map.region.span.latitudeDelta/2.,map.centerCoordinate.longitude+map.region.span.longitudeDelta/2.);
    vertex[3]=CLLocationCoordinate2DMake(map.centerCoordinate.latitude-map.region.span.latitudeDelta/2.,map.centerCoordinate.longitude-map.region.span.longitudeDelta/2.);
    MKPolygon *square = [MKPolygon polygonWithCoordinates:vertex count:4];

最后在[map addOverlay:square]中,您可以根据多边形叠加层定义渲染的方块:

mapView:rendererForOverlay: