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