Отсечение в MKOverlayView: drawMapRect - PullRequest
1 голос
/ 05 октября 2010

У меня проблема с отрисовкой областей за пределами MKMapRect, переданных drawMapRect:mapRect:zoomScale:inContext в моем MKOverlayView производном классе. Я пытаюсь нарисовать треугольник для каждой координаты в коллекции, и проблема возникает, когда координата находится около края MKMapRect. См. Изображение ниже для примера проблемы.

alt text

На изображении светло-красные прямоугольники указывают MKMapRect, отображаемое при каждом вызове drawMapRect. Проблема показана в красном круге, где, как вы можете видеть, визуализируется только часть треугольника. Я предполагаю, что он обрезается до MKMapRect, хотя документация для MKOverlayView:drawMapRect заставляет меня думать, что этого не должно происходить.

Из документации:

Вы также не должны делать предположения, что рамка представления соответствует ограничивающему прямоугольнику наложения. Рамка представления на самом деле больше ограничивающего прямоугольника, чтобы вы могли рисовать линии для таких вещей, как дороги, которые могут быть расположены непосредственно на границе этого прямоугольника.

Мое текущее решение - рисовать объекты более одного раза, если они находятся в maprect, который немного больше, чем maprect, заданный для drawMapRect, но это заставляет меня рисовать некоторые вещи больше, чем нужно.

Кто-нибудь знает способ увеличения размера области отсечения в drawMapRect, чтобы это не было проблемой? Любые другие предложения также приветствуются.

1 Ответ

1 голос
/ 14 марта 2011

Я закончил тем, что добавил буфер к переданному прямоугольнику drawMapRect: mapRect: zoomScale: inContext и использовал его, чтобы определить, какие объекты рисовать.В результате получается больше объектов, чем нужно, но не намного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...