PostGIS数据存储不正确

问题描述

所以我在这里一个很奇怪的问题。我将LatLong从手机应用程序发送到我的phoenix后端。后端在迁移中将类型定义为:geography。然后我像这样投射从前端获得的数据。

%Ecto.Changeset{
        valid?: true,changes: %{lat_long_object: %{latitude: latitude,longitude: longitude}}
      } ->
        point = %Geo.Point{
          coordinates: {latitude,longitude},srid: 4326
        }
        changeset
        |> put_change(:lat_long,point)

以上代码仅用于强制转换LatLong以指向。 所以发生了什么事:

我想从前端发送X,Y

后端日志说它正确接收了X,Y

Repo.update的返回返回了我的User结构,甚至那个User结构都具有正确的值

现在,如果我在Repo.all(User)中运行iex或在psql中运行select ST_asText(lat_long) from users;,则我的经度已更改。而且它并不总是改变,它仅在美国西南部的某些地区改变。在大多数情况下,它返回正确的数据。会是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)