RU:OSM2World
For first results see Simple 3D Buildings.
OSM2World | |
---|---|
Автор: | Tobias Knerr and other contributors |
Лицензия: | GNU Lesser General Public License (бесплатно) |
Платформ: | Windows, Linux, и macOS |
Версия: | 0.1.9 (2012-01-11) |
Язык: | английский |
Веб-сайт: | http://osm2world.org |
Исходный код: | https://code.launchpad.net/osm2world |
Язык программирования: |
Java |
Creates a 3D model of the world from OSM data. |
OSM2World (osm2world.org) это конвертер, который создает трехмерную модель мира на основе данных OpenStreetMap. Модель может быть экспортирована в различные форматы.
Форматы экспорта
В данный момент поддерживается файлы Wavefront .obj, файлы .pov для POVRay raytracer, прямой вывод через JOGL (OpenGL bindings for Java) и изображения .png, генерируемые с использованием JOGL. Дополнительные форматы могут быть добавлены при необходимости.
Как использовать OSM2World
Инсталляция
Для OSM2World требуется Java Runtime Environment 1.6 и выше. Если вы пользуетесь JOSM, то она вероятно у вас уже есть.
Если Java установлена, зайдите на osm2world.org/download и скачайте zip архив скомпилированной программы. Распакуйте его куда-нибудь на вашем компьютере.
Графический интерфейс
Запустите OSM2World из командной строки, используя командный файл/скрипт, подходящий вашей системе. Это позволит вам открывать файлы OSM и просматривать модели:
- левая кнопка мыши перемещает позицию камеры
- правая кнопка мыши вращает камеру
- колесико мыши приближает и удаляет камеру
Навигация с клавиатуры доступна как альтернатива. Различные отладочные слои можно отобразить и экспортировать в .png, .pov и .obj при возможности. Учтите, что в этот момент ухудшится качество визуализации и производительность, поскольку процесс отладки имеет более высокий приоритет.
Интерфейс командной строки
Это краткая документация о командной строке OSM2World. Важно понимать, что синтаксис командной строки пока непостоянен, и вероятно изменится в будущем.
Ввод и вывод
-i/--input <file>
входной файл .osm, .osm.gz, .osm.bz2 или .osm.pbf-o/--output <file> ...
один и более выходных файлов. Расширение имени файла определяет формат файла. Возможны файлы .obj, .pov и .png.--resolution <horiz_res>,<vert_res>
размер в пикселях для зависимых от разрешения выводов (.png)
gt;
Камера
Определение камеры и позиции для просмотра опционально (но рекомендуется) для .pov файлов и необходимо для вывода в .png. Вы можете использовать ортогональную или перспективную проекцию. От выбора проекции зависит набор доступных параметров камеры.
Ортогональная проекция:
--oview.angle <angle_deg>
угол ортогональной проекции в градусах; по умолчанию 30. Работает в пределах > 0° и < 90°.--oview.from <N/E/S/W>
фундаментальное направление, от которого будет строиться просмотр в ортогональной проекции; по умолчанию принимается Юг (S).- есть два способа задания границ (для уровня elevation=0) отображаемой сцены:
--oview.bbox <lat>,<lon> <lat>,<lon> ...
список координат; будут использованы ближайшие границы, охватывающие данные координаты--oview.tiles <zoom>,<tileX>,<tileY> ...
один и более тайлов (определяется уровнем зума и координатами x/y); будут использованы ближайшие границы, содержащие все эти тайлы
Перспективная проекция:
--pview.pos <lat>,<lon>,<ele>
позиция камеры для перспективной проекции--pview.lookAt <lat>,<lon>,<ele>
look-at для перспективной проекции--pview.aspect <value>
соотношение сторон (ширина / высота) для перспективной проекции; по умолчанию, соотношение сторон текущего разрешения--pview.fovy <angle_deg>
vertical field угла просмотра для перспективной проекции, в градусах; по умолчанию 45.
Логи
--performancePrint
печатает в командную строку время выполнения каждой фазы конвертации--performanceTable <file>
добавляет время выполнения в файл после конвертации, в текстовой таблицы
Прочие параметры
--config <file>
файл properties с дополнительными параметрами (смотрите /Configuration file). Может использоваться как в графическом режиме, так и в командной строке.--gui
запускает графический интерфейс--help
печатает краткое описание доступных параметров командной строки--version
печатает текущую версию OSM2World
Если вы используете --gui
, --help
или --version
, OSM2World не станет выполнять конвертацию, а исполнит указанную команду.
Файлы параметров
--parameterFile <file>
файл, содержащий по одному набору параметров на каждую строку.
Если вы желаете выполнить несколько обработок, вы можете записать их параметры (без указания имени программы) в файл и передать его в качестве аргумента в OSM2World. Строки начинающиеся с #
игнорируются.
По возможности, желательно сгруппировать эти обработки - например, чтобы они содержали одинаковые параметры --input
и --config
. Так вы можете, скажем, быстро отрендерить одни и те же данные с разных ракурсов.
Примеры
./osm2world -i example.osm -o image.png --pview.pos +50.2607,+10.965,+110.0 --pview.lookAt 50.2623367,10.9640632,0
Пишет OpenGL рендеринг 3D модели, сгенерированной из example.osm в image.png. Рендеринг использует перспективную проекцию с заданными координатами позиции и look at камеры.
./osm2world -i example.osm -o tileexample.pov
Создает 3D модель из example.osm и экспортирует ее в POVRay файл example.pov. Файл POVRay не будет содержать настройки камеры, так что вам предстоит установить их вручную перед открытием example.pov в POVRay.
./osm2world -i example.osm -o tileexample.pov --oview.tiles 12,2186,1312 12,2186,1313
Создает 3D модель из example.osm и экспортирует ее в POVRay файл example.pov. Файл POVRay не будет содержать нужные настройки камеры для ортогональной проекции. Для отображения выбрана минимально возможная область, который включает в себя два тайла 2186,1312 и 2186,1313 (на 12 зуме). камера смотрит на эту область с Юга. Параметр --oview.angle
не задан, так что по умолчанию взято 30 градусов. Этот угол в частности интересен тем, что под ним два "обычных" квадратных тайла вписываются в один квадратный ортогональный тайл (а всё потому, что sin(30°)=0.5).
Интерфейс библиотеки
Вы можете использовать OSM2World в качестве библиотеки Java. The preferred way to do this is by using the ConversionFacade
class that wraps the whole conversion into a single method call. It lets you provide input data and set output targets. You can also choose which kinds of world objects you want to be created and provide fine-tuning parameters - or you can just stick to the defaults, of course. Have a look at the javadoc.
Если вам нужна большая функциональность, непонятен код и т.д., просто скажите!
Планы и ограничения
Данные о высотах
Функция в вычисления высот в OSM2World пока еще хрупкая и деактивирована по умолчанию, но присутствует как экспериментальная опция. Вычисления опираются на атрибуты объектов (таких как incline=*, layer=*, tunnel=* и bridge=*) и абсолютная высота (ele=*, как собственно из OSM, так и с других источников: SRTM или OpenDEM).
Возможные проблемы
- Рекомендуется загружать только маленькие карты, особенно в графическом интерфейсе. В OSM2World есть пара мест, где используются очень неэффективные заполнители алгоритма.
- Если для OSM2World не хватает RAM, вы можете поправить стартовые скрипты, увеличив параметр
-Xmx
- Если у вас есть еще вопросы, воспользуйтесь страницей обсуждения, или примите участие в соответствующих дискуссиях в форумах и списках рассылки. Вы также можете связаться с User:Tordanik напрямую.
Ссылки и ресурсы
Примеры приложений и тегов
- OSM2World Maps - подвижная карта создаваемая с помощью OSM2World
- Simple 3D Buildings - способ тегирования поддерживаемый OSM2World
Документация
- javadoc
- version change history
- high-level overview diagram as svg, pdf
Страницы проекта
- Website with download archive and screenshots
- Launchpad project