st_difference и 180 мередиан
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 21 июн 2017, 12:14
- Репутация: 0
st_difference и 180 мередиан
Ситуация такова:
есть полигон некой области в районе Чукотского автономного округа
при помощи st_difference из него вычитаю полигон, включающий часть России, не полностью пересекающий первый полигон. в результате получаю "расколбас" данных. Что-то подсказывает, что это возникает при проходе через 180 мередиан. Кто-нибудь сталкивался с такой проблемой?
есть полигон некой области в районе Чукотского автономного округа
при помощи st_difference из него вычитаю полигон, включающий часть России, не полностью пересекающий первый полигон. в результате получаю "расколбас" данных. Что-то подсказывает, что это возникает при проходе через 180 мередиан. Кто-нибудь сталкивался с такой проблемой?
Последний раз редактировалось alex_069 23 июн 2017, 10:20, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: st_difference и 180 мередиан
обсуждалось, нужно просто выбрать подходящую проекцию
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 21 июн 2017, 12:14
- Репутация: 0
Re: st_difference и 180 мередиан
найти не удалось, не направите в направлении топика с обсуждением?trir писал(а):обсуждалось, нужно просто выбрать подходящую проекцию
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 21 июн 2017, 12:14
- Репутация: 0
Re: st_difference и 180 мередиан
Благодарю.trir писал(а):viewtopic.php?f=2&t=18501
Попробовал использовать цилиндрическую проекцию для использования 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
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: st_difference и 180 мередиан
а что получается, если не переводить обратно в исходную проекцию?
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 21 июн 2017, 12:14
- Репутация: 0
Re: st_difference и 180 мередиан
Что-то получается, но где отобразить данные в такой проекции?)trir писал(а):а что получается, если не переводить обратно в исходную проекцию?
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 21 июн 2017, 12:14
- Репутация: 0
Re: st_difference и 180 мередиан
Загнал в обычный сервис по построению графика по точкам. Результат визуально верный. Теперь встаёт вопрос, что же не так с st_transform?
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: st_difference и 180 мередиан
в QGIS например, а в чём нужно?где отобразить данные в такой проекции?
просто при трансформации происходит нарушение топологии, что бы его избежать, нужно разрезать полигон по 180 мередианРезультат визуально верный. Теперь встаёт вопрос, что же не так с st_transform?
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 21 июн 2017, 12:14
- Репутация: 0
Re: st_difference и 180 мередиан
Да, вы правы. Если разрезать полигон по 180 меридиану, всё становится на свои места. Спасибо!trir писал(а):в QGIS например, а в чём нужно?где отобразить данные в такой проекции?
просто при трансформации происходит нарушение топологии, что бы его избежать, нужно разрезать полигон по 180 мередианРезультат визуально верный. Теперь встаёт вопрос, что же не так с st_transform?
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 21 июн 2017, 12:14
- Репутация: 0
Re: st_difference и 180 мередиан
Аналогично 180 меридиану, на пересечении с экватором с использованием st_difference получаю ошибочную географию. Если в первом случае помогала функция ST_Shift_Longitude, то какая поможет в этом?
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: st_difference и 180 мередиан
а проекция какая?
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 21 июн 2017, 12:14
- Репутация: 0
Re: st_difference и 180 мередиан
4326trir писал(а):а проекция какая?
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: st_difference и 180 мередиан
Меркатор должен помочь
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей