常常因为Arcgis Server(或者GeoScene Server)昂贵的价格,而导致小项目技术选型选择开源的GIS Server(如GeoServer等)。但用完之后,发现后者实在拉跨,使用对比差异巨大。那就只能另想办法:如何将Arcgis Pro(或者GeoScene Pro)的离线数据(slpk、切片包、矢量切片包)直接发布成服务?
经测试,惊喜发现结果居然完全可行。
1、首先看slpk文件(把后缀改为zip,并解压),发现这些文件都是满足i3s标准的静态文件。
然后根据前端接口返回的数据,解析静态文件,几个接口完全可以实现。(这样就可以完美解析离线的BIM、精模、倾斜摄影文件)。
具体代码不放,这里只做逻辑介绍。
2、再看切片文件,发现切片文件也是静态文件,但是切片文件里的bundle、bundlx是二进制文件,没办法直接查看。
那怎样解析呢?搜索后发现,这个事情还是有好多大神做过。经过多天的测试,发现有些人的方法还真是可行。然后根据前端请求,实现接口,完美解决切片文件的读取,比geoserver要好用的多。
同样具体代码不放,这里只做逻辑介绍。
3、最后看矢量切片文件,矢量切片文件同样是静态文件,比切片文件的解析更加简单,只有个boundle文件,稍微修改一下第二条的代码,同样可以实现接口。
通过以上的方法,就实现了本地的三维服务、切片服务、矢量切片服务。至于要素服务,那又是另外一套逻辑。