如何在PostGIS中获得两个几何之间的测距仪值?


14

我有一个关于在PostGIS中计算距离的简单问题。

我想得到两个几何之间的距离。我正在使用此sid:4269以米为单位我现在正在做的是:ST_Distance((a.geom,b.geom)) FROM ...但是我得到的结果是以度为单位。我认为我应该处理地理问题,但是如何将地理模型转换为地理?我尝试了(a.geom :: geography),但出现错误。

我该怎么做才能以米为单位得出结果?

谢谢

Answers:


20

使用ST_Distance_Sphere,您可以实现以下目标:

ST_Distance_Sphere(a.geom,b.geom)

错误:la fonction st_distance_spheroid(geometry,geometry)n'existe pas ...我刚刚添加了(a.geom,b.geom,'SPHEROID [“ WGS 84”,6378137,298.257223563]'),现在工作正常,谢谢你非常!
YassineGeoma

1
好吧,您使用了另一个函数st_distance_spheroid,它比st_distance_sphere慢,但更精确。
弗朗西斯科·瓦尔迪兹

那两个几何之间的最大距离呢?
vasilakisfil

最大距离将是earth_radius-minimum_distance,它将以相反的方向行进。(前进+180º)
弗朗西斯科·瓦尔迪兹

1
@ don-prog它适用于3D和2D点:SELECT ST_Distance_Sphere(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'), ST_GeomFromEWKT('SRID=4326;POINT(-72.1260 42.45 15)'))
Francisco Valdez '18

3

SRID 4269(NAD 83)的单位不是米-这是大地投影,即,坐标是度(地理坐标)。

pacofvf的答案将为您提供以米为单位的距离,但如果确实以米为单位指定了初始坐标,则应使用投影坐标系。对于北美地区,您可能需要像“ 国家平面坐标系”之类的东西,根据要映射的区域,它具有许多不同的投影。

我怀疑虽然您只是在使用经度/纬度值,所以第二段可能不相关-只需使用ST_Distance_Sphere上面的函数即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.