Gen*_*ari 5 cgcontext mapkit ios mkoverlay
我有一个自定义的MKOverlayView,它绘制了一个简单的线.在drawMapRect:我正在设置CGContextSetLineWidth(context, 30);当完全放大时看起来很好,但是当你缩小时,线条变得越来越薄.MKOverlayView参考说它会自动缩放到地图的缩放级别.无论我的缩放级别如何,我如何强制它绘制相同的宽度?我注意到MKPolylineView(和MKPolygonView)正确执行此操作...无论何时缩放以调整以保持相同的宽度,您都可以看到线条的宽度调整大小.我怎样才能在overlayView中执行此操作?
小智 14
目前尚不清楚您想要的结果.无论缩放如何,您是否希望线宽保持不变,或者您希望线条与地图视图绘制的道路宽度相同而不管缩放级别如何?
为了使线宽保持不变,请尝试用zoomScale除以:
CGContextSetLineWidth(context, (30/zoomScale));
Run Code Online (Sandbox Code Playgroud)
要使线条与道路保持相同的宽度,请使用MKRoadWidthAtZoomScale:
CGContextSetLineWidth(context, MKRoadWidthAtZoomScale(zoomScale));
Run Code Online (Sandbox Code Playgroud)
如果需要,您还可以对道路宽度应用额外的缩放:
CGContextSetLineWidth(context, 1.5*MKRoadWidthAtZoomScale(zoomScale));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2899 次 |
| 最近记录: |