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