Процент возврата LINESTRING (география SQL Server 2008) - PullRequest
2 голосов
/ 28 ноября 2011

Я хочу создать функцию в 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, он будетвернуть среднее 50% от @path, но - @start_pct и @end_pct может быть любым (между 0 и 1)

Я пробовал: я перебрал каждый набор точек, используя STPointN и вычислиллежали ли мои достопримечательности в этом разделе.В моей голове логика казалась здравой, но она не возвращает ожидаемых результатов (из которых я знаю результат)

У меня есть следующие точки прилипания:

  1. Расчет точкикоторый лежит между 2 точками на @path
  2. Я хранил свою результирующую строку в виде строки (nvarchar (max)), но я думаю, что может не хватить места (некоторые пути, которые я использую, имеют многоочков).Я хотел использовать STLineFromText в конце, чтобы преобразовать его обратно в географию.

Прежде, чем я отправлю свой неловко любительский код, у меня есть ощущение, что это должно быть несколько легко, и, возможно, ячрезмерно усложняя это.

Кто-нибудь делал это раньше и мог ли он протянуть руку?

Редактировать: На самом деле - просто решил, но все же кажется гораздо сложнее, чем этодолжно быть.Разместим код, когда вернемся в офис.

...