Пространственные данные SQL SERVER - PullRequest
0 голосов
/ 04 мая 2010

Я изо всех сил пытаюсь найти эффективный способ найти расстояние между точкой, которая пересекает многоугольник, и границей этого многоугольника.Я смог использовать STDistance, сравнивая точку с каждой точкой, составляющей многоугольник, но это отнимает много времени.Использование индексирования SPatial не очень помогло, потому что STDistance не является частью какого-либо ограничения, и даже когда я наложил ограничение, индекс не сильно помог.

Я ценю любые отзывы.

Спасибо.

Ответы [ 2 ]

1 голос
/ 06 мая 2010

Поскольку вы хотите найти расстояние до границы, вы можете запросить расстояние до внешнего кольца многоугольника, которое определяется как линейная строка.

select @ polygon.STExteriorRing (). STDistance (@point)

1 голос
/ 06 мая 2010

Попробуйте «модель расширяющегося ящика» - ваш поиск будет расти, пока не будет найдена ближайшая точка.

Ознакомьтесь с различными решениями и дополнительными объяснениями здесь: http://blogs.msdn.com/isaac/archive/2008/10/23/nearest-neighbors.aspx

...