Я только начинаю изучать PostgreSQL и PostGIS, в частности, и пытаюсь следовать введению Penn State University в Spatial Database Management, когда я решил немного поэкспериментировать с основными данными, которые я получил. После расчета длины некоторых данных LINESTRING я хотел проверить результаты с помощью QGIS, и вот тут-то и началось веселье.
Здесь вы можете найти SQL-операторы, которые я следовал и немного изменил.
https://www.e -education.psu.edu /atialdb / node / 1960
При сравнении результатов в таблице атрибутов я был сбит с толку, потому что результаты отличались при использовании функции $ Length калькулятора ST_Length и QGIS Field несмотря на указание того же SRID (2163).
INSERT INTO lines (name, geom)
VALUES ('Holland Tunnel',ST_GeomFromText('LINESTRING(
-74.036486 40.730121,
-74.03125 40.72882,
-74.011123 40.725958)',4269)),
('Lincoln Tunnel',ST_GeomFromText('LINESTRING(
-74.019921 40.767119,
-74.002841 40.759773)',4269)),
('Brooklyn Bridge',ST_GeomFromText('LINESTRING(
-73.99945 40.708231,
-73.9937 40.703676)',4269));
UPDATE TABLE lines SET laenge = ST_Length(ST_Transform(geom, 2163));
Результаты:
Заказ:
A. ST_Length для Голландского туннеля; Линкольн Туннель; Бруклинский мост
B. Длина по Голландскому туннелю; Линкольн Туннель; Бруклинский мост
A. 2160,344849130080092; 1631,543481596899937; 694,591179476468028
B. 2195,119177785873489; 1656,890881978494235; 701,411239204245931
Если я допустил очевидную ошибку, я действительно сожалею, но предложения в StackOverflow не указали мне правильное направление, поскольку они были на предмет расстояний, основанных на маршрутизации, которая здесь не применима, верно?
С уважением и заранее спасибо!