LINESTRING的返回百分比(SQL Server 2008地理位置)

时间:2011-11-27 23:11:45

标签: sql-server-2008 gis sqlgeography

我想在SQL 2008 R2中创建一个函数,给定3个参数(@path geography, @start_pct float, @end_pct float),将根据@path的长度百分比返回一个线串。

例如
@start_pct = 0@end_pct = 0.5时,它将返回@path的前半部分,当@start_pct = 0.5@end_pct = 1时,它将返回@path的后半部分},当@start_pct = 0.25@end_pct = 0.75时,它会返回@path的中间50%,但是 - @start_pct@end_pct可以是任何内容(0到1之间)

我试过:我使用STPointN循环遍历每组点,并计算我的兴趣点是否在该部分内。在我看来,逻辑似乎是合理的,但它没有返回预期的结果(我知道结果)

我有以下几点:

  1. 计算@path
  2. 上2点之间的点
  3. 我将生成的线串存储为字符串(nvarchar(max))但是我 认为它可能用完了空间(我正在使用的一些路径有一个 很多要点)。我想在最后使用STLineFromText 将其转换回地理位置。
  4. 在我发布令人尴尬的业余代码之前,我觉得这应该有点容易,也许我已经过度复杂了。

    以前是否有人这样做过,他们可以伸出援手吗?

    编辑:实际上 - 刚刚解决了它,但似乎仍然比它应该复杂得多。将在回到办公室时发布代码。

0 个答案:

没有答案