node.js - Sequelize 和 PostGIS 几何列未返回正确的 JSON

标签 node.js postgresql sequelize.js postgis

我有一个运行 PostGIS 的 Postgres 数据库。我正在使用 Node.js 和 Sequelize 来处理数据库中的数据。在我的一张表上,我有一个返回奇怪结果的几何列。

通常,当我使用 sequelize 查询几何列时,我会得到以下信息:

{ 
  type: 'Point',
  coordinates: [ 33.48051135141372, -111.92908778058047 ] 
}

但出于某种原因,当我记录此列的结果时,我得到以下字符串:

01010000004D20CF54F80241409C8C9B8BAE9E5DC0

在其他表上我得到了预期的结果。但是出于某种原因,对于这个特定的表/列,我无法从返回的数据中解析纬度和经度。

谁能解释为什么我可能会得到这个而不是上面的普通 JSON?

最佳答案

坐标必须先用经度表示,再用纬度表示。

您的输入表示为 lat-long,因此超出范围。尝试交换坐标。

直接使用postgis,可以显示几何图形的文字表示:

select st_asText('01010000004D20CF54F80241409C8C9B8BAE9E5DC0');
                st_astext
------------------------------------------
 POINT(34.023203469406 -118.479403402237)

确实确认坐标顺序错误。

关于node.js - Sequelize 和 PostGIS 几何列未返回正确的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56232767/

相关文章:

node.js - 将 CompoundJs 与 Passport 结合使用

javascript - 如何在 sequelize.js 中嵌套 SQL 函数?

node.js - 未处理的拒绝 SequelizeDatabaseError : type "enum_*" already exists

sql - PostgreSQL 正则表达式 : Until dot

javascript - 为什么 save() 在 Sequelize 中不起作用?

javascript - 如何在 mocha 测试中使用 Node.js 全局变量

javascript - 将 JavaScript 库导入 NativeScript

使用 Node Express 在 digital ocean 中设置 mysql

java - 如何使用 JPA 和 Hibernate 复制 INSERT/UPDATE/DELETE 语句

postgresql - 在 hsqldb 上运行触发的 postgresql 函数