@path geography, @start_pct float, @end_pct float
SQL 2008 R2で、3つのパラメーター( )を指定すると、の長さのパーセンテージに基づいて行文字列を返す関数を作成したいと思います@path
。
たとえば
、@start_pct = 0
と@end_pct = 0.5
の場合は、の前半を返し、との@path
場合は、の後半を返します。との場合は、の中間の50%を返しますが、-であり、任意の値(0から1の間)である可能性があります。@start_pct = 0.5
@end_pct = 1
@path
@start_pct = 0.25
@end_pct = 0.75
@path
@start_pct
@end_pct
私は試しました:ポイントの各セットをループしてSTPointN
、関心のあるポイントがそのセクション内にあるかどうかを計算しました。私の頭の中では、ロジックは健全に見えましたが、期待される結果が返されていません(結果はわかっています)。
私には次のようなこだわりがあります。
- 上の2点の間にある点を計算する
@path
- 結果の線文字列を文字列(nvarchar(max))として保存していましたが、スペースが不足している可能性があります(使用しているパスの一部に多くのポイントがあります)。
STLineFromText
最後に、それを地理に戻すために使用したかったのです。
恥ずかしいほどアマチュアなコードを投稿する前に、これはやや簡単なはずだと感じており、おそらくそれを複雑にしすぎているのかもしれません。
誰かが以前にこれをしたことがあり、彼らは手を貸すことができますか?
編集: 実際には-それを解決しただけですが、それでも本来よりもはるかに複雑に見えます。オフィスに戻ったときにコードを投稿します。