2011-07-17 20 views
0

ジオメトリデータフィールドから緯度および経度の最大値と最小値を取得する方法を理解しようとしています。私はあなたがSTAsTextの文字列に最初に変換しなければならないと思っていますが、わかりません。あなたはもっと良いアイデアがあれば教えてください。ジオメトリフィールドから最大Lat、最小Lat、最小Long、最小Long

+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>' 

経度がどのように意味のある、任意の0点で、本質的に円上の位置の測定値であることを考えると緯度と長い

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を組み合わせて使用​​します。まず


Iは、最小/最大緯度/長いペアを取得して、これを読んで、これは私の答えだった:私はあなたが(0から最大、最小距離を有している点把握することで、これを決定することができる疑います、0)、またはあなたが心配していた場所。

+0

LatとLong関数はGeographyではなくGeographyでしか動作しません(私は信じています)。 –