如何在我的网站上部署TerriaJS

时间:2016-02-12 02:28:22

标签: geospatial cesium terriajs

我想在我的网站上部署一个TerriaJS实例,用于3D(具有2D-fallback)地理空间映射。关于如何在我的网站上实际“部署”TerriaJS,我感到有点困惑。我对Leaflet非常熟悉...几乎只包括leaflet.js文件,创建一个div,然后离开你。但是,我在TerriaJS的github页面上运行wiki,我看到的只是一堆NodeJS。

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

如果有人有一个很好的(普通英语)教程或起点,那就太棒了。

感谢。

1 个答案:

答案 0 :(得分:3)

我们通常与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的一些基本方面。您还可以通过发布here所述的跨窗口消息来控制它。

最后,可以在没有提供用户界面的情况下使用TerriaJS,例如提供自己的。不过,这是一个非常先进的场景,所以如果你想走这条道路,最好发一个单独的问题。