介绍了一下怎么把一些非图层文件的静态资源(比如说地形数据)放到GeoServer来用。
在做WebGIS的时候,因为比较穷。。。hhhhhh~所以好多东西都是开源的。
GeoServer之前用的时候都是用来发布图层啥的,只用了他的web端展现的一些功能,比如说发布遥感影像、矢量数据这些图层数据。
做三维的时候有个地形数据,之前一直是用IIS来发布的,后面就想能不能把地形数据也用GeoServer发布了,就别麻烦IIS他老人家了?
想破脑袋,后面发现了GeoServer的REST API,功能挺齐的,附上API 链接。
https://docs.geoserver.org/stable/en/user/rest/
通过访问http//:ip:port/geoserver/rest/resource就可以访问GeoServer的data_dir里面的东西。
打开访问链接看到的就是这些东西。
那好了,知道把文件放在GeoServer的data_dir文件夹里面可以通过上面的链接访问到,那就把地形数据放进去好了,地形数据的URL就是:
http//:ip:port/geoserver/rest/resource/你的地形文件夹
如果你用的是Cesium,那你这样就可以正常添加地形了。
viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
url: new Cesium.Resource({
url: "http://ip:port/geoserver/rest/resource/" + "地形文件夹",
headers: {
'Authorization': "Basic " + "YWRtaW46Z2Vvc2VydmVy",
},
}),
waterMask: false
})
你还可以放一些其他的,比如说图片啥的,比如我这里把一张图片放进去了,浏览器打开链接就可以看到这个。
我觉得是相当于把这个文件夹当成一个服务器文件资源文件夹来用,但是我觉得放一些地图数据就行了,相当于把你的关于地图的数据都放在这个里面,方便管理嘛,其他的数据你可以放到你的后端服务器文件夹或者其他地方嘛,别劳其混杂的。
但是访问这个链接需要授权,可以看另一篇文章。
其实之前我自己做系统的时候地形数据是放到后端服务的文件夹里面的的,后来才觉得GeoServer应该也是这个道理,所以就顺着这个思路看看能不能把文件放到GerServer的文件夹下面,通过链接来访问他。
像我们自己做了一些地图接口,根本没有自己的python、java这种后端,只有前面的js代码,就可以把需要的静态资源放在GeoServer里面,会比较方便。
大部分东西思路都差不多,要学会举一反三嘛。