Координаты - хранить в секундах или градусах?

Системы координат, проекции, преобразования, привязка
Ответить
Tango
Новоприбывший
Сообщения: 4
Зарегистрирован: 25 фев 2012, 10:21
Репутация: 0
Откуда: Киев

Координаты - хранить в секундах или градусах?

Сообщение Tango » 25 фев 2012, 10:52

Здравствуйте.
У меня есть карта из нескольких слоев. Мне нужно наносить на свои нее точки.
В каких единицах хранятся координаты карты - я могу только догадываться. Судя по смещению и масштабированию, которое пришлось сделать чтобы увидеть ее в браузере - координаты в градусах.
Т.е. я предположил, что координаты карты содержат градусы и минуты-секунды переведенные в десятичную систему (минуты/60, секунды/3600). SRID=4326

Чтобы нанести на карту свои точки я сначала пошел тем-же путем (минуты/60 + секунды/3600 + градусы, т.е. минуты и секунды получались после запятой, градусы - без изменений).
Но возникла проблема.
В админке, в редактировании координат моих точек приходится делать перевод в широту-долготу. Соответственно в базе, после всех этих делений в 90% уже теряется точность, а после обратного перевода в широту-долготу в админке и сохранении ошибка будет увеличиваться. Т.е. каждый раз сохраняя координаты, из за постоянного перевода ошибка может со временем стать уже существенной.

Можно было бы хранить мои точки в секундах,миллисекундах (благо миллисекунды дуги, по стандарту - в десятичной системе). Но тогда теряется возможность использовать встроенные функции для подсчета, например расстояния между объектами карты и моими точками - или я ошибаюсь?

Кроме того я не уверен, правильно ли понял то как хранится информация карты - могло ли быть такое что происходило деление минут и секунд перед сохранением?
Соответственно при выводе информации, например координаты 50°30' - здесь 30' дожны преобразоваться в пикселы, т.е. 30'*10 = 5 пискелов. Хранится ли 30' в PostGIS обычно как есть илив десятичной системе? Или преобразование происходит при запросе данных (сомневаюсь, но все-же...)?
Подскажите пожалуйста как быть.
Спасибо.

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Координаты - хранить в секундах или градусах?

Сообщение Дмитрий Барышников » 25 фев 2012, 13:37

В каком софте у вас "админка"?
PostGIS хранит координаты в специальной структуре (Geometry) без потери информации. В зависимости от СК координаты могут быть метры, градусы, футы, лапти и т.д. PostGIS не хранит координаты как Г-М-С (это только способ отображения градусов).
Вот непространственная база PostgreSQL может хранить в атрибутах Г-М-С, но это к ГИС имеет опосредованное отношение.

Tango
Новоприбывший
Сообщения: 4
Зарегистрирован: 25 фев 2012, 10:21
Репутация: 0
Откуда: Киев

Re: Координаты - хранить в секундах или градусах?

Сообщение Tango » 25 фев 2012, 14:15

В админке редактируется координаты точек.
Соответственно они там в Г-М-С (градусы-минуты-секунды).
При загрузке данных для формы редактирования я перевожу все координаты в Г-М-С. При сохранении - перекодирую обратно в формат допустимый для столбца геометрии.
Соответственно у меня два пути
1. Хранить в десятичных градусах
2. Хранить в секундах
Но при постоянных перекодированиях может накапливаться увеличивающаяся погрешность (ошибка), либо необходимо будет каждый раз при сохранении делать контрольное перекодирование и сверку.

Соответственно возник вопрос - если мой слой с точками хранить в столбце геометрии в секундах (что намного точнее), а остальные слои останутся в десятичных градусах, не потеряю ли я возможность использовать встроенные функции для оперирования с данными предыдущих слоев и слоя моих точек (например для вычисления расстояния между моей точкой и объектом предыдущих слоев).

P.S.
Админка на сайте (PHP), все данные выводятся через браузер - sorry забыл написать об этом.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Координаты - хранить в секундах или градусах?

Сообщение Максим Дубинин » 25 фев 2012, 19:10

1. почему вы используете формат D M S а не D M S.SS
2. вы в курсе, что 0,01 секунды на экваторе это 30 см, вам точно нужна такая точность?
пристегивайтесь, турбулентность прямо по курсу

Tango
Новоприбывший
Сообщения: 4
Зарегистрирован: 25 фев 2012, 10:21
Репутация: 0
Откуда: Киев

Re: Координаты - хранить в секундах или градусах?

Сообщение Tango » 25 фев 2012, 20:37

Мне тоже самое сказал сегодня руководитель проекта. :) (насчет точности)
Кроме того вопрос отпал полностью, т.к. решено было уйти от минут и секунд в админке и полностью перейти на десятичные градусы.
Большое спасибо за помощь!
Из ответов узнал пару полезных вещей. :)

P.S.
Все же не понимаю почему при сохранении предпочитают десятичные градусы, а не секунды.
Конечно точность может и не так важна, но как-то не красиво выглядит.
Например:
51°20' в десятичных градусах - 51.333333333333
51°20' в секундах - 184800 (нет никаких троек в периоде)
Второй вариант выглядит как минимум эстетичнее

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Координаты - хранить в секундах или градусах?

Сообщение Boris » 04 мар 2012, 19:07

Tango писал(а):то не красиво выглядит.
Например:
51°20' в десятичных градусах - 51.333333333333
51°20' в секундах - 184800 (нет никаких троек в периоде)
Второй вариант выглядит как минимум эстетичнее
Видимо не хранят потому, что эту информацию потом будут читать люди. Первый вид легко отображается в обычный мозг, второй только в весьма специфический. Для полной чистоты можно еще и в двоичном счислении выводить данные - как хранятся, но люди как-то плохо устроены для такого счета. Хотя я знавал человека, который от долгого низкоуровнего программирования стал считать в 8-ой системе. Тяжело ему было в магазине у кассы...

Tango
Новоприбывший
Сообщения: 4
Зарегистрирован: 25 фев 2012, 10:21
Репутация: 0
Откуда: Киев

Re: Координаты - хранить в секундах или градусах?

Сообщение Tango » 04 мар 2012, 22:49

Врядли люди будут читать столбцы геометрии. Даже Ваш знакомый это не осилит.
Наверное есть какие-то логичные причины, хотя может быть просто какая-нибудь традиция? Интересно было бы узнать на самом деле...

Ответить

Вернуться в «Координаты и привязка»

Кто сейчас на конференции

Сейчас этот форум просматривают: Semrush [Bot] и 1 гость