web-dev-qa-db-ja.com

MSSQLサーバーに空間参照ID 28992を追加する方法

MS SQL Serverの [〜#〜] epsg [〜#〜] にある空間参照ID 28992を使用したい。これをMS SQL Serverに追加するにはどうすればよいですか?

私の最終目標は、 this データセットをMS SQL Serverに取り込み、Geography Markup Language(GML)要素をMS SQL Serverのgeographyデータ型に格納することです。この後、 [〜#〜] qgis [〜#〜] からMS SQL Serverに接続したいので、Niceデータ分析を実行できます。

私のアイデアは、MS SQL Serverの GEOMFROMGMLパーサー を使用して(XMLに含まれる)GML要素を解析することでした。私は試した:

SELECT geography::GeomFromGml (
'<Polygon xmlns="http://www.opengis.net/gml">
<exterior>
<LinearRing>
<posList>78988.952 384548.144 78992.462 384549.74 78998.712 384555.12</posList>
</LinearRing>
</exterior>
</Polygon>'
, 28992 )

ただし、上記のコードでは次のエラーが発生します。「空間参照識別子(SRID)は無効です。指定されたSRIDは、sys.spatial_reference_systemsカタログビューに表示されるサポートされているSRIDのいずれかと一致する必要があります。」

そこで、次のコマンドを使用して、SRIDをsys.spatial_reference_systemsカタログビューに追加しようとしました。

INSERT INTO [DataAnalyse].[sys].[spatial_reference_systems] ([spatial_reference_id]
      ,[authority_name]
      ,[authorized_spatial_reference_id]
      ,[well_known_text]
      ,[unit_of_measure]
      ,[unit_conversion_factor])
VALUES(
    28992,
    'EPSG',
    28992,
    'GEOGCS["Amersfoort", DATUM["Amersfoort", SPHEROID["Bessel 1841", 6377397.155,299.1528128]], PRIMEM["Greenwich", 0], UNIT["Degree", 0.0174532925199433]]',
    'metre',
    1
)

これにより、別のエラーが発生しました:「メッセージ259、レベル16、状態1、行13システムカタログへのアドホック更新は許可されていません。」

そこで、システムカタログを更新する方法を検討しました。 [〜#〜] dba [〜#〜] で説明されています。しかし、そこには、MS SQL Serverのインストールを破壊する重大なリスクがあり、保証は終了すると述べられていました。したがって、システムカタログを直接更新することは実際には選択肢ではないようです。

私は最初に Microsoft Docs でこの質問をしましたが、ここで質問するように言われました。

さらに、人々は同様の質問をしたようです:

私の質問に対する回答がある場合、または私が私の最終目標(上記)に到達するための別のアイデアがある場合は、お知らせください。

2
Jens Wagemaker

EPSGにある空間参照ID 28992をMS SQL Serverで使用したい。これをMS SQL Serverに追加するにはどうすればよいですか?

すでに述べたように、システムカタログを手動で変更する方法はいくつかありますが、一般的にこれはサポートされておらず、推奨されていません。そのため、これはオプションではないと考えています。

documentation は以下を指定します:

SQL Serverは、EPSG標準に基づくSRIDをサポートしています。 計算を実行するとき、または地理空間データでメソッドを使用するときは、地理インスタンスに対してSQL ServerでサポートされているSRIDを使用する必要がありますSRIDは、sys.spatial_reference_systemsカタログビューに表示されるSRIDの1つと一致する必要があります。

Emphasis mine

したがって、SQL Serverがこの特定のSRIDをサポートしていないことは明らかであるようです(SQL Server 2019現在 db <> fiddle )。


それが言われている、あなたはすべきです

  1. フィードバックアイテムの作成 この機能の追加に関するMSSQLチーム用。
  2. PostGIS を調べてください。これは、リレーショナルデータベースでGISデータを処理するための最良のオプションと広く見なされています(無料で起動できます)。
1
LowlyDBA