現在需要幫助。 我可以用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