2013-04-30 3 views
19

Я изучаю решение, которое позволит использовать данные OpenStreetMap для рендеринга векторной карты 2D-вида в iOS вместо использования pre- отображаемые фрагменты с сервера. Подобно Apple и Google Maps в iOS6 +.Средство визуализации OSM в реальном времени в iOS (с использованием OpenGL ES)

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

Первые 2 приложения работают похоже на Apple, и Google Maps. Карта изменяется в реальном времени всякий раз, когда изменяется масштаб.
Последний, похоже, использует несколько иной подход. Он отображает векторные данные при определенных уровнях масштабирования и создает плитки, которые затем используются как обычные плитки, загруженные с сервера плитки. Таким образом, механизм рендеринга действительно может быть источником плитки для библиотеки Route-Me, но вместо загрузки фрагментов он отображает их на лету.

Первый способ является предпочтительным.

[Q] Я думаю, что можно было бы переключаться между методами довольно легко, как только рендеринг OpenGL ES будет на месте. Я имею в виду, что вы могли бы использовать средство визуализации в качестве источника для Route-Me для создания плиток, или вы могли бы использовать его как ящик в режиме реального времени, похожий на игру. Я прав?

Ближайшее решение, которое я нашел, это OpenStreetPad. Однако вместо OpenGL ES используется Core Graphics, поэтому рендеринг не является аппаратным ускорением.

В Mapbox указано, что они работают над векторными плитками, и они, вероятно, предоставят решение для iOS для рендеринга, однако оно может использовать Mapnik, поэтому я не уверен, насколько это будет эффективно. И нет ETA с середины 2013 года.

[Q] Знаете ли вы о каких-либо других библиотеках, документах, руководствах, примерах или какой-либо другой полезной информации о том, как подойти к этому? В основном, как обрабатывать данные OSM и как использовать OpenGL ES/GLKit для рисования этих данных на устройстве. Может быть, некоторые из людей, которые это сделали, могут поделиться несколькими вещами?

+0

Эй @ Калин, мне было интересно, какое решение вы выбрали? Я все еще на стадии исследования, но я немного смущен. – manar

+0

@manar Я не мог найти ни одного хорошего решения в плане реализации. Что касается конечного результата, то приложение ForeverMap 2 ближе всего к тому, что мне нужно, главным образом потому, что оно имеет полностью векторный движок рендеринга, такой как Google или Apple Maps. Учитывая все это, я думаю, что мой лучший снимок - написать механизм рендеринга с нуля, используя технологии Apple. Пока это выглядит сложной задачей, и любая помощь по-прежнему высоко ценится. Я надеюсь, что в конце концов этот вопрос получит полезные ответы, чтобы сделать вещи немного проще. – Calin

+0

спасибо за ваш ответ, вы должны взглянуть на Mapnik, это не проприетарно;) но реализация кажется сложной. – manar

ответ

1

Существует список OSM-based applications for iOS. Он также включает несколько проектов с открытым исходным кодом, например Navit. Кажется, Navit отображает карту с помощью SDL/OpenGL. См. Navit iOS wiki page для получения дополнительной информации.

+0

Интересно .. К сожалению, Navit - единственное приложение с открытым исходным кодом на этой странице, и это кросс-платформенное приложение, что, безусловно, хорошо, но меня больше интересует только iOS-технология, чтобы иметь возможность воспользоваться преимуществами некоторые очень классные рамки iOS, такие как GLKit. Стоит исследовать, хотя. Спасибо – Calin

+0

Думаю, как только вы выяснили, как извлекать/обрабатывать необработанные данные OSM, нет ничего особенного в рендеринге дорог OSM с использованием GLKit по сравнению с рендерингом чего-то другого с помощью GLKit. – scai

2

Технология, которая использовала ForeverMap 2 skobbler и их навигационное устройство GPS Nav & теперь доступно для оплаты за использование. См. Их developer platform. Примечание: У них также есть свободный уровень, который можно использовать для разработки/запуска небольших приложений.

Они отображают карту с использованием OpenGL и «векторных плит данных». Эти плитки данных данных содержат информацию о геометрии дороги (так что вы можете иметь маршрутизацию), данные POI & другие функции карты. (например, граничные пределы).

+0

Он не является открытым исходным кодом и требует от них ключа API. Не то, что я ищу. – Calin