现在需要帮助。 我可以用MKPolyline和MKPolylineView画线,但是如何在MKMapView上的两个坐标之间绘制一条弧或曲线? 非常感谢。如何在MKMapView上使用MKOverlayView绘制圆弧/曲线线
最终的解决方案
最后我写我自己这些结论这里是为了帮助谁想要它。
如果你想:
- 只画在地图上的弧形路径
- 只是绘制图像地图
- 在地图上
所以结合弧路径和图像叠加解决办法是:
- 有MKPolyline和MKPolylineView画线,MKPolygon和MKPolygonView绘制多边形,MKCircle和MKCircleView画圆。没有人适合?弧线在哪里?哦,是的。现在,真正的解决方案:创建从衍生MKOverlayPathView自定义类并覆盖-createPath方法,在-createPath您创建一个圆弧使用你喜欢的CGContextAddArcToPoint或其他功能,和路径您刚刚关联创建到MKOverlayPathView的路径属性,并完成自定义工作。然后你在地图上添加MKPolyline(是!只需MKPolyline!),然后在-mapView:viewForOverlay:方法中创建自定义类,然后使用该多段线。然后,运行它,一切都按照你的意愿运行。魔法?你可以画一个MKPolyline作为弧线!
- 只是一个图像?使用MKAnnotationView。完成了!你能行的!我相信!
- 在我的问题中,我想绘制一个与叠加图像的弧。因此,我创建了一个自定义类,以符合MKOverlay协议以及衍生自MKOverlayView的自定义类,以绘制该叠加层。一切正常,但我不能在地图上绘制任何路径!我已将lineWidth设置为1,2,3,4 ...但它不起作用!啊..解决方案是设置线宽与MKRoadWidthAtZoomScale(zoomScale)函数,你可以看到路径!这样做了......
这里一些提示:
- 使用核心图形绘制路径,而不是MapKit坐标也不UIView的坐标!
- 在CG功能只需记住线宽应该被此功能转换:MKRoadWidthAtZoomScale(zoomScale)
- 希望能帮到
嗨,我正在尝试你的解决方案在我的地图上绘制单纯的弧形路径,但我遇到了一些问题......你能告诉我一些代码,因为我真的需要在我的应用程序中做到这一点,不能找到迄今为止的任何工作...预先感谢! Ben – Ben 2011-06-21 07:47:56
嗨,@Ben。你想在你的地图上画什么? – Shiny 2011-06-22 03:20:28
谢谢!在第1部分中,当你说:“然后在-mapView:viewForOverlay:方法中,创建自定义类,然后选择该多段线。”我应该这样做:[[THE-CUSTOM-CLASS alloc] initWithOverlay:THE-MKPOLYLINE-OVERLAY] – spiralstairs 2011-12-27 06:56:36