После долгих царапин, вот как отобразить MKPolyline на MKMapView:
Шаг 1. Создание метода делегата для карты GetViewForOverlay
Map.GetViewForOverlay = Map_GetViewForOverlay;
Где Map - это MKMapView.
MKOverlayView Map_GetViewForOverlay(MKMapView mapView, NSObject overlay)
{
if(overlay.GetType() == typeof(MKPolyline))
{
MKPolylineView p = new MKPolylineView((MKPolyline)overlay);
p.LineWidth = 2.0f;
p.StrokeColor = UIColor.Green;
return p;
}
else
return null;
}
Шаг 2. Создайте новый экземпляр MKPolyline
MKPolyline line = MKPolyline.FromCoordinates(polyPoints);
Где polyPoints - это массив CLLocationCoordinate2D.
Шаг 3: добавить наложение на карту
Map.AddOverlay(line);
Шаг 4. Используйте приведенный ниже код для увеличения и изменения границ карты в соответствии с маршрутом
Map.SetVisibleMapRect(line.BoundingMapRect, true);