Многие знают что самый быстрый вариант SqrMagnitude.
Быстрый он не из-за оптимизаций, а потому что не извлекает корень. Когда ты можешь сравнить два квадрата магнитуды, нет смыла из обоих извлекать корень.
Ну да - это куча весов которые можно перечислить в патенте. Но достаточно их все чуток подкрутить и уже никакого сходства, а результат может оказаться даже лучше.
Разбейте себе задачу на несколько. Сначала научитесь работать с автоподсказками в поле ввода. Затем с геокодированием введённого текста. Ну и на конец с построением маршрута по координатам геокодирования.
Вам всё равно придётся сортировать, вам нужен параметр, на какой позиции в сортированном списке будет каждый символ в строке. В общем делаете сложности ну пустом месте.
VegasChickiChicki, Какое ещё API. MapboxGL JS на вход принимает json с правилами. Это некий аналог CSS только для визуализации карт. Именно оно задаёт стиль карты. Как вы его будете менять вообще не важно, будет он введён пользователем в сыром виде или вы дадите ему ползунок.