切片集的分发 |
分布式切片库中的地图瓦片数据,会自动配置到相应的地图服务中使用。除了这种直接配置使用外,还支持不同途径的对外分发。
一个分布式切片库可以存储多个不同地图的切片结果,每一幅地图就对应一个切片集。SuperMap iServer 支持将分布式切片库中的切片集导出为 SMtiles 切片集格式(*.smtiles、*.mbtiles),便于传播和移动端(如 iClient Flash Bev、iClient for Android 等)的离线使用。
访问“分布式切片库”页面,您可以查看当前添加的各个分布式切片库,及其存储 ID、类型、服务地址等信息。
点击存储 ID,可以查看当前切片库的详细信息,如包含的切片集列表。一个切片集对应一幅地图,您可以点击切片集,查看切片范围、图片格式、比例尺等具体信息。点击“导出”按钮,可以进入导出 SMTiles 页面,填写导出目录,并通过比例尺、范围等参数指定需要导出的瓦片,然后点击“导出 smtiles”按钮即可。在当前切片集的信息页面,您可以看到导出进度。
导出完成后,您可以点击“下载”链接,将服务器上导出的文件下载到本地。
MongoDB 中存储的瓦片数据支持直接进行拷贝分发,即可以将数据从一个 MongoDB 服务器拷贝到另一个 MongoDB 服务器。但是,为避免在拷贝过程中,有其他数据写入写出 mongodb 服务,导致拷贝不完整,建议在拷贝数据前,关闭所有 MongoDB 服务。
方法一:直接拷贝 data 文件夹
例如,有 server1 和 server2 两个 MongoDB 服务器,数据存储目录(dbpath)都是根目录下的 data 文件夹。数据拷贝时,只需把 server1的 data 目录下的所有内容拷到了 server2的 data 目录下,重启 server2服务即可。
方法二:使用导出/导入命令
1. 启动 server1服务(端口为27017)
mongod.exe -dbpath D:\mongodb1\data -port 27017
2. 将 server1中 smtiles 数据库的数据导出为 BSON 文件
mongodump.exe -host localhost -port 27017 -d smtiles -o D:\output
其中,“-d”指定数据库名称,iserver 分布式切图的默认数据库名为 smtiles。“-o”指定导出目录。
3. 将得到的数据文件拷贝到 server2能够访问的位置
4. 启动 server2服务(端口为27018)
mongod.exe -dbpath D:\mongodb2\data -port 27018
5. 将上述 smtiles 数据库对应的 BSON 文件导入 server2中
mongorestore.exe -host localhost -port 27018 -d smtiles D:\output\smtiles
其中,“-d”指定数据库名称和存储文件的位置。
MongoDB 的数据文件都存储在{dbpath}/data 目录下,由于 MongoDB 自身格式的特点,数据文件占用磁盘空间较大。但 iServer 切图瓦片实际占用的大小只有 data 目录的1/4左右,采用方法二进行瓦片数据的分发时可比第一种方法节约空间一半以上,因此推荐使用第二种方法进行分发。