Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Свой каталог вместо системного sys.spatial_reference_systems  [new]
Nechto
Member

Откуда:
Сообщений: 829
Здравствуйте!

Вопрос будет по работе с простраственными данными, а в частности с системе координат.

В Базе данных имеется системный каталог с системами координат sys.spatial_reference_systems, который имеет свой набор по умолчанию. Добавлять или удалять данные из него ни как нельзя. На некоторых сайтах пишут что нужно создать свой каталог, я создаю:
CREATE TABLE spatial_ref_sys ( 
  srid       INTEGER NOT NULL PRIMARY KEY, 
  auth_name  VARCHAR(256), 
  auth_srid  INTEGER, 
  srtext     VARCHAR(2048)
)

Наполняю данную таблицу однотипными данными, но с разным srid, для проверки(эксперемента)
INSERT INTO dbo.SPATIAL_REF_SYS (SRID, AUTH_NAME, AUTH_SRID, SRTEXT)
VALUES (1, 'Home 1', 1, 'GEOGCS["Pulkovo 1942(83)", DATUM["Pulkovo 1942/83", ELLIPSOID["Krassowsky 1940", 6378245, 298.3]], PRIMEM["Greenwich", 0], UNIT["Degree", 0.0174532925199433]]'),
(2, 'Home 2', 2, 'GEOGCS["Pulkovo 1942(83)", DATUM["Pulkovo 1942/83", ELLIPSOID["Krassowsky 1940", 6378245, 298.3]], PRIMEM["Greenwich", 0], UNIT["Degree", 0.0174532925199433]]')


После проверяю на работу данного каталога
declare @a geometry 
declare @b geometry 

SET @a = geometry::STPolyFromText('POLYGON((0.001 0.001, 5.001 0.001, 5.001 5.001, 0.001 5.001, 0.001 0.001))', 1)
SET @b = geometry::STPolyFromText('POLYGON((2.001 2.001, 7.001 2.001, 7.001 7.001, 2.001 7.001, 2.001 2.001))', 2)

SELECT @a.STIntersection(@b)

В результате получаем NULL.
Хотя по логике NULL не должен получиться поскольку системы координат в каталоги под srid (1 и 2) одинаковые.

Может кто либо подскажет в чем причина???
30 дек 15, 20:37    [18629776]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить