次の空間的制約があります。
ALTER TABLE [dbo].[TRANS_TRAILS_LN] WITH CHECK ADD CONSTRAINT [g10_ck] CHECK (([SHAPE].[STSrid]=(4269)))
GO
ALTER TABLE [dbo].[TRANS_TRAILS_LN] CHECK CONSTRAINT [g10_ck]
GO
およびインデックス:
CREATE SPATIAL INDEX [S10_idx] ON [dbo].[TRANS_TRAILS_LN]
(
[SHAPE]
)USING GEOGRAPHY_GRID
WITH (
GRIDS =(LEVEL_1 = MEDIUM,LEVEL_2 = MEDIUM,LEVEL_3 = MEDIUM,LEVEL_4 = MEDIUM),
CELLS_PER_OBJECT = 16, PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
地理列のあるテーブル
[SHAPE] [geography] NOT NULL,
米国東部全体に機能を追加できます。-90 度に達してさらに西に進むとすぐに、次のエラーが表示されます。
A .NET Framework error occurred during execution of user-defined routine or aggregate "geography":
System.FormatException: 24201: Latitude values must be between -90 and 90 degrees.
System.FormatException:
at Microsoft.SqlServer.Types.GeographyValidator.ValidatePoint(Double x, Double y, Nullable`1 z, Nullable`1 m)
at Microsoft.SqlServer.Types.Validator.AddLine(Double x, Double y, Nullable`1 z, Nullable`1 m)
at Microsoft.SqlServer.Types.F]
私は単一の半球全体の制限を取得しますが、これは問題ではありません: 私は単一の半球にいます. SRID(GCS NAD83)ですか?この SRID を SQL Geography データ型で使用できないでしょうか?
SQL 2008 R2
更新: 以下は、緯度の値が -90 から 90 の範囲内にあることを示しています。
SELECT a.OBJECTID, b.n,
a.SHAPE.STPointN(b.n).Lat AS Lattitude,
a.SHAPE.STPointN(b.n).Long AS Longitude
FROM dbo.TRANS_TRAILS_LN_2 AS a, num_seq AS b
WHERE b.n <= a.SHAPE.STNumPoints()
ORDER BY a.SHAPE.STPointN(b.n).Lat, b.n;
下限:
OBJECTID n Lattitude Longitude
9033 983 33.466981284 -119.038116174
9033 1000 33.4669817430001 -119.037982757
9033 982 33.4669820330001 -119.038128214
9033 984 33.4669823350001 -119.038103865
トップレンジ:
OBJECTID n Lattitude Longitude
19 180 63.751484675 -149.291076228
19 177 63.7515265970001 -149.291518977
19 178 63.7515650700001 -149.291457788
19 179 63.751576146 -149.291381612