Возможно ли наложение плитки с помощью MapKit для iPhone?

У меня уже есть источник плитки, настроенный для использования с Google Maps JavaScript API. Я пытаюсь перевести это для использования с iPhone MapKit. Я правильно реализовал уровни масштабирования javascript в мапките. Всякий раз, когда вызывается - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated, я привязываю область к ближайшему уровню масштабирования на основе той же центральной точки.

Возможно ли реализовать решение, возможно, с помощью CATiledLayer для реализации решения для мозаичного решения. Использует ли iPhone стандартные плитки 256x256, как карты Google изначально? Любое направление или помощь в этом будет принята с благодарностью. Я бы предпочел не тратить пару недель на попытки реализовать это, если это невозможно.


person rickharrison    schedule 17.03.2010    source источник
comment
Не могли бы вы подробнее рассказать о том, как вы в конечном итоге достигли этого? Я пытаюсь сделать то же самое.   -  person Zack Angelo    schedule 22.04.2010


Ответы (3)


Да, начиная с iOS 7, MKTileOverlay подойдет:

https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKTileOverlay_class/Reference/Reference.html

person mobileideafactory.com    schedule 02.10.2013

FWIW, я потратил довольно много времени на поиск достойного решения… прежде чем углубиться в пример CATiledLayer, я заметил MKOverlay и MKOverlayView — которые являются новыми в iOS 4 и подключаются прямо к MKMapView.

Не удалось найти хороший пример реализации использования MKOverlays, который извлекает произвольные данные изображения (скажем, UIImages с удаленного тайлового сервера), но я достаточно повозился с API, пока не заработал.

Построил простой пример реализации на случай, если кому-то (например, мне) нужна ссылка:

http://github.com/mtigas/iOS-MapLayerDemo

Надеюсь, это поможет кому-то в будущем.

person Mike Tigas    schedule 11.08.2010

MapKit не предоставляет особых возможностей для пользовательских источников тайлов (на самом деле, он абсолютно ничего не предоставляет для настройки источников: вы либо используете Google Maps, либо нет). Однако я сам работал над похожей проблемой и обнаружил, что RouteMe является довольно хорошим решением для пользовательских карт: http://code.google.com/p/route-me/

Встроенная поддержка существует для OpenStreetMaps, OpenAerialMaps (который в настоящее время отключен), Virtual Earth и Yahoo Maps, но фреймворк также позволяет довольно легко подключить собственный источник тайлов.

person JonathonW    schedule 21.03.2010
comment
Я ценю ответ. На самом деле у меня есть решение для тайлинга, которое теперь работает на основе MapKit. Для моего решения на самом деле требуется поставщик сопоставления, поскольку у меня есть только наложения. Если что-то случится, я рассмотрю возможность использования route-me с Yahoo Maps. - person rickharrison; 22.03.2010