如何在cesium

时间:2016-04-05 04:26:31

标签: cesium

我想在Cesium中显示100,000或更多的多边形。多边形有很多共享的边界 - 它们基本上像美国邮政编码多边形但更小,所以它们中有更多 - 所以我想使用一种利用这一点的表示并且是& #34;注意"共享边界的拓扑结构,只存储每个顶点一次。

我对使用Cesium编程很新(但一般熟悉3D图形);我已经扫描了教程和文档,并且没有立即看到创建具有共享顶点的多边形集合的方法。我在topojson文件中有我的多边形并尝试使用类似于topojson示例中的代码加载它:

var promise = Cesium.GeoJsonDataSource.load('./polygons.topojson');
promise.then(function(dataSource) {
    viewer.dataSources.add(dataSource);
    ...
});

但是

  • 这并没有利用共享顶点,因为GeoJsonDataSource将每个单独的多边形转换为GeoJson对象,并且
  • 它崩溃了我的浏览器,大概是因为100,000个单独的GeoJson对象超出了它的处理能力。

我觉得(并且有希望)在Cesium中有一种方法可以做到这一点,但我还没有找到它。有人能告诉我最有效的方法是什么,特别是我应该看什么原语/装载工具?

顺便说一句,顺便说一句,我想写的应用程序实际上永远不会同时渲染所有100,000个多边形 - 它会根据鼠标位置选择要渲染的多边形,并且在任何时候它都只会渲染几千个。但是我想提前将它们全部加载到内存中,这样我就可以在光标移动时实时更改哪些实时渲染。

0 个答案:

没有答案