Як я отримую SRID з поля Геометрія


17

Яка функція отримання SRID з поля Геометрія.

Я вставив файл таблиці форм у таблицю SQL Server із визначеним полем Геометрія. Я знаю, що проекція формфайлу є Swreff99_1800 (EPSG: 3011).

Тепер моє запитання: Як я отримую цей SRID: 3011, використовуючи метод OGC поля геометрії?


Мені не зрозуміло, що вам потрібно. Вам потрібно визначення SRID 3011 від SQL Server? Здається, ви вже вставили дані з відповідним набором SRID, так?
Чад Купер

Відповіді:


32

Це те, що ви шукаєте?

select distinct SP_GEOMETRY.STSrid from dbo.MYTABLE

Це дасть вам таблицю з різними SRID, що використовуються в таблиці dbo. MYTABLE


Спасибі!. Моє друге питання: SRID 3011 не визначено в таблиці sys.spatial_reference_systems. І мені потрібно перетворити геометрію з SRID 3011 на SRID 4326. Що я роблю тоді?
користувач1899

1
Наскільки я знаю, SQL Server 2008 не в змозі перетворити ваші геометричні дані у дванадцять різних систем координат - він бачить усі дані геометрії як збережені в математичній системі координат.
Пітер Хорсбёлл Мёллер

4

Спробувавши вищезгадане без удачі, я спробував метод нижче:

select [geomColumnName].STSrid
from [schema].[tableName]

Це дає значення SRID для всіх записів у таблиці. Я б припустив, що оскільки всі записи ДОЛЖНІ мати однаковий SRID, то, якби ви хотіли просто отримати значення для однієї записи, це повідомило б вам SRID для всієї таблиці:

select top 1 [geomColumnName].STSrid
from [schema].[tableName]

Мені цікаво, яку версію MS SQL Server ви використовуєте і чи відбулися зміни в пізніших версіях, які б робили використання Distinct не підтримуваним? Або це просто те, що назва стовпця "Геометрія" не SP_GEOMETRY? Я бачив декілька випадків, коли Геометрія зберігалася з різними SRID кожні, хоча вони посилалися на подібні системи координат.
Пітер Хорсбёлл Мёллер

1
@ PeterHorsbøllMøller, переглядаючи це ще раз, я не бачив, що його використання SP_GEOMETRY посилалося на назву стовпця з геометрії, тому моя відповідь майже така ж, як і прийнята ...
DPSSpatial

0

Я вважаю, що число, яке ви хочете використовувати в цей момент, було б srid 4619 або srid 4977 - це SQL-сервер.

Вони обидва еквівалентні EPSG 3011.

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