使用MSSQL Spatial缓冲的行上的相交点

时间:2014-03-16 13:57:42

标签: sql-server spatial spatial-query

我正在尝试将一个id分配给缓冲行中的一组内容(0.000054),我注意到在缓冲行的末尾,它是圆形的。

附件是我的数据样本 我有黄色表示原始线.. 和黄色表示缓冲线 - 多边形。

这是一组连续数据。通过我的缓冲线的方法,我最终得到了在线的下一侧生成的圆角多边形......

这导致我的“绿色”数据点错误地相关..

如果可能,我希望获得高精度。(用红线标记)

绿点应该停在黄线的末端..

我注意到我能做到 通过[SP_GEOMETRY]减少缓冲线。减少(0.0001)之前相交但停止线仍不准确......

执行sql

SELECT   ptSample.SP_Geometry
       , lineSample.main_id as 'lineid'
       , ptSample.main_id   as 'pointid' 
FROM lineReference_buffered lineSample inner join sample_Reference ptSample 
on lineSample.[SP_GEOMETRY].STIntersects(ptSample.SP_Geometry)=1

scenario

1 个答案:

答案 0 :(得分:0)

很自然地假设STBuffer()方法会产生这个结果,毕竟你基本上说"给我一个多边形,其边长始常 0.000054 距离我的线路#34;在你的线的末尾,你基本上有一个点,因此很自然地假设你最终得到一个半圆(因此你的曲线)。

真正的问题是,为什么要缓冲?假设你的线是独立的(你的图表描绘的)并且你的点都可以作为单独的项目(从你的问题/图表中再次推断),那么只需使用最近的行(没有缓冲区)使用{{1 }} 方法。您当然希望然后分组并为每个点采取最小距离以获得正确的分配。