Сегодня я пришел с проблемой, которая может быть, конечно, необычной, но я работал над ней целые дни, но безрезультатно.
Что я хочу: я хочу нарисовать полилинию между несколькими точками, принимая во внимание, что маршрут должен быть маршрутом с МЕНЬШИМ РАССТОЯНИЕМ, а не так, как пользователь выбирает свои пункты назначения.
Контекст: у меня есть LatLng ArrayList, который заполняется, когда пользователь щелкает по карте, щелкнутый LatLng автоматически сохраняется в ArrayList. Затем я конвертирую его в массив Position, чтобы использовать метод setCoordinates(). Кроме того, у меня есть «исходная» точка, которая будет текущим местоположением пользователей. Я установил обычный, чтобы сделать тесты.
Проблема: когда пользователь щелкает пункты назначения, ArrayList заполняется так, как он щелкает, без учета ближайшего пункта назначения, и это то, чего я хочу добиться, чтобы отслеживать маршрут только с учетом того, что расстояние между точки должны быть кратчайшими.
Вот мой пример кода (обратите внимание, что если бы «al» ArrayList можно было заказать с учетом расстояния, вероятно, маршрут был бы успешным):
for (int i=0; i<= direcciones.size() - 1; i++) {
LatLng tri = direcciones.get(i);
Position p = Position.fromCoordinates(tri.getLongitude(), tri.getLatitude());
al.add(i, p);
}
MapboxDirections client = new MapboxDirections.Builder()
.setAccessToken(Mapbox.getAccessToken())
.setOrigin(Position.fromCoordinates(-56.1645, -34.9011))
.setCoordinates(al)
.setProfile(DirectionsCriteria.PROFILE_DRIVING)
.build();
Заранее спасибо!