我在向MKMapRect
派生类中传递给drawMapRect:mapRect:zoomScale:inContext
的{{1}}之外的区域绘图时遇到问题。我正在尝试为集合中的每个坐标绘制一个三角形,当坐标靠近MKOverlayView
的边缘时会出现问题。有关问题的示例,请参见下图。
在图像中,浅红色框表示每次调用MKMapRect
时呈现的MKMapRect
。问题在红色圆圈中说明,正如您所看到的,只有三角形的一部分被渲染。我假设它被剪切到drawMapRect
,虽然MKMapRect
的文档让我觉得这不应该发生。
来自文档:
您也不应假设视图的帧与叠加层的边界矩形匹配。视图的框架实际上比边界矩形大,以允许您为可能直接位于该矩形边界的道路绘制线条。
我目前的解决方案是多次绘制对象,如果它们在maprect中比mapMapRect略大于maprect,但这会导致我绘制一些超出需要的东西。
有没有人知道在drawMapRect中增加剪裁区域大小的方法,所以这不是问题?我们也欢迎任何其他建议。
答案 0 :(得分:1)
我最后向传入drawMapRect:mapRect:zoomScale:inContext的rect添加了一个缓冲区,并用它来确定要绘制的对象。这会导致绘制的对象数量超过需要的数量,但不会太多。