SQL Server 2008 データベースを使用するアプリケーションに取り組んでいます。このデータベースには、ユーザーの場所を示す経度と緯度の 2 つのフィールドを持つ Session という名前のテーブルがあります。Zone という別のテーブルには、ジオメトリ タイプのエリア属性があります。ユーザーの経度と緯度の座標が特定のジオメトリに属しているかどうかを確認するにはどうすればよいですか?
ありがとうございました
SQL Server 2008 データベースを使用するアプリケーションに取り組んでいます。このデータベースには、ユーザーの場所を示す経度と緯度の 2 つのフィールドを持つ Session という名前のテーブルがあります。Zone という別のテーブルには、ジオメトリ タイプのエリア属性があります。ユーザーの経度と緯度の座標が特定のジオメトリに属しているかどうかを確認するにはどうすればよいですか?
ありがとうございました
ユークリッド幾何学で形状を格納する幾何学があり、緯度と経度で表される地球上の点を関連付けて、それが内部にあるかどうかを確認したいとします。SQLがデータを格納する方法が原因で、これは機能しません。これを確認するには、おそらく地理データタイプを使用する必要があります-緯度と経度は球上の点です(地球は完全な球ではないため、実際には測地データです)。
それらが異なる理由の詳細については、Microsoftのこの説明を参照してください。また、stackoverflowに関するこの回答:GEOMETRYとGEOGRAPHYの違いSQL Server 2008
データをジオメトリから地理に変換するには、次を試してください。Geography :: STGeomFromText(cast(GeomCol as varchar(max))、4326)
STIntersects
次に、Microsoftがここに文書化した方法を使用できます。