Apakah mungkin untuk memproyeksikan ulang data spasial menggunakan SQL Server?

19

SQL Server mengambil SRID saat membuat data spasial, tetapi apakah mungkin untuk mengambil dengan SRID lain yang menerjemahkan koordinat?

Sebagai contoh, katakanlah saya memiliki banyak poligon spasial menggunakan SRID 4258, tetapi saya ingin menggunakan bersama beberapa data yang sudah ada sebelumnya yang memiliki SRID 4326 - apakah ada dibangun dalam konversi, atau apakah saya harus menangani ini konversi sendiri?

Metode SQL-MM, yang mengimplementasikan PostGIS ST_Transform. Bagaimana saya melakukannya di SQL Server?

Rowland Shaw
sumber
Silakan lihat jawaban saya di sini: stackoverflow.com/questions/52618277/…
mohsen hs

Jawaban:

9

Tidak secara default, tetapi periksa SQL Server Spatial Tools yang dikembangkan oleh MSDN di GitHub. Secara khusus, fungsi transformasi affine.

pengguna890
sumber
+1 Saya menemukan alat-alat ini menjadi bagian penting dari Sql Server.
Kirk Kuykendall
6

Contoh untuk proyeksi ulang dari EPSG: 2193 ke 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

Setelah ini jalankan Query SQL

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