Ist es möglich, räumliche Daten mit SQL Server neu zu projizieren?

19

SQL Server verwendet beim Erstellen von räumlichen Daten eine SRID. Ist es jedoch möglich, die Koordinaten mit einer anderen SRID abzurufen?

Angenommen, ich habe eine Reihe von räumlichen Polygonen, die SRID 4258 verwenden, möchte aber neben einigen bereits vorhandenen Daten, die eine SRID von 4326 haben, auch vorhandene Konvertierungen verwenden, oder muss ich damit umgehen Bekehrung mich?

Die von PostGIS implementierte SQL-MM-Methode lautet ST_Transform. Wie mache ich das in SQL Server?

Rowland Shaw
quelle
Bitte schauen Sie sich meine Antwort hier an: stackoverflow.com/questions/52618277/…
mohsen hs

Antworten:

9

Nicht standardmäßig, aber überprüfen Sie die von MSDN auf GitHub entwickelten SQL Server Spatial Tools . Insbesondere funktioniert die affine Transformation.

user890
quelle
+1 Ich finde, dass diese Tools ein wesentlicher Bestandteil von SQL Server sind.
Kirk Kuykendall
6

Beispiel für eine Reprojektion von EPSG: 2193 auf EPSG: 3857

c:\OSGeo4W64\bin\ogr2ogr.exe ^
 -f "MSSQLSpatial"^
 "MSSQL:server=DestServerName;database=DestDbName;trusted_connection=yes"^
 "MSSQL:server=SourceServerName;database=SourceDbName;trusted_connection=yes"^
 -sql "SELECT [Id], [Shape].STAsText() Shape FROM [SourceDbName].[dbo].[SourceTableName]"^
 -nln "DestTableName"^
 -overwrite^
 -s_srs EPSG:2193^
 -t_srs EPSG:3857

Danach führen Sie SQL Query aus

update  [DestDbName].[dbo].[DestTableName]
set     [ogr_geometry] =  geometry::STGeomFromText([shape], 3857)
Maxim Mikhisor
quelle