Насколько я понимаю, код пытается уточнить геометрию на основе допуска. По сути, он проверяет, меньше ли расстояние между двумя точками допуска или нет, и соответственно сохраняет/удаляет точки.
Да, это первый шаг, на втором шаге он пытается найти последовательные строки, которые (в основном) совпадают, и объединяет их.
У меня есть вопрос. Точки представлены в формате lat-long. Код просто вычисляет квадрат евклидова расстояния (простая квадратная формула, которую мы все знаем). Разве это не неправильный подход, поскольку расстояние на основе широты и долготы отличается от евклидова расстояния?
(c) 2017, Vladimir Agafonkin
Simplify.js, a high-performance JS polyline simplification library
Код не претендует на пригодность для координат широта-долгота. Хотя они выглядят как 2D-координаты, они представляют собой точки в 3D-пространстве; Я не вижу, чтобы код был создан для этого.
С другой стороны, не должно быть слишком сложно переписать его в 3D-пространство. И все, что вам нужно сделать, это преобразовать точки широты и долготы в 3D-координаты
.
Во-вторых, какова единица допуска? В тесте используется значение допуска 5. Как это значение подходит сюда?
пиксели, мили, не имеет значения. Та же единица, что и точки, которые вы проходите.