Я изучаю создание 3D-ландшафта с использованием CesiumJS. Я сгенерировал файлы .terrain с помощью построителя ландшафта Cesium и сохранил их в 'cesium/apps. ' в целях тестирования и во избежание проблем с CORS. Всякий раз, когда я пытаюсь сгенерировать ландшафт, я получаю сообщение об ошибке, что плитка на уровне X: 0 Y: 0 0, а также плитка на уровне X: 1 Y: 0 0 не были найдены, хотя я добавил пустые файлы в указанные места.
Невозможно обслуживать файлы .terrain в цезиевом замке из песка.
Ответы (1)
Теперь это старый вопрос, но я наткнулся на него во время своего исследования, поэтому я немного подробнее расскажу.
После того, как вам удалось сгенерировать тайлы ландшафта, наиболее очевидным на данный момент вариантом их обслуживания является https://github.com/geo-data/cesium-terrain-server. Сервер написан на Go и требует, чтобы Go присутствовал в системе. Он создан с целью упростить разработку и тестирование тайлов ландшафта, созданных с помощью инструментов Cesium Terrain Builder. а>.
Моя собственная цель состояла в том, чтобы обслуживать .terrain
плитки с сервера Apache, и это оказалось довольно легко, после проверки в fiddler того, что обслуживает cesium-terrain-server, и после обнаружения этого обмен сообщениями (ищите ответ Кевина Ринга).
Помимо CORS, по существу, файлы ландшафта должны иметь тип MIME application/octet-stream
, а в сжатом виде — Content-Encoding: gzip
. Будьте осторожны, передайте только заголовок gzip
, не gzip
повторно обслуживайте файлы, если они уже сжаты gzip.
В моем .htaccess
у меня есть следующие новые строки:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
<filesMatch "(.*)\.terrain$">
ForceType application/octet-stream
Header set Content-Disposition attachment
Header set Content-Encoding: gzip
</filesMatch>
Что мне также нужно было добавить, так это файл layer.json
в корневой папке Terrain со следующим содержимым:
{
"tilejson": "2.1.0",
"format": "heightmap-1.0",
"version": "1.0.0",
"scheme": "tms",
"tiles": ["{z}/{x}/{y}.terrain"]
}
Теперь все просто работает, как задумано.