Чи можливо повторно відхилити просторові дані за допомогою SQL Server?


19

SQL Server приймає SRID під час створення просторових даних, але чи можливо отримати інший SRID, перекладаючи координати?

Наприклад, скажімо, у мене є купа просторових багатокутників за допомогою SRID 4258, але я хотів би використовувати поряд з деякими раніше існуючими даними, у яких SRID 4326 - чи є вбудовані конверсії, чи мені це потрібно обробляти перетворення себе?

Метод SQL-MM, який реалізує PostGIS ST_Transform. Як це зробити в SQL Server?


Будь ласка, подивіться на мою відповідь тут: stackoverflow.com/questions/52618277 / ...
Мохсен нд

Відповіді:


18

Ні.

Трансформація - здатність перетворюватися з одного просторового відтворення в інший: Ні - не потрібні сторонні інструменти, Геометрія може використовувати будь-який SRID між 0 і 999999. Додаток за просторовими інструментами, безкоштовний CLR, надає обмежену підтримку перетворення.

Джерело: http://www.bostongis.com/PrinterFriendly.aspx?content_name=sqlserver2008r2_oracle11gr2_postgis15_compare



6

Приклад перепроекції від 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

Після цього виконайте запит SQL

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

0

У мене була подібна проблема, яку вирішив .Net. Я розробив dll в C #, а потім визначив його як функцію CLR в MSSQL. Щоразу, коли я називаю цю функцію, це робить для мене перетворення. Будь ласка, дивіться такий підхід у "Переповнення стека" . , і це /programming/52618277/how-do-spatial-reprojection-in-sql-server

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.