我正在尝试将一个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
答案 0 :(得分:0)
很自然地假设STBuffer()
方法会产生这个结果,毕竟你基本上说"给我一个多边形,其边长始常 0.000054 距离我的线路#34;在你的线的末尾,你基本上有一个点,因此很自然地假设你最终得到一个半圆(因此你的曲线)。
真正的问题是,为什么要缓冲?假设你的线是独立的(你的图表描绘的)并且你的点都可以作为单独的项目(从你的问题/图表中再次推断),那么只需使用最近的行(没有缓冲区)使用{{1 }} 方法。您当然希望然后分组并为每个点采取最小距离以获得正确的分配。