CesiumJS内存管理问题

CesiumJS memory management issues

我正在用 cesiumjs 制作 3d 模型 viwer。 geojson 是从 url 请求的,它适用于小型模型。如果复杂的 json 多边形文件和 json url 请求数据超过 16mb,铯在解析和渲染时需要很长时间,如果我调用另一个模型,它会使网络浏览器崩溃内存不足错误。我检查了旁边的 chrome,对于来自 url 的 16mb geojson,它占用了大约 900 内存。有没有更好的内存管理方式?或如何解决此问题的任何提示。一种解决方案可能是在为该模型发送 geojson 之前简化 3d 网格,但我询问的是与客户端内存管理相关的问题。

请记住,部分时间是浏览器 运行宁 JSON.parse 在 16 兆字节的文件上。这是所有浏览器中的同步操作,在浏览器添加异步 JSON 解析之前,任何人都无能为力。我建议的第一件事是在服务器上 运行 您的 GeoJSON 到 TopoJSON,这应该可以显着节省大小。这将减少传输时间和 JSON.parse 时间。我还可以确定您的服务器正在压缩您的数据,这将进一步节省开支。我已经看到 16MB 的文件通过这些技术下降到 1 兆以下。

也就是说,这只是问题的第一部分。真正的问题不是 GeoJSON 有多大,而是它有多少功能?如果它是一个具有 ~15000 个特征的 16MB 文件,那么我上面的建议将解决你的问题。如果它有几十万个特征,那么你将 运行 陷入一些不容易解决的问题。实际上,我昨天在我们的邮件列表中提供了一些关于此的详细信息:https://groups.google.com/d/msg/cesium-dev/F6IkY9aEG1I/8dRkhlBnLI4J

我们一直在寻找优化和进一步改进 Cesium 的方法。如果可以的话,请随时联系我们的邮件列表并提供一些您的大型样本数据,然后我们可以在将来优化时将其用作一个很好的用例。