今天我给大家介绍一种切图方式:MongoDB
。
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。它能在高负载的情况下,添加更多的节点,可以保证服务器性能。我举个例子,如果我们将一副地图切成上百万张地图瓦片,需要切多久?也许切一天也切不完。但是如果用MongoDB采用分布式切图,我们就可以开启四、五个服务一起切,就可以大大提高切图效率。
由于MongoDB是一个文件储存型的数据库,所以在使用它之前要先将数据库文件下载到本地。
然后我们要启动bin目录里面的mongod.exe
,这个虽然是可执行的文件,但是它不可以通过双击运行,而是需要通过cmd控制台才能运行。
使用win+R
快捷键,输入cmd打开控制台,我们MongoDB文件是放在F盘,所以我们先要跳转到F盘,在控制台输入“F:
”,然后再跳转到 \mongodbServer\bin\
目录下
然后运行MongoDB数据库:mongod.exe –dbpath F:\MongoDBPath –port 27010
-dbpath
等是配置服务器的参数,-dbpath
表示数据库数据存储的物理路径,-port
表示服务器使用的端口号。当出现“waiting for connections on port 27010”
就表示你的MongoDB服务已经启动了!
然后打开SuperMap iServer,选择【集群】>【分布式切片库】>【添加分布式切片库】
。
因为我们的MongoDB是本机启动的服务,所以这里服务地址需要用到本机IP,如果不知道自己的本机IP,可以打开cmd,输入ipconfig
查看。
填写完所需要的数据,点击添加切片库
。
切片库列表就会出现刚添加的服务。注意,只有连接状态为
才表示启动并连接服务器成功
。
然后我们来开启第二个MongoDB服务器。创建一个新建文件夹,将第一个MongoDB文件夹里的所有文件都复制到这个新建文件夹中,按刚才启动第一个服务的方法来启动第二个服务器。注:端口号及存储路径不能重复
。
接下来准备工作完成,开始切图。
然后我们可以根据需求的比例尺来进行合理分配,例如现在自定义了6个比例尺,前5个的地图切片数量是68560
,最后一个1/300
比例尺的切片数量是114646
,所以我们可以把1/300
比例尺分配给demo2
。
切图完成,然后就要进行地图切片的合并。【服务】>【高级】>【切片更新】>【添加切片更新任务】
然后耐心等待更新完成。
MongoDB的操作也许过于复杂,但它的优势是分布式、多进程处理数据
,对于处理大量的切片数据可以大大的提高效率。若如果切片数量少,还是使用ugcv5更简便一些。总的来说,灵活运用,便能大大提高工作效率。