Макс Лат, Мин Лат, Макс Лонг, Мин Лонг из поля Геометрия - PullRequest
0 голосов
/ 17 июля 2011

Я пытаюсь понять, как получить максимальные и минимальные значения для широт и длинных точек из поля данных геометрии.Я предполагаю, что вы должны сначала преобразовать его в строку, например, STAsText, но я не уверен.Дайте мне знать, если у вас есть идея получше?

Ответы [ 2 ]

1 голос
/ 17 июля 2011

Возможно, вы захотите использовать методы расширения SQL Server " Lat " и " Long " в сочетании с Max и Min.


Сначала япрочитайте это как получение пары min / max lat / long, и это был мой ответ: я подозреваю, что вы могли бы определить это, выяснив, какая точка имеет наибольшее и наименьшее расстояние от (0, 0), или любое другое место, которое вас интересовалоо.

0 голосов
/ 15 августа 2011

Я выбрал другой подход.1. Я преобразовал поле геометрии в строку 2. Проанализировал строку и преобразовал ее в XML 3. Сохранил ее в отдельном поле 4. Запустил XML-запрос из этого поля.

Поле geom в моемдело хранит районы для городов.В некоторых случаях области не перекрываются, поэтому фактически имеют отдельные области.

Вот запрос, который я использовал для преобразования в XML.

update city set geomxml =  '<city>' +  replace(replace(replace(replace
 (replace(replace(replace   
             (geom.ToString(),'POLYGON ',''),
                    '((','<area><point><long>'),
                    '(','<area><point><long>'),
                    '))','</lat></point></area>'),
                    '), ','</lat></point></area>'),
                    ', ','</lat></point><point><long>'),
                    ' ','</long><lat>') +
                    '</city>'

Вот запрос, чтобы получить максимум имин для широты и долготы

select geomxml.query('max(//lat)') as maxlat, geomxml.query('min(//lat)') as minlat, geomxml.query('max(//long)') as maxlong, geomxml.query('min(//long)') as minlong
from city
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...