如何在我的网站上部署 TerriaJS

How to deploy TerriaJS on my site

我想在我的网站上部署一个 TerriaJS 实例,用于 3D(带 2D 回退)地理空间映射。我对如何在我的网站上实际 "deploy" TerriaJS 感到有点困惑。我对 Leaflet 非常熟悉……几乎只包含 leaflet.js 文件,创建一个 div,然后就可以了。但是,我正在 运行 浏览 TerriaJS 的 github 页面上的维基,我看到的只是一堆 NodeJS。

我错过了什么?我能够使用 NPM 将地图获取到 运行,并且我看到了一个不错的 3D 地图(运行 在节点 Web 服务器实例内部),但这对我没有任何好处,因为我想要能够将地图嵌入我的网站。

如果有人有很好的(简单的英语)教程或起点,那就太棒了。

谢谢。

我们通常与 TerriaJS 一起使用的基于节点的 Web 服务器只做几件事:

  • 它提供构成应用程序的静态 HTML、JavaScript 和 CSS。
  • 它包括一个位于 /proxy 的简单服务,允许 TerriaJS 访问不支持 CORS 的地理空间数据服务器。
  • 它包括另一个位于 /convert 的服务,该服务使用 OGR 将地理空间矢量数据(例如 shapefile)转换为 GeoJSON 以供 TerriaJS 客户端显示。

其中,只有第一个是必需的。因此,您可以将工作中的 TerriaJS 应用程序的 wwwroot 目录复制到您网站的任何 Web 服务器 运行,它将 运行 在那里与在基于节点的服务器上一样。您必须确保所有地理空间数据都在同一台服务器上或托管在支持 CORS 的服务器上,并且不支持 shapefile 转换,但除此之外您应该一切顺利。

在现有网站 页面 中嵌入 TerriaJS 有点棘手。您需要从开始使用的 TerriaJS 应用程序(也许是 NationalMap?)中的 index.js、index.html 和 index.less 文件开始,然后修改它们以满足您的需要。您需要使用基于 gulp 的构建过程。但是一旦完成,您可以像以前一样将文件复制到您的网络服务器。

根据您的需要,您还可以考虑将 TerriaJS 嵌入到您页面的 iframe 中,而不是直接将其构建到页面中。您可以通过为 URL 指定参数来控制目录的内容并自定义 UI 的一些基本方面。您还可以通过 post 交叉 window 消息来控制它,如 here 所述。

最后,可以在没有提供的用户界面的情况下使用 TerriaJS,例如通过提供你自己的。不过,这是一个非常高级的场景,所以如果您想沿着这条路走下去,最好 post 一个单独的问题。