2

SQLサーバーのジオメトリと地理のデータ型の実際の例を挙げて、それらの目的を説明してもらえますか? これら 2 つのデータ型の使用はどこにも見たことがありません。SQL Server には、そのようなデータの格納にも使用できる varchar のような汎用データ型があります。これら 2 つのデータ型を使用する利点は何ですか?

4

4 に答える 4

1

わかりました、私はあなたのための例を持っています. X1、Y1、X2、Y2 の 4 つの列を持つテーブルがあります。この列には座標があります

x1=22.4109883
y1=44.740203
x2=22.4112528
y2=44.7404422

このテーブルには、ジオメトリとして宣言された 3 つの列もあります: GEOSTART、GEOEND、GEOSEGMENT

SET @sqlCommand = 'USE [' + @databaseName + '];' +
              ' UPDATE [dbo].[StreetsTable]' +
              ' SET [GEOSTART] = geometry::STGeomFromText(''POINT ('' + [X1] + '' '' + [Y1] + '')'', 4326) WHERE X1<>'''' and Y1<>'''' '; 
EXEC (@sqlCommand)


SET @sqlCommand = 'USE [' + @databaseName + '];' +
              ' UPDATE [dbo].[StreetsTable]' +
              ' SET [GEOEND] = geometry::STGeomFromText(''POINT ('' + [X2] + '' '' + [Y2] + '')'', 4326) WHERE X2<>'''' and Y2<>'''' ';
EXEC (@sqlCommand)

    SET @sqlCommand = 'USE [' + @databaseName + '];' +
                  ' UPDATE [dbo].[StreetsTable]' +
                  ' SET [GEOSEGMENT] = geometry::STGeomFromText(''LINESTRING('' + [X1] + '' '' + [Y1] + '', '' + [X2] + '' '' + [Y2] + '')'', 4326) WHERE X1<>'''' and Y1<>'''' and X2<>'''' and Y2<>'''' ';
EXEC (@sqlCommand)

更新後、そのテーブルで選択を行います。空間結果に進み、空間列を選択します。ジオメトリの使用が表示されます。

それがあなたを助けることを願っています

于 2014-06-27T13:45:12.767 に答える
1

SQL Server は、geometry データ型と geography データ型の 2 つの空間データ型をサポートしています。

ジオメトリ タイプは、ユークリッド (フラット) 座標系でデータを表します。geography タイプは、球体地球座標系のデータを表します。

SQL Server 2008 以降で簡単に見つけることができます。

TABLE tab_spatial を作成します ( id int IDENTITY (1,1) 主キー、zip nvarchar(20)、city nvarchar(500)、geo geography );

空間データ タイプの詳細

于 2013-04-05T11:42:11.383 に答える