У меня проблема с отрисовкой областей за пределами MKMapRect
, переданных drawMapRect:mapRect:zoomScale:inContext
в моем MKOverlayView
производном классе. Я пытаюсь нарисовать треугольник для каждой координаты в коллекции, и проблема возникает, когда координата находится около края MKMapRect
. См. Изображение ниже для примера проблемы.
На изображении светло-красные прямоугольники указывают MKMapRect
, отображаемое при каждом вызове drawMapRect
. Проблема показана в красном круге, где, как вы можете видеть, визуализируется только часть треугольника. Я предполагаю, что он обрезается до MKMapRect
, хотя документация для MKOverlayView:drawMapRect
заставляет меня думать, что этого не должно происходить.
Из документации:
Вы также не должны делать предположения, что рамка представления соответствует ограничивающему прямоугольнику наложения. Рамка представления на самом деле больше ограничивающего прямоугольника, чтобы вы могли рисовать линии для таких вещей, как дороги, которые могут быть расположены непосредственно на границе этого прямоугольника.
Мое текущее решение - рисовать объекты более одного раза, если они находятся в maprect, который немного больше, чем maprect, заданный для drawMapRect, но это заставляет меня рисовать некоторые вещи больше, чем нужно.
Кто-нибудь знает способ увеличения размера области отсечения в drawMapRect, чтобы это не было проблемой? Любые другие предложения также приветствуются.