2014-01-08 58 views
7

Sailsjs/Waterline目前似乎不支持帶JSON的POINT類型或地理空間索引。帶水線的Sailsjs地理空間解決方案

是否有任何方法來定製特定適配器的模式以支持地理空間數據類型?

如果沒有,是否有辦法將第二個ORM集成到Waterline中呢?

回答

0

如果檢查水線文檔,你可以看到如何創建自定義的數據類型和自己的驗證,你可以找到一個地理空間例如here

+1

沒有幫助,該示例沒有顯示除創建點之外的其他任何操作。這需要.Native mongodb或haversine公式實現 –

+0

您的鏈接已過時。任何尋找如何創建自定義數據類型的人:看看這裏:https://github.com/balderdashy/waterline/blob/4744f1edbba27921a8fea588393facc8382e4d96/README.md#custom-types – qualbeen

1

在Sails.js,你需要的MongoDB(NPM安裝--save帆-mongo)地理空間索引,再加上你需要確保2dindex獲取配置/ bootstrap.js創建爲這樣的(請務必立即更換爲您的特定需求MODELNAME併爲AttributeName):

module.exports.bootstrap = function(cb) { 
 

 
    // Ensure we have 2dsphere index on coordinates attribute of Place. 
 
    sails.models.modelname.native(function (err, collection) { 
 
    collection.ensureIndex({ attributename: '2dsphere' }, function() { 
 

 
    // It's very important to trigger this callback method when you are finished 
 
    // with the bootstrap! (otherwise your server will never lift, since it's waiting on the bootstrap) 
 
    cb(); 
 

 
    }); 
 
    }); 
 

 
};

另請注意,您必須使用本地MongoDB地理空間查詢,這超出了您的問題的範圍。我已經發布了一個示例實現here