sensus
@sensus

Google maps — как построить логичный, короткий маршрут?

Собственно имеются точки.
А - стартовая
D - конечная

Маршрут строится по очередности точек в массиве. (a,b,c,d)
Возможно ли как то сделать маршрут более логичным с точки зрения человека?
Т.е. мы начинаем свой пусть в точке А, следующая у нас идет точка В, но короче и вероятно логичнее было бы глянуть точку D а затем уже В.
Может есть встроенный механизм или готовый алгоритм исчисления?

98176e31753e4f6ea7852c3d282216cb.png
  • Вопрос задан
  • 5501 просмотр
Решения вопроса 1
sayber
@sayber
Да, я программирую на PHP и еще асинхронно!
Вам требуется вычислить самую дальнюю точку от стартовой.
Эта дальняя точка будет конечной, остальные точки построятся автоматически.
Формула:
Ri= SQRT((xi-x1)**2+(yi-y1)**2)

Пример изходя из прошлого вопроса:
var waypoints = [
      "40.7513888888889,-73.9777777777778",
      "40.7083333333333,-74.0141666666667",
      "40.7752777777778,-73.9769444444444",
      "40.7252222222222,-73.9993888888889",
      "40.7652777777778,-73.9791666666667"
    ];
var andrLT = []; 
var andrLN = []; 
var Ri;
for (i = 0; i < waypoints.length; i++) {
      andrLT.push(parseFloat(waypoints[i].split(',')[0]));
      andrLN.push(parseFloat(waypoints[i].split(',')[1]));
}

for (i = 0; i < waypoints.length; i++) {
      sqrt = Math.sqrt(((40.7791666666667 - andrLT[i])*2 + (73.9583333333333 - andrLT[i])*2)+300);
      Ri.push([ sqrt ]);
}

// Узнаем максимальное значение массива точек
console.log(Math.max.apply(Math, Ri));


Вы получили дальнюю точку, далее условиями получите координаты и уже реализуете механизм.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Avivar
Посмотрите google maps api https://developers.google.com/maps/customize?hl=ru

Создание персонализированных вариантов маршрутов
API маршрутов позволяет создавать оптимальные варианты проезда. Если же реализовать функцию перетаскивания, пользователи смогут самостоятельно прокладывать маршруты непосредственно на карте. При оптимизации маршрута с целью сокращения времени в пути и расстояния выполняется упорядочивание до 25 пунктов маршрута. Использование API матрицы расстояний дает пользователям возможность просмотреть данные о расстоянии до пунктов назначения и времени в пути.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы