Мне уже настроили источник мозаики для использования с Google Maps JavaScript API. Я пытаюсь перевести это для использования с iPhone MapKit. Я правильно реализовал JavaScript, масштабирующий уровни в mapkit. Каждый раз, когда - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
назван, я привязываю регион к ближайшему уровню масштабирования на основе той же центральной точки.
Действительно ли возможно реализовать решение возможно с CATiledLayer для реализации решения для мозаичного размещения. IPhone использует стандарт 256x256, мозаики как карты Google делают исходно? Любое направление или справка на этом значительно ценились бы. Я не потратил бы впустую пару недель, пытаясь реализовать это, если это не возможно.
MapKit не предоставляет особых возможностей по настройке источников тайлов (на самом деле, он не предоставляет абсолютно ничего для настройки источников: вы либо используете Google Maps, либо нет). Однако я сам работал с подобной проблемой и обнаружил, что RouteMe - довольно хорошее решение для пользовательских карт: http://code.google.com/p/route-me/
Существует встроенная поддержка OpenStreetMaps, OpenAerialMaps (который в настоящее время отключен), Virtual Earth и Yahoo Maps, но структура также позволяет довольно легко подключить ваш собственный источник плитки.
FWIW, я потратил немало времени на поиски достойного решения… прежде чем погрузиться в пример CATiledLayer, я заметил MKOverlay и MKOverlayView, которые являются новыми в iOS 4 и подключаются прямо к MKMapView .
Не удалось найти хороший пример реализации использования MKOverlays, который извлекает произвольные данные изображения (скажем, UIImages с удаленного сервера плиток), но я достаточно повозился с API, пока он не заработал.
Создал простой пример реализации этого на тот случай, если кому-то (например, мне) понадобится ссылка:
http://github.com/mtigas/iOS-MapLayerDemo
Надеюсь, это поможет кому-то в будущем.