我想在 SQL 2008 R2 中创建一个函数,给定 3 个参数 ( @path geography, @start_pct float, @end_pct float
),它将根据长度的百分比返回一个线串@path
。
例如
when @start_pct = 0
and @end_pct = 0.5
,它将返回 的前半部分@path
,当@start_pct = 0.5
and时@end_pct = 1
,它将返回 的后半部分@path
,当@start_pct = 0.25
and时@end_pct = 0.75
,它将返回 50% 的中间部分@path
,但是 - @start_pct
and@end_pct
可以是任何东西(介于 0 和 1 之间)
STPointN
我尝试过:我使用并计算我的兴趣点是否位于该部分内,遍历每组点。在我看来,逻辑似乎是合理的,但它没有返回预期的结果(我知道结果)
我有以下症结:
- 计算位于 2 点之间的点
@path
- 我将生成的线串存储为字符串 (nvarchar(max)),但我认为它可能会用完空间(我使用的一些路径有很多点)。我想
STLineFromText
在最后使用将其转换回地理。
在我发布我令人尴尬的业余代码之前,我有一种感觉,这应该有点容易,也许我把它复杂化了。
有没有人这样做过,他们可以伸出援助之手吗?
编辑: 实际上 - 刚刚解决了它,但似乎仍然比它应该的复杂得多。回到办公室后将发布代码。