我正在尝试从线段推断以找到线上的一个点,但“返回”的第三个点,即尝试找到点新
,给定点A
和 B
下面:
给定一条线,我可以对其进行插值以获得沿其任意特定百分比的位置:
=# select st_line_interpolate_point(
st_makeline('0101000020E6100000300DC347C49418C03EE8D9ACFAA44A40',
'0101000020E6100000FB743C66A03218C0CDCCCCCCCC7C4A40'),
0.333);
0101000020E6100000ED45B41D537718C069C6A2E9EC984A40
我尝试输入负数来沿相反方向查找直线上的点,但失败了,因为插值参数必须在 [0, 1] 范围内
我考虑过首先缩放线条,但这并不使用线条的中心作为原点,因此对我的目的来说毫无用处。
最佳答案
已经解决了:
F = 1.3333
st_affine(A, F, 0,
0, F,
(F-1)*-st_x(st_line_interpolate_point(st_makeline(A, B), 0.5)),
(F-1)*-st_y(st_line_interpolate_point(st_makeline(A, B), 0.5))
)
说明:
(2-d) 将起点缩放1.3333倍,以线段中点为缩放原点。
拿出方格纸!
关于postgis,推断一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323355/