Как я получу SRID из поля Geometry


16

Что такое функция для получения SRID из поля Geometry.

Я вставил шейп-файл в таблицу SQL Server с определенным полем Geometry. Я знаю, что проекция шейп-файла - Swreff99_1800 (EPSG: 3011).

Теперь мой вопрос: как мне получить этот SRID: 3011, используя какой-то метод OGC для геометрического поля?


Мне не ясно, что вам нужно. Вам нужно определение SRID 3011 из SQL Server? Похоже, вы уже вставили данные с правильным набором SRID, да?
Чед Купер

Ответы:


31

Это то, что вы ищите?

select distinct SP_GEOMETRY.STSrid from dbo.MYTABLE

Это даст вам таблицу с различными SRID, используемыми в таблице dbo.MYTABLE


Благодарность!. Мой второй вопрос: SRID 3011 не определен в таблице sys.spatial_reference_systems. И мне нужно преобразовать геометрию из SRID 3011 в SRID 4326. Что мне тогда делать?
user1899

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 не поддерживается? Или просто имя вашего столбца Geometry не 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.