问题描述
所以我在这里有一个很奇怪的问题。我将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 (将#修改为@)