几何字段中的Max Lat,Min Lat,Max Long,Min Long

时间:2011-07-17 02:23:57

标签: sql sql-server-2008 gis

我正在试图弄清楚如何从几何数据字段中获取纬度和长点的最大值和最小值。我猜你必须先将它转换为字符串我们的STAsText,但我不确定。如果你有更好的想法,请告诉我?

2 个答案:

答案 0 :(得分:1)

您可能希望使用SQL Server扩展方法“Lat”和“Long”结合Max和Min。


起初我把它读成最小/最大纬度/长对,这是我的答案:我怀疑你可以通过确定哪个点距离(0,0)最大,最小的距离来确定这一点,或者你担心的任何地方。

答案 1 :(得分:0)

我采取了不同的方法。 我将几何字段转换为字符串 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>'

以下是获取lat和long

的最大值和最小值的查询
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