我在绘制到MKMapRect
派生类中传递给drawMapRect:mapRect:zoomScale:inContext
的MKOverlayView
之外的区域时遇到问题。我试图为集合中的每个坐标绘制一个三角形,并且当坐标靠近MKMapRect
的边缘时会出现问题。请参阅下图以获取问题示例。
在图像中,浅红色框表示每次调用MKMapRect
时正在渲染的drawMapRect
。如您所见,该问题用红色圆圈表示,其中仅渲染了三角形的一部分。我假设它被裁剪到MKMapRect
,尽管MKOverlayView:drawMapRect
的文档使我认为这不应该发生。
从文档中:
您也不应假设视图的框架与叠加层的边界矩形匹配。视图的框架实际上比边界矩形要大,以便您可以为可能直接位于该矩形边界上的道路之类的物体绘制线。
我目前的解决方案是,如果对象在maprect中绘制的对象多于一次,该对象比给drawMapRect的maprect稍大,但这会导致我绘制一些超出需要的东西。
有谁知道在drawMapRect中增加剪切区域大小的方法,所以这不是问题吗?也欢迎任何其他建议。
最佳答案
我最终将缓冲区添加到传递给drawMapRect:mapRect:zoomScale:inContext的rect中,并使用该缓冲区来确定要绘制的对象。这导致绘制的对象比需要的更多,但数量不多。