Я хотел бы получить MKPolyline, но мой код продолжает возвращать MKShape. Я пытаюсь использовать библиотеку GEOSwift, как описано здесь: https://github.com/GEOSwift/GEOSwift
Мой код:
let linestring = Geometry.create("LINESTRING(51.063164 -0.728986, 51.072347 -0.723721, 51.116898 -0.731893)")!
let shapeLine = linestring.mapShape()
self.mapView.add(shapeLine)
Я получаю сообщение об ошибке: Не удается вызвать «добавить» со списком аргументов типа «(MKShape)».
(пусть shapeLine = linestring.mapshape() должен преобразовать его в MKPolyline)
Однако, если я запускаю:
let linestring = Geometry.create("LINESTRING(51.063164 -0.728986, 51.072347 -0.723721, 51.116898 -0.731893)")!
let shapeLine = linestring.mapShape()
dump(shapeLine)
я понимаю это:
- <MKPolyline: 0x60000069e550> #0
- super: MKMultiPoint
- super: MKShape
- super: NSObject
Говорит ли это о том, что там есть полилиния?
Мой оверлейный рендерер:
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
let renderer = MKPolylineRenderer(overlay: overlay)
renderer.strokeColor = UIColor.blue
renderer.lineWidth = 5.0
return renderer
}
Кроме того, над этим приложением уже работают другие полилинии. Я установил MKMapViewDelegate, а также установил делегата на себя.
/// Чтобы попытаться избежать проблемы xy - я пытаюсь выполнить поиск по маршруту, поэтому я использую GEOSwift для создания буфера вокруг полилинии, а затем использую его для поиска в базе данных с геозапросом этих точек, ниже приведена конкретная проблема, как описано в названии:///
Я уверен, что ошибка проста, но я так долго смотрел на один и тот же код, что просто не могу его увидеть.
Любая помощь высоко ценится