相关疑难解决方法(0)

如何在Sequelize ORM中插入PostGIS GEOMETRY Point?

我试图在Sequelize.js ORM中具有几何列的表中插入一行.我有纬度,经度和海拔,需要先将它转换为一个点,这样我就可以将它作为几何体插入.

执行转换的PostGIS存储过程是

ST_MakePoint( longitude, latitude, altitude ) 
Run Code Online (Sandbox Code Playgroud)

要插入一行我正在使用sequelize model.create函数

models.Data.create({    
  location: "ST_MakePoint("+request.params.lon+", "+request.params.lat+", "+request.params.alt+")", // PSUEDO code, How can I call this function?
  speed: request.params.spd,
  azimuth: request.params.azi,
  accuracy: request.params.acc
});
Run Code Online (Sandbox Code Playgroud)

现在我想做的是让该字段location具有返回的结果"ST_MakePoint("+request.params.lon+", "+request.params.lat+", "+request.params.alt+")"插入行时.

我怎样才能做到这一点?

postgresql postgis node.js sequelize.js

19
推荐指数
2
解决办法
1万
查看次数

sequelize beforeSave 钩子不触发

我已经使用 sequelize-auto 生成了模型,并且需要使用 beforeSave 钩子(请参阅此处)。据我所知,钩子没有开火。sequelize 版本 ^4.20.1,sequelize-auto 版本 ^0.4.29,express 版本 ~4.15.5。任何人都可以帮忙吗?

module.exports = function(sequelize, DataTypes) {
  return sequelize.define('trad', {
    id: {
      type: DataTypes.INTEGER,
      allowNull: false,
      primaryKey: true,
      autoIncrement: true
    },
    geom: {
      type: DataTypes.GEOMETRY('POINT', 4326),
      allowNull: true
    },
    ...
  }, {
    hooks: {
      beforeSave: (instance, options) => {
        console.log('Saving geom: ' + instance.geom);
        if (instance.geom && !instance.geom.crs) {
          instance.geom.crs = {
            type: 'name',
            properties: {
              name: 'EPSG:4326'
            }
          };
        }
      }
    },
    tableName: 'trad',
    timestamps: false,
  });
}; …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis node.js sequelize.js

1
推荐指数
1
解决办法
6253
查看次数

标签 统计

node.js ×2

postgis ×2

postgresql ×2

sequelize.js ×2