Eigenschaften: -
var mapView: MKMapView!
var polyLine: MKPolyline!
var lineView: MKPolylineView!
erstellen Array Koordinate aus Längen- und Breiten langitude:
var coordinateArray = [CLLocationCoordinate2D]()
for obj in arrayOfLatlong {
let coordinate = CLLocationCoordinate2DMake(lat1, lon1);
coordinateArray.append(coordinate)
}
// hinzufügen Linienzug: -
polyLine = MKPolyline(coordinates: coordinateArray, count: coordinateArray.count)
mapView?.visibleMapRect = polyLine.boundingMapRect
//If you want the route to be visible
mapView?.add(polyLine)
und in Delegatmethode: -
func mapView(_ mapView: MKMapView, viewFor overlay: MKOverlay) ->
MKOverlayView {
if overlay == polyLine {
if lineView == nil {
lineView = MKPolylineView(polyline: routeLine)
lineView.fillColor = UIColor.red
lineView.strokeColor = UIColor.red
lineView.lineWidth = 5
}
return lineView
}
return nil
}
einen begehbaren Weg schaffen: -
// Source
let coordinate = CLLocationCoordinate2D(latitude: lat, longitude:
long)
let placemark: MKPlacemark = MKPlacemark(coordinate: coordinate)
let source = MKMapItem(placemark: placemark)
//Destination
let destination = MKMapItem(placemark: placemark)
let request:MKDirectionsRequest = MKDirectionsRequest()
request.source = source
request.destination = destination
// Specify the transportation type
request.transportType = MKDirectionsTransportType.walking;
request.requestsAlternateRoutes = true
let directions = MKDirections(request: request)
directions.calculate (completionHandler: {
(response: MKDirectionsResponse?, error: NSError?) in
if error == nil {
let directionsResponse = response
// Get whichever currentRoute you'd like, ex. 0
self.arrayOfRoutes = directionsResponse?.routes
}
} as! MKDirectionsHandler)
Route planen von arrayOfRoutes und zeigen auf mapview.
mapView.addOverlay(route.polyline, level: MKOverlayLevel.AboveRoads)
Ich möchte keine Linie, sondern einen begehbaren Pfad erstellen –