Этот код Monotouch, приведенный ниже, не вызовет исключения, но он также не будет отображать многоугольник на карте.
var ords = new CLLocationCoordinate2D () {new CLLocationCoordinate2D (32.67, -81.9), новый CLLocationCoordinate2D (32.77, -81.9), новый CLLocationCoordinate2D (32.61, -81.9), новый CLLocationCoordinate2D (32.43, -81.9), новый CLLocationCoordinate2D (32.67, -81.9)};
mPP.FromCoordinates (координаты);
mapView.AddOverlay (mkp);
Я центрировал карту по координатам [0], и это прекрасно работает, как и SetRegion с координатами [0].Используя координаты [0], у меня нет проблем с добавлением аннотации в MapView.
Я также пробовал это делать с теми же результатами (без ошибок, но без наложения):
var mkc = MKCircle.Circle (ords [0], 100);
mapView.AddOverlay (mkc);
Считая, что, возможно, MapView еще не был «готов»,Я даже попробовал поток, который ждал секунду, а затем создал полигон через InvokeOnMainThread.Карта сделала анимированное перемещение к координатам, но все равно просто показала карту и не наложила.
Если я добавлю это:
var mkp = new MKPolygonView (mkp);
mapView.AddOverlay (mkpv);
Я получаю это исключение:
"Возникло исключение Objective C. Имя: NSInvalidArgumentException Причина: - [MKPolygonViewboundingMapRect] нераспознанный селектор, отправленный экземпляру 0x7579100 "
Возможно, есть проблема с моим списком координат?Я пытался с первой координатой в конце списка, чтобы закрыть многоугольник, и без этого, с теми же результатами.
Спасибо