我们通常与 TerriaJS 一起使用的基于节点的 Web 服务器只做一些事情:
- 它提供构成应用程序的静态 HTML、JavaScript 和 CSS。
- 它在 /proxy 包含一个简单的服务,允许 TerriaJS 访问不支持 CORS 的地理空间数据服务器。
- 它在 /convert 包含另一个服务,该服务使用 OGR 将地理空间矢量数据(例如 shapefile)转换为 GeoJSON 以供 TerriaJS 客户端显示。
其中,只有第一个是必需的。因此,您可以将工作中的 TerriaJS 应用程序的 wwwroot 目录复制到运行您站点的任何 Web 服务器上,它会像在基于节点的服务器上一样运行在那里。您必须确保所有地理空间数据都位于同一服务器上或托管在支持 CORS 的服务器上,并且不支持 shapefile 转换,但除此之外,您应该一切顺利。
在现有网页中嵌入 TerriaJS有点棘手。您需要从您开始使用的 TerriaJS 应用程序中的 index.js、index.html 和 index.less 文件开始(可能是 NationalMap?)并修改它们以满足您的需要。您需要使用基于 gulp 的构建过程。但是一旦这一切都完成了,您可以像以前一样将文件复制到您的 Web 服务器。
根据您的需要,您还可以考虑将 TerriaJS 嵌入到 iframe 中的页面中,而不是将其直接构建到页面中。您可以通过为 URL 指定参数来控制目录的内容并自定义 UI 的一些基本方面。您还可以通过发布此处所述的跨窗口消息来控制它。
最后,可以在没有提供用户界面的情况下使用 TerriaJS,例如通过提供您自己的用户界面。不过,这是一个非常高级的场景,所以如果你想走这条路,最好发布一个单独的问题。