Помощь нужна сейчас.
Я могу рисовать линии с помощью MKPolyline и MKPolylineView, но как нарисовать дугу или кривую между двумя координатами в MKMapView?
Большое спасибо.
Окончательное решение
Наконец, я написал себе эти выводы, чтобы помочь тем, кто этого хочет.
Если вы хотите:
- просто нарисуйте дугу на карте
- просто нарисуйте изображение на map
- объединяет дугу и изображение как наложение на карту
Итак, решения следующие:
- Есть 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) , и вы можете увидеть путь! Готово ......
И несколько советов здесь:
- Используйте Core Graphic для рисования контуров, а не координат MapKit или координат UIView!
- В функциях CG просто помните, что ширина линии должна быть преобразована с помощью этой функции: MKRoadWidthAtZoomScale (zoomScale)
- Надеюсь на помощь
задан Shiny 25 May 2011 в 09:52
поделиться