Координаты - хранить в секундах или градусах?
Добавлено: 25 фев 2012, 10:52
Здравствуйте.
У меня есть карта из нескольких слоев. Мне нужно наносить на свои нее точки.
В каких единицах хранятся координаты карты - я могу только догадываться. Судя по смещению и масштабированию, которое пришлось сделать чтобы увидеть ее в браузере - координаты в градусах.
Т.е. я предположил, что координаты карты содержат градусы и минуты-секунды переведенные в десятичную систему (минуты/60, секунды/3600). SRID=4326
Чтобы нанести на карту свои точки я сначала пошел тем-же путем (минуты/60 + секунды/3600 + градусы, т.е. минуты и секунды получались после запятой, градусы - без изменений).
Но возникла проблема.
В админке, в редактировании координат моих точек приходится делать перевод в широту-долготу. Соответственно в базе, после всех этих делений в 90% уже теряется точность, а после обратного перевода в широту-долготу в админке и сохранении ошибка будет увеличиваться. Т.е. каждый раз сохраняя координаты, из за постоянного перевода ошибка может со временем стать уже существенной.
Можно было бы хранить мои точки в секундах,миллисекундах (благо миллисекунды дуги, по стандарту - в десятичной системе). Но тогда теряется возможность использовать встроенные функции для подсчета, например расстояния между объектами карты и моими точками - или я ошибаюсь?
Кроме того я не уверен, правильно ли понял то как хранится информация карты - могло ли быть такое что происходило деление минут и секунд перед сохранением?
Соответственно при выводе информации, например координаты 50°30' - здесь 30' дожны преобразоваться в пикселы, т.е. 30'*10 = 5 пискелов. Хранится ли 30' в PostGIS обычно как есть илив десятичной системе? Или преобразование происходит при запросе данных (сомневаюсь, но все-же...)?
Подскажите пожалуйста как быть.
Спасибо.
У меня есть карта из нескольких слоев. Мне нужно наносить на свои нее точки.
В каких единицах хранятся координаты карты - я могу только догадываться. Судя по смещению и масштабированию, которое пришлось сделать чтобы увидеть ее в браузере - координаты в градусах.
Т.е. я предположил, что координаты карты содержат градусы и минуты-секунды переведенные в десятичную систему (минуты/60, секунды/3600). SRID=4326
Чтобы нанести на карту свои точки я сначала пошел тем-же путем (минуты/60 + секунды/3600 + градусы, т.е. минуты и секунды получались после запятой, градусы - без изменений).
Но возникла проблема.
В админке, в редактировании координат моих точек приходится делать перевод в широту-долготу. Соответственно в базе, после всех этих делений в 90% уже теряется точность, а после обратного перевода в широту-долготу в админке и сохранении ошибка будет увеличиваться. Т.е. каждый раз сохраняя координаты, из за постоянного перевода ошибка может со временем стать уже существенной.
Можно было бы хранить мои точки в секундах,миллисекундах (благо миллисекунды дуги, по стандарту - в десятичной системе). Но тогда теряется возможность использовать встроенные функции для подсчета, например расстояния между объектами карты и моими точками - или я ошибаюсь?
Кроме того я не уверен, правильно ли понял то как хранится информация карты - могло ли быть такое что происходило деление минут и секунд перед сохранением?
Соответственно при выводе информации, например координаты 50°30' - здесь 30' дожны преобразоваться в пикселы, т.е. 30'*10 = 5 пискелов. Хранится ли 30' в PostGIS обычно как есть илив десятичной системе? Или преобразование происходит при запросе данных (сомневаюсь, но все-же...)?
Подскажите пожалуйста как быть.
Спасибо.