如何使用MongoDB切圖

今天我給大家介紹一種切圖方式: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更簡便一些。總的來說,靈活運用,便能大大提高工作效率。