我有一个自定义MKOverlayView,它绘制了一条简单的线。在drawMapRect:
中,我要设置CGContextSetLineWidth(context, 30);
。当完全放大时,它看起来不错,但是当您缩小时,线变得越来越细。 MKOverlayView引用说明它会自动缩放到 map 的缩放级别。无论我的缩放水平如何,我都可以强制它绘制相同的宽度?我注意到MKPolylineView(和MKPolygonView)正确执行了此操作……只要缩放以保持相同的宽度,就可以看到行的宽度调整大小。如何在我的overlayView中做到这一点?
最佳答案
目前尚不清楚您想要哪个结果。是否要使线宽与缩放无关而保持不变,还是要使线宽与 map View 所绘制的道路(与缩放级别无关)相同?
无论如何要使线宽保持恒定,请尝试除以zoomScale:
CGContextSetLineWidth(context, (30/zoomScale));
要使线与道路的宽度相同,请使用MKRoadWidthAtZoomScale:
CGContextSetLineWidth(context, MKRoadWidthAtZoomScale(zoomScale));
如果需要,您还可以对道路宽度应用额外的缩放比例:
CGContextSetLineWidth(context, 1.5*MKRoadWidthAtZoomScale(zoomScale));
关于ios - 自定义MKOverlayView线宽,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5274164/