私はGeoDjangoとPostgisで作業しており、4326から24877へのポイントで変換を行っています。結果を確認したところ、同じではありません
私の価値観は次のとおりです。
Latitude -16.42238172128686
Longitude -71.47541752550751
x、y 座標として long lat を使用する
In [63]: pnt = Point(-71.47541752550751, -16.42238172128686, srid=4326)
In [64]: pnt.transform(CoordTransform(SpatialReference(4326), SpatialReference(24877)))
In [65]: pnt.x, pnt.y, pnt.srid
Out[65]: (1521142.247877425, 8160547.8770980425, 24877)
逆
In [66]: pnt = Point( 1521142.247877425,8160547.8770980425, srid=24877 )
In [67]: pnt.transform(CoordTransform(SpatialReference(24877), SpatialReference(4326)))
In [68]: pnt.x, pnt.y, pnt.srid
Out[68]: (-71.47541753138003, -16.42238165040434, 4326)
Postgre 上の SQL
SELECT ST_AsText(ST_Transform(ST_SetSRID(ST_MakePoint(-71.47541752550751, -16.42238172128686), 4326),24877))
POINT(1520903.86571082 8160169.90886929)
postgis の結果からデータを取得する
In [69]: pgs = Point(1520903.86571082, 8160169.90886929, srid=24877)
In [70]: pgs.transform(CoordTransform(SpatialReference(24877), SpatialReference(4326)))
In [71]: pgs.x, pnt.y, pgs.srid
Out[71]: (-71.47745375612124, -16.42238165040434, 4326)
ご覧のとおり、少なくとも 300 メートルで geodjango と postgres に違いがあり、それは異なる場所を意味します。
いくつかのフォーラムやチャットを読んで質問した後、これは presition に関連していることがわかりました。このトピックの初心者として、インターネットでそれについてもっと質問していました。
作業を継続するのに十分な知識を与えてくれる情報を探しています。例えば:
- それを行う正しい方法
- この違いの理由
- システム間の差は何メートルですか、またはそれを計算する正しい方法です
- この位置を検証する方法
- この情報に取り組む最善の方法は何ですか