我與GeoDjango內置和PostGIS的工作,並在一個點做轉型,從4326到24877,當我檢查的結果,它是不一樣的不同的計算方法,包括presition
我的價值觀是:
Latitude -16.42238172128686
Longitude -71.47541752550751
使用長緯度爲X,Y座標
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)
上的Postgres
SELECT ST_AsText(ST_Transform(ST_SetSRID(ST_MakePoint(-71.47541752550751, -16.42238172128686), 4326),24877))
POINT(1520903.86571082 8160169.90886929)
從PostGIS的以數據SQL結果
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)
正如你可以看到有GeoDjango內置和Postgres之間的差異,在至少300米,這意味着不同的地方
閱讀,並要求在一些論壇和聊天室後,我發現這與預測有關,我在網上問了更多,作爲這個主題的新手,這聽起來有些蹊蹺。
我要尋找的信息給我足夠的知識來繼續工作就可以了,例如:
- 正確的方式上做
- 在這個差異
- 多少米有原因系統之間的區別或者正確的計算方式
- 如何驗證這個職位
- 什麼是最好的工作方式這個信息
正確的軸順序是經度/緯度,即:x =經度,y =緯度。而且,哪個SRID? '28477'還是'24877'?什麼'SELECT postgis_full_version()'返回? –
感謝您的回答,這是一個類型寫入錯誤,我正在尋找的srid是24877 – Carlos