除了前一天有提到的關聯式資料庫具有地理空間函式庫,使用Key-Value的資料庫例如MongoDB也支援一些空間運算子,在不同應用場合可能會用到,就來嘗試看看。
安裝Mongodb的方法:
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,又需要一些基本的空間資料運算,可以參考!