2011-07-17 156 views
0

我想弄清楚如何從幾何數據字段獲得緯度和經度長度的最大值和最小值。我猜你必須先將它轉換爲字符串STAsText,但我不確定。讓我知道你是否有更好的主意?最大經緯度,最小緯度,最大長度,最小長度從幾何字段

+0

鑑於經度本質上是一個圓一個位置的測量結果,與任意0點,多麼有意義的它計算它的最小值和最大值? –

回答

0

我採取了不同的方法。 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 
1

您可能希望使用SQL Server擴展方法「Lat」和「Long」與Max和Min結合使用。


起初,我看這是獲得最小/最大緯度/經度對,這就是我的回答:我懷疑你能搞清楚這點已經從最大的,最小距離確定這(0 ,0),或者您關心的任何位置。

+0

Lat和Long函數只適用於Geography而不是Geometry(我相信)。 –