OpenStreetMap — java-библиотека для работы с офлайн-картой.

Мне нужно создать приложение, которое будет работать в системе Linux. По сути, я хочу добиться чего-то вроде Google Maps, но с гораздо меньшей функциональностью. Приложение должно уметь делать следующее:

  • открывать и отображать офлайн-карты, так как не будет подключения к интернету
  • будет статический маршрут, как железная дорога, который нужно отображать, он не изменится
  • будет одна динамически меняющаяся точка, ее надо обновлять

Я никогда не разрабатывал такого рода приложения, я использовал только Карты Google для Android v2, что довольно просто, поэтому у меня не было бы никаких проблем, но без подключения к Интернету это не вариант. Итак, вот мои вопросы:

  • Скачал карту в формате .osm, которая мне нужна. Если я правильно понимаю, мне нужно предварительно отрендерить эти файлы, используя что-то вроде Mapnik. Правилен ли этот подход? Если да, то как я могу использовать Mapnik для этого рендеринга? Если нет, что посоветуете?
  • Допустим, я закончил с частью рендеринга. Если я правильно понимаю, то теперь надо использовать что-то вроде JMapViewer. Я должен просто импортировать .jar в свой проект, тогда этот API предоставит представление карты, и с некоторым кодированием я смогу использовать API для отображения моих уже обработанных автономных карт. Это правильно?

Также, если вы можете предложить что-нибудь, что могло бы мне помочь, я был бы признателен.

Заранее спасибо, ура


person hundeva    schedule 01.07.2013    source источник
comment
если вы запускаете свое приложение на компьютере с Linux, вы можете попробовать настроить свой собственный сервер тайлов switch2osm.org/serving-tiles/   -  person user902383    schedule 01.07.2013


Ответы (1)


в основном вы должны выполнить следующие шаги:

  • настройте сервер mapnik, загрузите файл *.osm и выполните предварительный рендеринг всех необходимых фрагментов. (храните их в каком-то zip-архиве, так как они становятся довольно большими при более высоких уровнях масштабирования, вы также заполняете неиспользуемое пространство в секторах на вашем жестком диске [tar.gz])
  • напишите свой собственный класс, расширяющийся от AbstractOsmTileSource, чтобы связать с сохраненными данными
  • напишите свой собственный класс, реализующий интерфейс TileLoader для загрузки необходимых плиток из архива
  • создать экземпляр JMapViewer и установить ранее определенные TileLoader и TileSource
  • добавить железную дорогу как MapPolygon
  • добавить текущую позицию как MapMarker
person klm    schedule 29.07.2013
comment
Спасибо за ваш комментарий, хотя мне удалось решить эту проблему некоторое время назад, я нашел библиотеку под названием mapsforge, которая сделала все, что я хотел. :) - person hundeva; 30.07.2013