Czy można ponownie rzutować dane przestrzenne za pomocą programu SQL Server?

19

SQL Server bierze SRID podczas tworzenia danych przestrzennych, ale czy możliwe jest pobieranie przy użyciu innego SRID tłumaczącego współrzędne?

Na przykład, powiedzmy, że mam kilka wielokątów przestrzennych przy użyciu SRID 4258, ale chciałbym użyć obok niektórych wcześniej istniejących danych, które mają SRID 4326 - czy są one wbudowane w konwersje, czy też muszę sobie z tym poradzić nawrócenie się?

Jest to metoda SQL-MM, którą implementuje PostGIS ST_Transform. Jak to zrobić w programie SQL Server?

Rowland Shaw
źródło
Proszę spojrzeć na moją odpowiedź tutaj: stackoverflow.com/questions/52618277/…
mohsen hs

Odpowiedzi:

9

Nie domyślnie, ale sprawdź SQL Server Spatial Tools opracowane przez MSDN na GitHub. W szczególności funkcje transformacji afinicznej.

użytkownik890
źródło
+1 Uważam, że te narzędzia są istotną częścią Sql Server.
Kirk Kuykendall
6

Przykład ponownej odrzucenia z EPSG: 2193 na 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

Następnie uruchom zapytanie SQL

update  [DestDbName].[dbo].[DestTableName]
set     [ogr_geometry] =  geometry::STGeomFromText([shape], 3857)
Maxim Mikhisor
źródło