【发布时间】:2016-10-13 14:49:25
【问题描述】:
我有以下问题:
我创建了两个点,例如:
SRID=3857;POINT Z (62780.8532226825 5415035.177460473 100)
SRID=3857;POINT Z (62785.8532226825 5415035.177460473 70)
如你所见,X坐标相差5m,Z坐标相差30m。
当我在 django shell 中运行 a.distance(b) 时,它返回 5,这是错误的。
但是,当我在 psql shell 中运行时:
SELECT ST_3DDistance(a.coordinates, b.coordinates)
FROM restapi_entityxyz a, restapi_entityxyz b
WHERE a.external_id='6841zef1561' AND b.external_id='1G23Fzd';
返回:
st_3ddistance
------------------
30.4138126514911
哪个是正确的答案。
是geodjango 中缺少功能还是错误?
我应该使用自定义库来执行这样的计算吗?
我的环境如下:
- Python 3.5,
- 姜戈,
- postgresql 9.4 + postgis
- gdal 和很多 python 库。
【问题讨论】:
-
我对 geodjango 不熟悉,但听起来它可能是一个错误或缺乏功能。直接使用
psycopg2、aiopg或asyncpg怎么样? -
嘿,@GwydionFR 我想知道,你觉得我的回答有帮助吗?
-
嗨@JohnMoutafis,我不再从事这个项目,所以我无法联系,但对我来说应该有一个功能。作为一个开发者,我只想在不知道内部处理的情况下使用这种微积分,即使它是一个简单的欧几里得距离。
-
@GwydionFR 确实看起来很奇怪,但我无法找到一个现成的解决方案来计算海拔......
标签: python django postgis postgresql-9.4 geodjango