Описание тэгов Collada для точки привязки и масштабного уровня модели |
Точка привязки модели
Вариант 1. Модель должна быть построена и привязана в системе координат EPSG 3857. Тогда применимо обозначение точки привязки модели тегами формата Collada версии 1.5 <geographic_location> со следующими дочерними элементами: <longitude> - содержит число с плавающей точкой, которое определяет долготу точки привязки в геодезических координатах в градусах. Допустимые значения: от -180,0 до 180,0; <latitude> - содержит число с плавающей точкой, которое определяет широту точки привязки в геодезических координатах в градусах. Допустимые значения: от -90,0 до 90,0; <altitude mode=" "> - опеределяет режим задания высоты в модели: absolute - у всех точек модели задана абсолютная высота, relativeToGround - у всех точек модели высота задана относительно местности (идет, как режим по умолчанию). Это стандартный и наиболее удобный вариант. Модель и ее привязка становятся читаемыми для любых программных продуктов, которые работают с Collada версии 1.5 и выше.
Соответственно, в файле будет:
<asset> ... <created>2019-01-24T11:38:25Z</created> <modified>2019-01-24T11:38:25Z</modified> <up_axis>Z_UP</up_axis> <coverage> <geographic_location> <longitude>-105.2830</longitude> <latitude>40.0170</latitude> <altitude mode="relativeToGround">0</altitude> </geographic_location> </coverage> </asset>
<!---->
Вариант 2. Применим, если модель и ее привязка сделаны в системе координат, отличной от WGS 84. В заголовок файла модели в формате Collada необходимо добавить теги <extra>: name = "EPSG" - задается код EPSG системы координат модели; name = "unit" - задаются единицы измерения для точки привязки модели (высота всегда в метрах): "meter" - метры, "grad" - градусы; name = "origin" - задается точка привязки модели в заданной системе координат в заданных единицах: X Y H или B L H. Высота всегда задается в метрах; name = "height mode" - определяет режим задания высоты у точек модели: absolute - у всех точек модели задана абсолютная высота, relative - у всех точек модели высота задана относительно точки привязки (идет, как режим по умолчанию).
Это будет выглядеть так:
<extra name="EPSG" type="32636"/> <extra name="unit" type="meter"/> <extra name="height mode" type=" relative"/> <extra name="origin">123456.123456 7654321.765432 123.123456</extra>
Соответственно, в файле будет:
<?xml version="1.0" encoding="utf-8"?> <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1"> <asset> <contributor> <authoring_tool>ModelMaker</authoring_tool> </contributor> <created>2019-01-24T11:38:25Z</created> <modified>2019-01-24T11:38:25Z</modified> <up_axis>Z_UP</up_axis> <extra name="EPSG" type="32636"/> <extra name="unit" type="meter"/> <extra name="height mode" type=" relative"/> <extra name="origin">123456.123456 7654321.765432 123.123456</extra> </asset>
<!---->
</COLLADA>
Масштабный уровень модели
В модели надо передавать номер масштабного уровня, для которого она сделана. Соответственно, надо будет ввести еще один тег <extra> в заголовке:
name = " LEVELSCALE " - задается номер масштабного уровня в пирамиде тайлов, для которого сделана модель.
Например, <extra name="LEVELSCALE" type="20"/>
Соответственно, в файле будет:
<?xml version="1.0" encoding="utf-8"?> <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1"> <asset> <contributor> <authoring_tool>ModelMaker</authoring_tool> </contributor> <created>2019-01-24T11:38:25Z</created> <modified>2019-01-24T11:38:25Z</modified> <up_axis>Z_UP</up_axis> <extra name="LEVELSCALE" type="20"/> <extra name="EPSG" type="32636"/> <extra name="unit" type="meter"/> <extra name="height mode" type=" relative"/> <extra name="origin">123456.123456 7654321.765432 123.123456</extra> </asset>
<!---->
</COLLADA>
<!---->
</COLLADA>
|