Postgresql PostGis ST_距离_球体混淆
我是POstGis新手,所以这个问题可能看起来很简单,但我真的被卡住了。 所以我有一个表,其中有4个重要的行:starton,startat,endLon,endLat,它们都是双精度类型 第一行保存坐标(这两个点相距7m): 当我尝试使用以下公式计算每行2个点之间的距离时:Postgresql PostGis ST_距离_球体混淆,postgresql,distance,postgis,map-projections,Postgresql,Distance,Postgis,Map Projections,我是POstGis新手,所以这个问题可能看起来很简单,但我真的被卡住了。 所以我有一个表,其中有4个重要的行:starton,startat,endLon,endLat,它们都是双精度类型 第一行保存坐标(这两个点相距7m): 当我尝试使用以下公式计算每行2个点之间的距离时: SELECT ST_Distance_Spheroid( ST_GeomFromText('POINT(' || StartLon || ' ' || Startlat || ')',432
SELECT ST_Distance_Spheroid(
ST_GeomFromText('POINT(' || StartLon || ' ' || Startlat || ')',4326),
ST_GeomFromText('POINT(' || EndLon || ' ' || Endlat || ')',4326),
'SPHEROID["WGS 84",6378137,298.257223563]')
FROM i3_building.floordata;
结果是:
2.87254682929478
这是不对的
但当我尝试手动操作时:
SELECT ST_Distance_Spheroid(
ST_SetSRID(st_makepoint(103.776047, 1.292149),4326),
ST_SetSRID(st_makepoint(103.77607, 1.292212),4326),
'SPHEROID["WGS 84",6378137,298.257223563]');
给出的结果是正确的:
7.42160512978493
所有的坐标都是用谷歌地图找到的,所以SRID应该是4326。
请帮帮我,谢谢:)只要意识到结果2.872。。。不是第一行的结果 如果我没有使用类似于键的id对结果进行排序,那么结果将是随机的。从一位好同事那里学到这一点:)希望它能帮助像我这样的PostGIS初学者
7.42160512978493