Добавление данных векторных карт в приложение iOS GPS.Отображение векторной графики в реальном времени - PullRequest
13 голосов
/ 07 января 2011

Мы работаем над проектом по добавлению данных векторных карт из OSM и NAVTEQ в приложение GPS для iOS.

В настоящее время приложение отображает растровые изображения карты и предоставляет функции навигации по движущейся карте. Теперь мы хотим сделать еще один шаг вперед за счет интеграции векторных карт, но не знаем, с чего начать.

Было бы здорово получить рекомендации от разработчиков, имеющих опыт работы с GPS-навигацией.

Вот краткое изложение требований:

Целевые устройства: IOS. C ++ предпочтительнее для ядра для будущей совместимости с другими платформами.

Интеграция данных и упаковка: Источник данных карты: - NAVTEQ - OpenStreetMap

Формат файла: - Идеально подходит для мобильных устройств с учетом ограничений устройства. - Либо найдите уже установленный формат, либо создайте его в доме.

Компиляция: - Определить формат для исходных данных (Shp, MapInfo и т. Д.) - Скомпилируйте исходный формат в требуемый формат.

Движок рендеринга карты: Отображение карт: - Вид векторной карты будет отделен от текущего вида растровой карты. - Отображение данных в линии, точки, многоугольники и т. Д. В режиме реального времени. Плиточный или предварительно обработанный не допускается. - 2D вид птичьего полета. (3D планируется для будущих версий). - Рельеф тени, чтобы проиллюстрировать высоту. - Отображение пользовательских данных, таких как маршруты, журналы, путевые точки. - масштаб, например, 500 метров. - Быстрая производительность важна для обеспечения лучшего пользовательского опыта. - Хорошие примеры - приложение Tom Tom для iOS. Карта Взаимодействия: - Панорамирование, масштабирование, поворот. - Используйте функцию мультитач. Поиск - Адрес, местонахождение, POI (Geo Coding) - Адрес из местоположения (обратное геокодирование)

Таблицы стилей - Легко настроить внешний вид отображаемой карты. - Каждый элемент может быть cusomised.

Мы хотели бы узнать, с чего начать наше исследование. Какие библиотеки и SDK существуют, на которые стоит потратить время на изучение?

Ответы [ 3 ]

2 голосов
/ 16 июля 2012

Некоторые заметки, основанные на моем опыте:

Формат исходных данных: вы, вероятно, захотите импортировать данные из шейп-файлов ESRI и OpenStreetMap (который поставляется в виде XML или более компактного, но эквивалентного двоичного формата),Данные NAVTEQ могут быть получены как шейп-файлы ESRI.Затененный рельеф может быть получен путем обработки данных высоты USGS (http://dds.cr.usgs.gov/srtm/).

2D против 3D: шаг от одного к другому большой. 2D данные почти всегда представлены в виде широты и долготы и проецируются на плоскость: GoogleКарты и OpenStreetMap используют очень простую, но весьма дериватизированную сферическую проекцию Меркатора. Для перехода к 3D необходимо выбрать систему координат - проецируемую плоскость плюс высота относительно истинного 3D на основе формы земли - и, возможно, проблемы, связанные с уровнем детализации.Чтобы продолжить, можно нарисовать форму земли (холмы и долины) в виде треугольной сетки, а затем наложить на нее оставшуюся часть карты в виде текстуры. Возможно, вы захотите рассмотреть «два с половиной D» - используяперспективное преобразование для отображения карты, как будто она просматривается с высоты.

Библиотеки: список библиотек рендеринга карты довольно большой здесь , как коммерческих, так и некоммерческих (раскрытие: мояодин из них). Многие из этих библиотек имеют sys таблицы стилейТемы для настройки внешнего вида карты.

Очень хорошая библиотека рендеринга с открытым исходным кодом (не моя) - Mapnik, но я не уверен, будет ли это легко переноситься на iOS.Тем не менее, это хорошая идея прочитать о том, как Mapnik и другие библиотеки рендеринга выполняют свою работу, чтобы понять проблему.OpenStreetMap wiki - хороший портал для получения дополнительной информации о поле.

Рендеринг текста на картах почти всегда выполняется с использованием FreeType , библиотеки растеризатора с открытым исходным кодом с неограниченной лицензией.

0 голосов
/ 17 октября 2012

В OSM Wiki есть список, но, к сожалению, он неполон.

Две известные мне векторные библиотеки: CartoType (которые вы можете увидетьиспользуется в более новых Lonely Planet Guides ) и Skobbler - Skobbler не имеет готового продукта, но я уверен, что они интегрируют свои векторные карты и маршруты для вас.

Есть также связанный вопрос по OSM StackExchange

0 голосов
/ 03 июня 2012

Попробуйте библиотеку MapBox: http://mapbox.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...