GPX Editor и Viewer могут уменьшить количество путевых точек без максимально возможного изменения формы маршрута. Очень важно уменьшить количество путевых точек, потому что файлы GPX пишутся в текстовом формате.
GPX Editor и Viewer уменьшают количество данных путевых точек, используя два типа параметров. Параметр «минимальное расстояние» определяет минимальный порог расстояния между двумя путевыми точками в метрах. GPXEV удаляет путевые точки с расстояния короче указанного порога. Параметр «отклонение маршрута» указывает допустимое разделение маршрута в метрах до и после удаления путевой точки. GPXEV удаляет путевые точки, попадающие в указанный порог.
Подробные спецификации для сокращения путевых точек описаны ниже.
Сначала объясняется, как уменьшить объем данных с помощью параметра «минимальное расстояние». Если есть две путевые точки, w1 и w2, расстояние между путевыми точками определяется как d. Если расстояние d меньше порогового значения, либо w1, либо w2 удаляются.
GPXEV выберет лучшую путевую точку для удаления. Например, на рисунке слева w1 и w2 расположены близко друг к другу, но удаление w1 изменит форму маршрута. С другой стороны, удаление w2 не меняет форму маршрута.
GPXEV вычисляет угол, под которым направление движения изменяется для каждой путевой точки. Путевая точка с более низким значением лучше подходит для удаления. В качестве конкретного примера, при удалении либо w1, либо w2 вычисляется величина изменения θ1 или θ2 в направлении движения. Затем удалите путевую точку с меньшим значением θ.
Обработка сокращения данных не удаляет заблокированную путевую точку. Например, если w1 и w2 близки, а w1 заблокирован, w2 удаляется безоговорочно.
Далее объясняется, как уменьшить объем данных с помощью параметра «отклонение маршрута». Использование этого параметра подходит для уменьшения объема данных на длинных прямых дорогах или дорогах с небольшим изгибом.
Ниже приведен пример, когда есть три путевые точки, w1, w2 и w3. Теперь рассмотрим, можно ли удалить w2.
Сначала вычислите расстояние r между w1 и w2.
Затем найдите точку p, которая находится на прямой, соединяющей w1 и w3, и находится на расстоянии r от w1.
Рассчитайте расстояние d между w2 и p. Если d меньше порогового значения, w2 удаляется. Поэтому верхний предел расстояния d, отклоненного от исходного маршрута, является пороговым значением.
Прямая линия, обозначающая полученное здесь расстояние d, не является перпендикулярной линией, соединяющей w1 и w3. Легко определить перпендикулярную линию на плоскости. Но трудно найти перпендикулярную линию на поверхности сферы, используя широту и долготу. Поэтому GPXEV использует расстояние d, рассчитанное просто без использования перпендикулярной линии.