Est-il possible de reprojeter des données spatiales à l'aide de SQL Server?

19

SQL Server prend un SRID lors de la création de données spatiales, mais est-il possible de récupérer avec un SRID différent traduisant les coordonnées?

Par exemple, disons que j'ai un tas de polygones spatiaux utilisant le SRID 4258, mais j'aimerais utiliser à côté de certaines données préexistantes qui ont un SRID de 4326 - y a-t-il des conversions intégrées, ou dois-je gérer cela conversion moi-même?

La méthode SQL-MM implémentée par PostGIS est ST_Transform. Comment faire cela dans SQL Server?

Rowland Shaw
la source
Veuillez consulter ma réponse ici: stackoverflow.com/questions/52618277/…
mohsen hs

Réponses:

9

Pas par défaut, mais vérifiez les outils spatiaux SQL Server développés par MSDN sur GitHub. Plus précisément, les fonctions de transformation affine.

user890
la source
+1 Je trouve que ces outils sont une partie essentielle de Sql Server.
Kirk Kuykendall
6

Exemple de reprojection d'EPSG: 2193 à 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

Après cela, exécutez la requête SQL

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