我有一个带有几何字段的以下模型:
const soiSchema = {
siteId: {
type: DataTypes.BIGINT,
allowNull: false,
primaryKey: true,
field: 'site_id'
},
soiId: {
type: DataTypes.BIGINT,
allowNull: false,
field: 'soi_id'
},
geoPoint: {
type: DataTypes.GEOMETRY('POINT'),
allowNull: false,
field : 'geopoint'
}
}
我在带有以下选项的原始查询中使用此模型:
await sequelize.query(query,{
model : Soi,
raw : true,
bind : params,
mapToModel: true
})
我的问题:查询postgres数据库时,我收到的地理位置是字符串'0101000020E610000000A172ECBF844140CCC38A7B66D93F40'
而不是点。 db中的字段确实是几何类型,但sequelize将其读取为字符串。
任何人都有解决方法?
我尝试了许多不同的续集版本,但并没有帮助解决问题
谢谢
答案 0 :(得分:0)
尝试使用适当的ST_function读取几何数据类型:
SELECT ST_AsText(geoPoint) FROM your_table
您可以通过
获得lng,ltSELECT ST_X(geoPoint), ST_Y(geoPoint), ST_AsText(geoPoint)
FROM your_table;