Получите точку вдоль линии на расстоянии двух футов от первой точки. - PullRequest
0 голосов
/ 26 мая 2020

У меня есть следующая строка:

SELECT  ST_GeomFromText('LINESTRING(-97.83396022 29.98609860,-97.83391790 29.98613790)',4326);

Мне нужно добавить точку между строкой, которая находится в 2 футах от первой точки

1 Ответ

0 голосов
/ 26 мая 2020

Вы можете использовать ST_LineInterpolatePoint.

Так как он занимает часть линии, первым шагом является ее вычисление: преобразовать 2 фута в метры, разделить на длину Линия в метрах, полученная путем преобразования в географию.

WITH src(geom) AS (values (ST_GeomFromText('LINESTRING(-97.83396022 29.98609860,-97.83391790 29.98613790)',4326)))
SELECT ST_AsText(ST_LineInterpolatePoint(geom, 2 * 0.3048/ st_length(geom::geography)))
 FROM src;

st_astext
-------------------------------------------
 POINT(-97.8339558996568 29.9861026120389)

Чтобы создать линию длиной 2 фута от начала, вы можете использовать st_lineSubstring вместо

SELECT st_lineSubstring(geom, 0, 2 * 0.3048/ st_length(geom::geography))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...