Я новичок в POstGis, поэтому этот вопрос может показаться простым, но я действительно застрял. Итак, у меня есть таблица, в которой есть 4 важные строки: startLon, startLat, endLon, endLat, которые имеют тип двойной точности.
Первая строка содержит координаты (эти две точки находятся на расстоянии 7 м друг от друга):
StartLon: 103.776047
StartLat: 1.292149
EndLon: 103.776070
EndLat: 1.292212
Когда я пытаюсь рассчитать расстояние между двумя точками в каждой строке, используя:
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
Все координаты найдены с помощью GoogleMap, поэтому SRID должен быть 4326. Пожалуйста, помогите мне, спасибо :)