RU:OSM2World

From OpenStreetMap Wiki
Jump to navigation Jump to search

information sign

The 3D Development team are currently working on unifying 3D related tags.
For first results see Simple 3D Buildings.
OSM2World
OSM2World 0.1.0 Autobahnkreuz Stuttgart POV.png
Автор: 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

Close-up rendering example

Инсталляция

Для OSM2World требуется Java Runtime Environment 1.6 и выше. Если вы пользуетесь JOSM, то она вероятно у вас уже есть.

Если Java установлена, зайдите на osm2world.org/download и скачайте zip архив скомпилированной программы. Распакуйте его куда-нибудь на вашем компьютере.

Графический интерфейс

OSM2World GUI with a terrain debugging view

Запустите OSM2World из командной строки, используя командный файл/скрипт, подходящий вашей системе. Это позволит вам открывать файлы OSM и просматривать модели:

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

Навигация с клавиатуры доступна как альтернатива. Различные отладочные слои можно отобразить и экспортировать в .png, .pov и .obj при возможности. Учтите, что в этот момент ухудшится качество визуализации и производительность, поскольку процесс отладки имеет более высокий приоритет.

Интерфейс командной строки

Это краткая документация о командной строке OSM2World. Важно понимать, что синтаксис командной строки пока непостоянен, и вероятно изменится в будущем.

Ввод и вывод

Результат примера экспорта в PNG
  • -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
  • --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


Документация

Страницы проекта