在MKOverlayView中剪切:drawMapRect

时间:2010-10-05 17:16:15

标签: iphone objective-c ios mapkit

我在向MKMapRect派生类中传递给drawMapRect:mapRect:zoomScale:inContext的{​​{1}}之外的区域绘图时遇到问题。我正在尝试为集合中的每个坐标绘制一个三角形,当坐标靠近MKOverlayView的边缘时会出现问题。有关问题的示例,请参见下图。

alt text

在图像中,浅红色框表示每次调用MKMapRect时呈现的MKMapRect。问题在红色圆圈中说明,正如您所看到的,只有三角形的一部分被渲染。我假设它被剪切到drawMapRect,虽然MKMapRect的文档让我觉得这不应该发生。

来自文档:

  

您也不应假设视图的帧与叠加层的边界矩形匹配。视图的框架实际上比边界矩形大,以允许您为可能直接位于该矩形边界的道路绘制线条。

我目前的解决方案是多次绘制对象,如果它们在maprect中比mapMapRect略大于maprect,但这会导致我绘制一些超出需要的东西。

有没有人知道在drawMapRect中增加剪裁区域大小的方法,所以这不是问题?我们也欢迎任何其他建议。

1 个答案:

答案 0 :(得分:1)

我最后向传入drawMapRect:mapRect:zoomScale:inContext的rect添加了一个缓冲区,并用它来确定要绘制的对象。这会导致绘制的对象数量超过需要的数量,但不会太多。