赋予线串宽度以创建多边形

Giving a linestring width to create a polygon

我有一个 WKT 线串,我想用它来搜索 postgis 中的交点,但是线串有一定程度的错误,不会与 postgis 中存储的东西完全相交,所以我想将它转换为多边形并给它 n 米厚度,这样它就会与旁边的东西相交。

一个我想做的例子。绿色是从线创建的多边形

解决方案的语言并不重要。我可以调整解决方案来工作,所以我只是在寻找一些可以创建多边形的通用算法。线串包含地理坐标,所以我认为计算 n 米的距离可能很困难。

我认为解决此问题的最佳方法是从线串上绘制法线并标记足够远的点

看起来这可以用 postgis 来完成。 http://www.postgis.org/docs/ST_Buffer.html

SELECT ST_Buffer(
 ST_GeomFromText(
  'LINESTRING(50 50,150 150,150 50)'
 ), 10, 'endcap=round join=round');