É possível reprojetar dados espaciais usando o SQL Server?

19

O SQL Server usa um SRID ao criar dados espaciais, mas é possível recuperar com um SRID diferente convertendo as coordenadas?

Por exemplo, digamos que eu tenha vários polígonos espaciais usando SRID 4258, mas eu gostaria de usar juntamente com alguns dados pré-existentes que possuem um SRID 4326 - existem conversões incorporadas ou preciso lidar com isso? conversão eu mesmo?

O método SQL-MM, implementado pelo PostGIS ST_Transform. Como faço isso no SQL Server?

Rowland Shaw
fonte
Por favor, dê uma olhada na minha resposta aqui: stackoverflow.com/questions/52618277/…
mohsen hs

Respostas:

9

Não por padrão, mas verifique as Ferramentas Espaciais do SQL Server desenvolvidas pelo MSDN no GitHub. Especificamente, a transformação afim funciona.

user890
fonte
+1 Considero essas ferramentas uma parte essencial do Sql Server.
Kirk Kuykendall
6

Exemplo de reprojeção de EPSG: 2193 para 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

Depois disso, execute a Consulta SQL

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