Наложение MKMapView на основе плитки

Я хочу нарисовать наложение на основе плитки поверх MKMapView, но нет очевидного способа сделать это.

Это кажется сложным, поскольку вы можете масштабировать до любого уровня с помощью MKMapView (в отличие от Google Maps).

Кто-нибудь пытался это сделать?


person Adam Ernst    schedule 26.01.2010    source источник


Ответы (3)


Я работаю над игрой, в которой мне нужно накладывать объекты на карту, чтобы они прокручивались и масштабировались вместе с картой.

Используя представления аннотаций, я смог решить первую проблему и частично решить вторую проблему. Аннотации автоматически перемещаются вместе с картой. Для их масштабирования я использую метод делегата mapView:regionDidChangeAnimated: для изменения размера аннотаций после события масштабирования. Проблема в том, что аннотации не изменяются до тех пор, пока не завершится жест масштабирования.

Я могу придумать два подхода, кроме сообщения об ошибке в Apple с просьбой предоставить API для наложения карт:

  1. Поместите представление (в основном невидимое) поверх MKMapView, которое перехватывает события масштабирования и прокрутки, обрабатывает их и передает в представление карты.

  2. Настройте библиотеку RouteMe с открытым исходным кодом, используя плитки из Open Street Map или CloudMade (первый работает медленно, второй стоит денег). Но это полностью открытый исходный код, поэтому вы сможете делать наложения в свое удовольствие. Вы также можете запустить свой собственный сервер тайлов, который выполняет наложение тайлов на сервер.

person Frank Schmitt    schedule 30.01.2010
comment
Я ценю ответ! К сожалению, хотя это творческие приемы, они не являются реальными решениями. Хотя спасибо за помощь... - person Adam Ernst; 03.02.2010
comment
Если вы имеете дело с ограниченным географическим регионом, route-me поддерживает локальное хранилище плиток. Вы можете использовать MapNik для создания плиток с данными OpenStreetMap (плюс ваши собственные формы) и отправлять их вместе с вашим приложением. Это было бы реальным решением, но, возможно, больше работы, чем оправдано вашим проектом. - person Frank Schmitt; 03.02.2010

В случае, если этот вопрос все еще получает ответы, читатели должны проверить демонстрационный код HazardMap и TileMap с WWDC2010.

person Craig    schedule 14.02.2011

Кое-что, что я обнаружил позже:

http://www.gisnotes.com/wordpress/2009/10/iphone-devnote-14-drawing-a-point-line-polygon-on-top-of-mkmapview/

Не совсем плиточное решение, но тем не менее интересное.

person Adam Ernst    schedule 06.02.2010