OpenStreetMap - библиотека Java для обработки автономной карты

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

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

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

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

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

Спасибо заранее, ура

1 ответ

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

  • настроить сервер mapnik, загрузить файл *.osm и предварительно отобразить все нужные вам плитки. (храните их в каком-то zip-архиве, так как они становятся довольно большими на более высоких уровнях масштабирования, вы также заполняете неиспользуемое пространство в секторах на жестком диске [tar.gz])
  • написать свой собственный класс, расширяющийся от AbstractOsmTileSource для ссылки на сохраненные данные
  • написать свой собственный класс, реализующий интерфейс TileLoader для загрузки требуемых плиток из архива
  • создать экземпляр JMapViewer и установить предварительно определенные TileLoader и TileSource
  • добавить железную дорогу как MapPolygon
  • добавить текущую позицию как MapMarker
Другие вопросы по тегам