Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 spatial extender / 16 сообщений из 16, страница 1 из 1
18.07.2014, 11:37
    #38700141
Stas_Kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Столкнулся со следующей проблемой в ходе работ с DB2 spatial extender.

В базе данных DB2 (с установленным и настроенным spatial extener) создал таблицу с полями id integer 64, name varchar 256, coordinate "DB2GSE"."ST_GEOMETRY".

Далее начал заполнять таблицу. Записываю полигоны субъектов РФ. Координаты полигонов получаю с веб-сервиса, в котором они хранятся в Spatial Reference: 102100 (3857).

Insertы имеют такой вид:
insert into "scm_new1"."geom" values (1, 'Москва', db2gse.ST_Feometry('polygon
((4327711.2089999989 7245397.7449999973, ....................................... ,4327711.2089999989 7245397.7449999973))', 0))

Использую spatial reference system, у которой srs_id = 0. Описание предустановленных spatial reference system в базе приложено картинкой.

Запросы выполнялись корректно (проверял отрисовку полигонов на карте), пока я не дошел до Чукотского автономного округа, у которого часть полигонов находится на другом полушарии. Координаты таких полигонов имеют отрицательное значения X координаты:
(-20037507.0672 9069882.5203, ................, -20037507.0672 9069882.5203)

Соответственно координаты данных полигонов мне записать в базу не удалось. Ошибка:
Routine "GSEGEOMFROMTEXT" (specific name "GSEGEOMTEXT1") has returned an error SQLSTATE with diagnostic text "GSE3416N Coordinate out of bounds.".. SQLCODE=-443, SQLSTATE=38SSG, DRIVER=3.63.131 SQL Code: -443, SQL State: 38SSG

Пробовал использовать все предустановленные spatial reference system.

Подскажите, как быть в данной ситуации?
Заранее спасибо!
...
Рейтинг: 0 / 0
18.07.2014, 12:58
    #38700266
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Stas_Kom,

Поменять srs_id нельзя ?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create table test(
point DB2GSE.ST_GEOMETRY INLINE LENGTH 659) in LARGEDATA;

insert INTO report.test select DB2GSE.ST_GEOMETRY ('POINT(-1 -5)',0) from sysibm.sysdummy1;
insert INTO report.test select DB2GSE.ST_GEOMETRY ('POINT(-1 -5)',1) from sysibm.sysdummy1;


1: Statement:18.07.2014 12:51:35 0:00:00.037: Executed Successfully
create table test(
point DB2GSE.ST_GEOMETRY INLINE LENGTH 659) in LARGEDATA

2: Error:18.07.2014 12:51:35 0:00:00.000: Lookup Error - DB2 Database Error: ERROR [38SSG] [IBM][DB2/LINUXX8664] 
SQL0443N  Routine "GSEGEOMFROMTEXT" (specific name "GSEGEOMTEXT1") has returned an error SQLSTATE 
with diagnostic text "GSE3416N  Coordinate out of bounds.".
insert INTO test select DB2GSE.ST_GEOMETRY ('POINT(-1 -5)',0) from sysibm.sysdummy1
Statement:18.07.2014 12:51:39 0:00:00.003: 1 rows affected

3: insert INTO test select DB2GSE.ST_GEOMETRY ('POINT(-1 -5)',1) from sysibm.sysdummy1
Script Execution:18.07.2014 12:51:39: Execution finished in 0:00:03.317
...
Рейтинг: 0 / 0
18.07.2014, 13:41
    #38700320
Stas_Kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
knudsen, менял srs_id на все что есть в базе, ни с одним не проходит insert.
...
Рейтинг: 0 / 0
18.07.2014, 14:11
    #38700367
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Stas_Kom,

А координаты в каких рамках ? только сейчас заметил... мне всегда казалось что координаты в градусах (в крайнем случае в радианах) ... от -180 до 180 и от -90 до 90... кажысь...
...
Рейтинг: 0 / 0
18.07.2014, 14:19
    #38700373
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
...
Рейтинг: 0 / 0
18.07.2014, 14:27
    #38700387
Stas_Kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
knudsenStas_Kom,

А координаты в каких рамках ? только сейчас заметил... мне всегда казалось что координаты в градусах (в крайнем случае в радианах) ... от -180 до 180 и от -90 до 90... кажысь...

В данном случае, я получаю координаты с сервера в метрах.
...
Рейтинг: 0 / 0
18.07.2014, 14:33
    #38700394
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Stas_Kom,

Удалённость по прямой от Марса?
Установлена ли в базе Spatial Reference: 102100 (3857) ? Может быть в этом дело?
В приложенном списке нет такой.
...
Рейтинг: 0 / 0
18.07.2014, 15:49
    #38700509
Stas_Kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
knudsenStas_Kom,
Установлена ли в базе Spatial Reference: 102100 (3857) ? Может быть в этом дело?
В приложенном списке нет такой.

Добавил в таблицу DB2GSE.GSE_SPATIAL_REFERENCE_SYSTEMS такую строку:

INSERT INTO "DB2GSE"."GSE_SPATIAL_REFERENCE_SYSTEMS" (SRS_NAME,SRS_ID,X_OFFSET,X_SCALE,Y_OFFSET,Z_OFFSET,Z_SCALE,M_OFFSET,M_SCALE,COORDSYS_NAME,DESCRIPTION,DEFINITION)
VALUES ('WGS84_SRS_1005',1005,-180.0,5965232.0,-90.0,0.0,1.0,0.0,1.0,'WGS_1984_WEB_MERCATOR_AUXILIARY_SPHERE',null,'PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]');

Соответственно поля COORDSYS_NAME и DEFINITION брал из таблицы DB2GSE.GSE_COORDINATE_SYSTEMS.

Но и с использование этой spatial reference system insert не сработал.
...
Рейтинг: 0 / 0
20.07.2014, 15:51
    #38701248
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Stas_Kom,

Референсная система WGS84 (российский аналог П3-90) - система координат в которой ось X по большой оси эллипсоида от -6 378 136 до 6 378 136 метров, коэффициент сжатия 1/298 примерно, т.е. вторая ось чуть меньше... и точка (-20037507.0672 9069882.5203 ) где-то ближе к Луне, чем к Чукотке. Может быть я что-то путаю?
...
Рейтинг: 0 / 0
21.07.2014, 10:06
    #38701555
Stas_Kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
knudsenStas_Kom,

Референсная система WGS84 (российский аналог П3-90) - система координат в которой ось X по большой оси эллипсоида от -6 378 136 до 6 378 136 метров, коэффициент сжатия 1/298 примерно, т.е. вторая ось чуть меньше... и точка (-20037507.0672 9069882.5203 ) где-то ближе к Луне, чем к Чукотке. Может быть я что-то путаю?

Я думаю Вы правы, я с системами координат до этого не работал. Просто не пойму тогда, почему insert с положительными координатами по X и Y со значениями, например, 20 078 136, отрабатывали корректно.
...
Рейтинг: 0 / 0
21.07.2014, 10:50
    #38701633
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Stas_Kom,

А какая версия DB2 установлена? Есть ли DB2 Geodetic Data Management Feature ? (не путать с DB2 Spatial Extender)

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.wn.doc/doc/i0060143.html?lang=en

Покопайте в этом направлении
...
Рейтинг: 0 / 0
21.07.2014, 11:39
    #38701713
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Есть сомнение, что насилие над таблицей DB2GSE.GSE_SPATIAL_REFERENCE_SYSTEMS поможет... есть специальная функция DB2GSE.ST_create_srs

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.spatial.topics.doc/doc/rsbp4007.html?lang=en
...
Рейтинг: 0 / 0
21.07.2014, 16:42
    #38702125
Stas_Kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Проблема решена, спасибо за полезные советы!
...
Рейтинг: 0 / 0
21.07.2014, 22:37
    #38702375
Hunterik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Stas_Kom,
вот Вы - красавец! А поделиться? =)
...
Рейтинг: 0 / 0
22.07.2014, 09:51
    #38702549
Stas_Kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
HunterikStas_Kom,
вот Вы - красавец! А поделиться? =)
Решил Проблему не на уровне db2, а на уровне веб сервера, откуда получал координаты. Удалось вытащить оттуда координаты в сиcтеме wgs 84 (EPSG:4326) в градусах.
...
Рейтинг: 0 / 0
24.07.2014, 11:15
    #38704636
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 spatial extender
Stas_Kom,

А с какого сервера (тоже интересно)? Грешным делом подумал, может декодер использовать типа
Код: sql
1.
CASE X< 0 THEN 6378136 * 2 * pi - X ELSE X END



... как бы продолжить отсчёт положительного значения удаления по экватору за линию смены дат
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 spatial extender / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]