私は2つのテーブル(エリア&ロケーション)を持っていて、あるテーブルの長い座標が&であることを確認したいのですが、別のテーブルのエリアにあります。SQL Server 2012空間テーブルの列をジオメトリから地理に変換する方法?
テーブル名:AREA カラム: OBJECTID(INT)、
AREA_NAME(VARCHAR(50))、 GEOM(ジオメトリ)
テーブル名:LOCATION カラム: ID(INT)エリアテーブルから、 LATITUDE(VARCHAR(50))、 LONGITUDE(VARCHAR(50))
サンプルデータ:
SELECT OBJECTID
,AREA
,GEOM
,GEOM.STAsText()
FROM AREA
SELECT
ID
,LATITUDE
,LONGITUDE
FROM LOCATION
Iは、位置(即ち、緯度及び経度座標)かどうかをチェックしたい領域またはしないです。領域テーブルには列GEOMETRY列があります。 このジオメトリカラムをgeographyカラムに変換したいと思います。地理に変換すると、STIntersects()を使用して、その場所がそのエリア内にあるかどうかを確認できます。
しかし、変換しようとすると、Latitudeの値は-90〜90度の間でなければなりません。
SELECT GEOGRAPHY::STGeomFromText(CAST(GEOM AS VARCHAR(MAX)), 4326) FROM AREA
完全なエラーメッセージ: システム:
6522、レベル16、状態1、行70 Aの.NET Frameworkエラーは、ユーザー定義のルーチンまたは集計 "地理" の実行中に を発生しました.FormatException:24201:緯度の値は、-90〜 の間にある必要があります。にSystem.FormatException: Microsoft.SqlServer.Types.GeographyValidator.ValidatePoint(ダブルX、 ダブルY、NULL可能
1 z, Nullable
1メートル)で Microsoft.SqlServer.Types.Validator.BeginFigure(ダブルX、ダブルY、 でNULL可能1 z, Nullable
Microsoft.SqlServer.Types.CoordinateReversingGeoDataSink.BeginFigure(ダブル X、ダブルY、NULL可能1 z, Nullable
1メートルで Microsoft.SqlServer.Types.ForwardingGeoDataSink.BeginFigure(ダブルX、 ダブルY、NULL可能1 z, Nullable
1メートル)で1 M) ) Microsoft.SqlServer.Types.WellKnownTextReader.ParseLineStringText()
(Microsoft.SqlServ) er.Types.WellKnownTextReader.ParsePolygonText() Microsoftの Microsoft.SqlServer.Types.WellKnownTextReader.Readで Microsoft.SqlServer.Types.WellKnownTextReader.ParseTaggedText(OpenGisType タイプ)(OpenGisTypeタイプ、 のInt32 SRID)で
。 Microsoft.SqlServer.Types.SqlGeography.GeographyFromText(OpenGisType タイプ、SqlChars taggedText、のInt32 SRID)でSqlServer.Types.SqlGeography.ParseText(OpenGisType型、 SqlChars taggedText、のInt32 SRID)。
私は、このSQL Server空間データへの新たなんです。誰かがこの仕事を私に導くことができますか?ありがとう! 20170414上:)
アップデート:Here私はジオメトリに緯度&長い座標を変換した後AREA & LOCATIONテーブルからのサンプルデータです。
私は緯度&ロングを変換しましたジオメトリを指し示し、次にそのエリアに緯度と経度が含まれているかどうかをチェックしようとします。しかし、私は結果が得られません。 [ここ](https://ibb.co/hjBMi5)エリアと場所からのサンプルデータです。 POINT&POLYGONデータを見ると、ポリゴン領域にはこれらの点は含まれていません。どのように私は幾何学に緯度と経度を変換している上で問題がありますか? – Rajanand
解決策2を試してみませんか? georgaphyに変換する前にポリゴンで領域の列を交差させます。 –
私は#2を行うするかどうかはわかりません。 – Rajanand