我想知道在给定Y
时,在Linestring
内找到插值点的X
值的最佳方法是什么。
我的输入X
的{{1}}坐标将始终为增量和非连续(如下例所示)。 Linestring
值可以是任何实数。
Y
给定LINESTRING(223 -59,228 -59.3,233 -59.7,242 -60,263 -60.4,
268 -61.7,275 -62.1,280 -62.5)
值(例如,假设为X
),查询将在270
内输出插值(在这种情况下,它将为Linestring
,使用点-61.81428571
和[268 -61.7]
进行插值)
如果[275 -62.1]
值已经属于X
,那么它只会输出相应的Linestring
值。 Y
输入表只有一个列,其中一行包含线串。
268: -61.7
值将成为查询的一部分。
我正在使用PostGIS。
答案 0 :(得分:2)
最简单的方法可能是生成垂直线并检查它与geom之间的交叉点。最好确保该行与线串的边界框一样长。
SELECT ST_INTERSECTION(geom, ST_MakeLine(ST_MakePoint(268, ST_YMin(geom)), ST_MakePoint(268,ST_YMax(geom))))
FROM
linestrings;