1

これは正しい方法ではないと確信しているので、いくつかの提案を探しています。

私の問題は、空間的な問題を解決しようとしているということではないと思います。緯度と経度を取得して、selectステートメントで地理データ型を返す良い方法がわかりません。地理列を正常に作成し、データを入力しました。

Use thedatabase;
GO
Declare @Lat numeric(11,6)
Declare @Long numeric(11,6)
DECLARE @g geometry;




Select @Lat = Latitude, @Long = Longitude
from dbo.thetable

set @g = geometry::STGeomFromText('POINT (' + Cast(@Lat as varchar(30)) + ' ' + CAST(@Long as varchar(30)) + ')', 0);


select @g
4

2 に答える 2

1

やりたいことを明確にできますか?

テキストの使用に関する質問の場合、私が理解しているように、WKT形式はここではかなり正常なので、問題はありません。

複数のジオメトリ値を返したい場合は、次のようになります。

SELECT geometry::STGeomFromText('POINT (' + CAST(Latitude as varchar(30))
     + ' ' + CAST(Longitude as varchar(30)) + ')', 0)
FROM dbo.thetable

複数のジオメトリを操作する場合は、テーブル変数を宣言し、そのようなクエリの結果を挿入します。

DECLARE @data TABLE (location geometry)
INSERT @data (location)
SELECT geometry::STGeomFromText('POINT (' + CAST(Latitude as varchar(30))
     + ' ' + CAST(Longitude as varchar(30)) + ')', 0)
FROM dbo.thetable

@dataをデータセットとして処理します

于 2008-11-28T09:03:42.933 に答える
1

ジオメトリタイプは、投影されたデータにのみ使用する必要があります。投影されていない緯度/経度データがすでにあるため、代わりに地理タイプを使用する必要があります。また、ポイントを作成するための静的な方法があります。

SELECT geography::Point(t.lat, t.lon, 0) FROM yourtable t
于 2009-02-01T13:22:55.093 に答える