在Postgis上给定X值的Linestring中找到插值点的Y值

时间:2014-08-25 00:41:23

标签: interpolation postgis

我想知道在给定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。

1 个答案:

答案 0 :(得分:2)

最简单的方法可能是生成垂直线并检查它与geom之间的交叉点。最好确保该行与线串的边界框一样长。

SELECT ST_INTERSECTION(geom, ST_MakeLine(ST_MakePoint(268, ST_YMin(geom)), ST_MakePoint(268,ST_YMax(geom)))) 
FROM
    linestrings;