Будет ли обращение с MKCoordinateRegion как с прямоугольником снова преследовать меня? - PullRequest
2 голосов
/ 06 декабря 2010

Справочная информация: Я создаю серию приложений, основанных на местоположении, которые интенсивно используют карты. Эти карты с аннотацией местами принесенными с сервера, к которому я прохожу области карты мне нужно данные (определяемые как широта / долгота и в latDelta / longDelta, так же, как MKCoordinateRegion, но в другом месте ссылки координат) , Я пишу несколько вспомогательных методов / классов для использования при управлении этими регионами. Требуется совместимость с iOS 3.x (что означает, что MKMapRect вышел).

Вопрос: Я настраиваю себя на неудачу, рассматривая MKCoordinateRegions как прямоугольники? В частности, я рассматриваю их геометрию, как если бы она была прямоугольником, предполагая, что они имеют в основном те же свойства, что и прямоугольники. Я реализовал несколько методов, которые отражают вспомогательные методы CGRect, такие как MKCoordinateRegionUnion / Inset / Outset и т. Д., И все они проходят мои модульные тесты, но я начинаю сомневаться в правильности моих базовых предположений. На самом деле я знаю, что MKCoordinateRegion представляет собой не геометрический прямоугольник, а скорее область сферической поверхности, ограниченную двумя наборами параллельных плоскостей, перпендикулярных друг другу (бонусные баллы, если кто-то может подсказать мне более подходящий термин для этого).

Я пока не испытываю каких-либо аномалий, но, поскольку многие приложения будут зависеть от моего понимания геометрии, я бы лучше выяснил, пойду ли я по неверному пути. Тот факт, что я спал в большинстве школьных классов, посвященных трехмерной радиальной геометрии, не дает мне уверенности в правильности моей интуиции.

1 Ответ

5 голосов
/ 13 декабря 2010

Если вы принимаете во внимание случаи экватора, начального меридиана и края линии даты, я думаю, что у вас все будет в порядке.

В качестве альтернативы вы можете разработать свои собственные MKMapRect, такие как rects.У Троя Бранта есть отличный пост в блоге о том, как формируются рифы:

http://troybrant.net/blog/2010/01/mkmapview-and-zoom-levels-a-visual-guide/

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

Что касается областей, ограниченных большими кругами на поверхности сферы, они называются сферическими многоугольниками.Так что, думаю, вы могли бы просто назвать их сферическими прямоугольниками.

...