【问题标题】:Find Y value of an interpolated point in a Linestring given an X value on Postgis给定 Postgis 上的 X 值,在 Linestring 中查找插值点的 Y 值
【发布时间】:2014-08-25 00:41:23
【问题描述】:

当给定X 时,我想知道在Linestring 内找到插值点的Y 值的最佳方法是什么。

我的输入LinestringX 坐标将始终是递增的且非连续的(如下例所示)。 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] 和@987654333 @ 用于插值)

如果X 值已经属于Linestring,则它只会输出其对应的Y 值。 268: -61.7

输入表将只有一列,其中一行带有线串。 X 值将是查询的一部分。

我正在使用 PostGIS。

【问题讨论】:

    标签: interpolation postgis


    【解决方案1】:

    可能最简单的方法是生成一条垂直线并检查它与几何图形之间的交点。最好确保线与线串的边界框一样长。

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

    【讨论】:

    • 进一步注意,除了POINT之外,此方法可能还有很多其他类型,具体取决于是否有0个或多个解决方案(交叉点)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2018-11-02
    • 2016-09-04
    • 1970-01-01
    相关资源
    最近更新 更多