I would like to retrieve a MKPolyline but my code keeps returning an MKShape. I am trying to use the GEOSwift library as described here: https://github.com/GEOSwift/GEOSwift
My Code:
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)
I get the error: Cannot invoke 'add' with an argument list of type '(MKShape)'
(let shapeLine = linestring.mapshape() should convert it to a MKPolyline)
However, if i run:
let linestring = Geometry.create("LINESTRING(51.063164 -0.728986, 51.072347 -0.723721, 51.116898 -0.731893)")!
let shapeLine = linestring.mapShape()
dump(shapeLine)
i get this:
- <MKPolyline: 0x60000069e550> #0
- super: MKMultiPoint
- super: MKShape
- super: NSObject
Is this saying that there is a Polyline there?
My overlay renderer:
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
let renderer = MKPolylineRenderer(overlay: overlay)
renderer.strokeColor = UIColor.blue
renderer.lineWidth = 5.0
return renderer
}
Also, i have already got other polylines working on this application. I have set MKMapViewDelegate and also set the delegate to self.
///To try and avoid the xy problem - im trying to search along a route, so am using GEOSwift to create buffer around polyline, then using this to search a database with a geoquery of those points, below is the specific problem as described in the title:///
Im sure the error is simple, but ive looked at the same code for so long i just cant see it.
Any help is much appreciated