Страница 1 из 1
st_difference и 180 мередиан
Добавлено: 21 июн 2017, 13:09
alex_069
Ситуация такова:
есть полигон некой области в районе Чукотского автономного округа
при помощи st_difference из него вычитаю полигон, включающий часть России, не полностью пересекающий первый полигон. в результате получаю "расколбас" данных. Что-то подсказывает, что это возникает при проходе через 180 мередиан. Кто-нибудь сталкивался с такой проблемой?
Re: st_difference и 180 мередиан
Добавлено: 21 июн 2017, 13:17
trir
обсуждалось, нужно просто выбрать подходящую проекцию
Re: st_difference и 180 мередиан
Добавлено: 22 июн 2017, 08:14
alex_069
trir писал(а):обсуждалось, нужно просто выбрать подходящую проекцию
найти не удалось, не направите в направлении топика с обсуждением?
Re: st_difference и 180 мередиан
Добавлено: 22 июн 2017, 08:27
trir
Re: st_difference и 180 мередиан
Добавлено: 23 июн 2017, 08:57
alex_069
Благодарю.
Попробовал использовать цилиндрическую проекцию для использования st_difference, но результат не оправдал ожиданий. Проблема сохраняется.
Запрос вида:
SELECT st_astext(st_transform(ST_Difference(st_transform(ST_GeomFromText(A,4326),MySRID), st_transform(ST_GeomFromText(B,4326),MySRID)),4326)
SRID создал из строки proj4 из темы, на которую Вы дали ссылку.
Код: Выделить всё
+proj=eqc +lat_0=0 +lon_0=100 +lat_ts=60 +x_0=0 +y_0=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs
Re: st_difference и 180 мередиан
Добавлено: 23 июн 2017, 09:00
trir
а что получается, если не переводить обратно в исходную проекцию?
Re: st_difference и 180 мередиан
Добавлено: 23 июн 2017, 09:14
alex_069
trir писал(а):а что получается, если не переводить обратно в исходную проекцию?
Что-то получается, но где отобразить данные в такой проекции?)
Re: st_difference и 180 мередиан
Добавлено: 23 июн 2017, 09:27
alex_069
Загнал в обычный сервис по построению графика по точкам. Результат визуально верный. Теперь встаёт вопрос, что же не так с st_transform?
Re: st_difference и 180 мередиан
Добавлено: 23 июн 2017, 09:53
trir
где отобразить данные в такой проекции?
в QGIS например, а в чём нужно?
Результат визуально верный. Теперь встаёт вопрос, что же не так с st_transform?
просто при трансформации происходит нарушение топологии, что бы его избежать, нужно разрезать полигон по 180 мередиан
Re: st_difference и 180 мередиан
Добавлено: 23 июн 2017, 10:19
alex_069
trir писал(а):где отобразить данные в такой проекции?
в QGIS например, а в чём нужно?
Результат визуально верный. Теперь встаёт вопрос, что же не так с st_transform?
просто при трансформации происходит нарушение топологии, что бы его избежать, нужно разрезать полигон по 180 мередиан
Да, вы правы. Если разрезать полигон по 180 меридиану, всё становится на свои места. Спасибо!
Re: st_difference и 180 мередиан
Добавлено: 26 июн 2017, 09:47
alex_069
Аналогично 180 меридиану, на пересечении с экватором с использованием st_difference получаю ошибочную географию. Если в первом случае помогала функция ST_Shift_Longitude, то какая поможет в этом?
Re: st_difference и 180 мередиан
Добавлено: 26 июн 2017, 09:52
trir
а проекция какая?
Re: st_difference и 180 мередиан
Добавлено: 26 июн 2017, 09:55
alex_069
trir писал(а):а проекция какая?
4326
Re: st_difference и 180 мередиан
Добавлено: 27 июн 2017, 08:15
trir
Меркатор должен помочь