我目前正在开发一个使用Cesium来显示3D地理空间数据的项目,我想知道是否有办法为Cesium下载离线城市(如巴黎或纽约)逼真的3D图块。我想探索访问这些图块而不必仅依赖实时互联网连接的可能性。
我搜索了Cesium的文档,但找不到离线下载3D图块的明确解决方案。以前有人这样做过吗?他们能给我一些关于如何解决这个问题的建议或指示吗?
打个比方,
对于 2D 瓷砖。 我首先下载了这些。瓷砖,使用互联网连接。
然后我使用本地 http 服务器为他们提供服务。 因此,我能够使用以下代码:
viewerRef.current.scene.imageryLayers.addImageryProvider(
new Cesium.UrlTemplateImageryProvider({
url: localhost_url,
})
);
我也想做同样的事情,比如:
const tileset = new Cesium.Cesium3DTileset({
url: 'localhost_url',
});
总而言之,我正在寻找在哪里可以找到他的资源,下载并使用它们。
(我主要寻找开源,但我并不拒绝寻找付费解决方案的想法)
要下载 Cesium JS (React) 的真实感 3D 图块并离线托管它们,请按照以下步骤操作:
获取逼真的 3D 瓷砖: 您需要获取要使用的逼真 3D 图块。这些图块通常是通过摄影测量或其他 3D 扫描技术生成的。您可以在网上通过各种来源找到此类数据,但请确保您有权将它们用于您的预期目的。
设置网络服务器: 要在本地托管 3D 图块,您需要一个 Web 服务器。您可以使用 Apache、Nginx 或简单的 Python HTTP 服务器等流行选项。
Python HTTP 服务器(用于测试目的): 铯JS设置: 使用 React 设置 Cesium JS 应用程序。 如果您还没有,请使用 Create React App 等工具或您喜欢的任何其他方法创建您的 React 应用程序。
将 Cesium JS 与 React 集成: 将 Cesium JS 库集成到您的 React 应用程序中。您可以通过安装 cesium 包并在 React 组件中初始化它来做到这一点。 离线访问图块: 由于您离线托管切片,因此请确保更新切片集的 URL 以指向本地服务器。修改 Cesium3DTileset 构造函数中的 url 参数以匹配托管图块的路径。运行应用程序: 通过运行 npm start 或用于运行 React 应用程序的相应命令来启动 React 应用程序。
请记住,上述步骤是一个简化的概述。根据您的具体用例和要求,您可能需要考虑其他因素,例如优化切片的性能、管理不同的切片集、处理身份验证等。请始终参考 Cesium JS 和 React 的官方文档以获取最新、最准确的指导。