iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 26
0
Modern Web

30天打造我的WebGIS系列 第 26

[Day 26] 在資料庫中操作空間資料-MongoDB

前言

除了前一天有提到的關聯式資料庫具有地理空間函式庫,使用Key-Value的資料庫例如MongoDB也支援一些空間運算子,在不同應用場合可能會用到,就來嘗試看看。

安裝

安裝Mongodb的方法:

  • Windows可以直接下載安裝檔
  • Mac有Howbrew可以使用Howbrew:
brew update
brew install mongodb

然後就完成了。

啟動

啟動Mongodb

Mongod

修改資料庫存放的路徑

mongod --dbpath ~/mongo_test

基本操作

進入資料庫操作

mongo

顯示資料庫清單

show dbs
//ironman

進入ironman這個資料庫

use ironman

顯示資料庫的collections

show collection
//test

在test中query所有資料

db.test.find({})

空間搜尋

首先匯入一份具有空間資訊的資料:

db.test.save({name:"前鎮高中網球場", city:"高雄市", geom:[120.318735,22.589452]})

建立空間索引,在2d的索引部分分為2dsphere與2d

db.test.ensureIndex({geom:"2dsphere"})

建立好空間索引,我們就可以使用Mongodb的地理空間函式操作囉!
例如使用$near進行距離查詢

db.test.find({geom: {$near:[120.319,22.588] , $maxDistance:1000 }})

後記

Mongodb的空間運算子還包含了$geoIntersects跟$geoWithin等,MongoDB這些基本的空間運算子滿方便的,如果需要使用NoSQL或是Key-Value DB,又需要一些基本的空間資料運算,可以參考!


上一篇
[Day 25] 在資料庫中操作空間資料-PostGIS
下一篇
[Day 27] WebGIS 加入D3.js圖表互動
系列文
30天打造我的WebGIS30

尚未有邦友留言

立即登入留言