Создание и загрузка больших 3D объектов в Цезий - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь создать и загрузить 3D-объекты в Цезий. Мне нужно создать эти объекты программно (с помощью некоторого сервиса импорта-преобразования, используемой платформы .NET) из различных источников

У меня есть опыт сделать это в ТРИ. Я читаю файл DXF, преобразую объекты в геометрии PostGIS, триангулирую (для создания поверхности из данных высот), создаю геометрию тесселяции и, наконец, строю THREEJS-совместимая сцена (формат JSON, Gzipped, THREE.BufferGeometry используется). Это работает довольно хорошо: нет проблем с загрузкой тысяч треугольников / точек. Иногда я использую веб-работников только для запроса и анализа JSON.

Кроме того, мне удалось без проблем загрузить довольно большой (40 МБ) geojson в мое клиентское приложение OpenLayers (Map и WebGLMap)

Но я не могу загрузить даже 20 Мб геоджонов (полилиний) в цезий (1.51.0)!

viewer.dataSources.add(Cesium.GeoJsonDataSource.load('data/geojson/test1.geojson'));

дает мне

An error occurred while rendering. Rendering has stopped.
RangeError: Array buffer allocation failed
RangeError: Array buffer allocation failed
    at arrayBufferConstructor_DoNotInitialize (<anonymous>)
    at new Float64Array (<anonymous>)
    at Object.o.createTypedArray (http://localhost:9090/public/ThirdParty/Cesium/Workers/combineGeometry.js:227:18570)
    at H (http://localhost:9090/public/ThirdParty/Cesium/Workers/combineGeometry.js:230:21640)
    at j (http://localhost:9090/public/ThirdParty/Cesium/Workers/combineGeometry.js:230:22200)
    at ne (http://localhost:9090/public/ThirdParty/Cesium/Workers/combineGeometry.js:230:30083)
    at Object.ae.splitLongitude (http://localhost:9090/public/ThirdParty/Cesium/Workers/combineGeometry.js:231:7036)
    at v (http://localhost:9090/public/ThirdParty/Cesium/Workers/combineGeometry.js:231:10398)
    at Object.M.combineGeometry (http://localhost:9090/public/ThirdParty/Cesium/Workers/combineGeometry.js:231:13298)
    at r (http://localhost:9090/public/ThirdParty/Cesium/Workers/combineGeometry.js:231:18552)

Почему это? Что я могу сделать? Плитки GLTF / GLB / 3D - довольно сложные форматы Не существует богатого набора инструментов для настройки / управления созданием объектов с использованием этих форматов. Я не хочу покупать супер-пупер (действительно) сервер FME для создания GLTF ... Может быть, я могу использовать czml для загрузки сложных геометрий, используя полилинии и т. Д.)?

...