It seems like Sailsjs/Waterline does not currently support a POINT type or geospatial indexing with JSON.
Are there any ways to customize a schema for certain adapters to support geospatial datatypes?
If not, is there a way to integrate a second ORM into Waterline that does so?
In Sails.js, you need MongoDB (npm install --save sails-mongo) for geospatial indexing, plus you need to ensure the 2dindex gets created in config/bootstrap.js as such (make sure to replace modelname and attributename for your particular needs):
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();
});
});
};
Also note that you have to use native MongoDB geospatial queries, which is beyond the scope of your question. I've posted an example implementation here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With