У меня есть в моей базе данных MySQL и координаты долготы и широты (данные GPS).
Это в настоящее время хранится как:
column type
------------------------
geolat decimal(10,6)
geolng decimal(10,6)
Вопрос: Сделайте мне действительно нужен тип данных, столь же большой как decimal(10,6)
правильно хранить координатные данные?
Так как у меня есть объединенный индекс на долготе и широте, этот индексный размер огромен. Если бы я могу сделать это меньшим, не ставя под угрозу ничего, которое было бы большим.
WGS84 данные обычно даются в виде координат в полностью десятичной системе счисления, обычно с 5-ю знаками после запятой, поэтому для широты (от -90 до +90) можно использовать десятичные(7, 5) (от -90.00000 до 90). 00000), для долготы можно использовать десятичные(8, 5) (от -180.00000 до 180.00000).
. 00001 дает точность около метра на экваторе
Тип данных DECIMAL/NUMERIC - целое число с фиксированной точностью масштабирования и всегда доступны как положительные, так и отрицательные части диапазона - они не влияют на точность или масштаб (очевидно, что для этого требуется память, но для DECIMAL выбора нет)
.Это зависит от того, насколько точно вы хотите, чтобы ваше местоположение было точным. Очевидно, что чем больше, тем точнее, и чем меньше, тем более широкими будут Ваши результаты. Я бы посоветовал сохранить ваши значения большими, так как данных все равно не так уж много.
Я всегда работал с шестью цифрами после запятой. Раньше я выполнял ГИС-работы по военному контракту, и этого было достаточно.
.Помните, что легче уменьшить данные, чем увеличить их. Обычно повышение точности данных невозможно даже без пересчета. А повторное измерение стоит дорого. Не зная больше ничего о вашей ситуации или отрасли, я бы сказал, что можно получить как можно больше данных/специфичности.
Данные, которые вы на самом деле используете, можно отбирать из этого набора. Если в итоге вам понадобится более высокая степень специфичности, вы всегда сможете пересчитать без пересчета.
Кроме того, я не уверен, что индексация необработанных данных - это лучшее, что можно сделать, так как это не дискретный набор элементов. Создание таблицы менее точных/меньше точек данных сделало бы индексы намного меньше.
.Регулярное послание GGA на выходе NMEA Lat/lon составляет только 3 десятичных разряда с разрешением примерно 10 м на экваторе. Некоторые бренды добавляют пользовательскую дополнительную цифру, чтобы дать 1м.
4 цифры deg.mm mm/1000 также является общим.
Если вы используете RTK-GPS высокой точности конца, вам может понадобиться больше мест, чтобы получить точность мм
.Можно также попробовать хранить (и/или работать с) свои координаты в разных единицах измерения. В одном проекте, над которым я работал, все наши координаты хранились в миллисекундах в виде длинны (может быть, в интах, прошло уже пару лет). Это было сделано частично для скорости и для места хранения (это была встраиваемая система). Но здесь может быть применена та же логика
.если это для недвижимости, действительно ли у вас так много домов, что 2 байта, сэкономленные в каждом ряду, будут настолько заметны? Я бы сохранил как можно больше точности, если бы не было веской причины не делать этого.