Оптимальная маршрутизация карты с Google Maps

Вы можете создать массив всех ваших языков. Тогда вы можете использовать explode и использовать косую черту в качестве разделителя.

Проверьте, есть ли первый элемент в массиве с языками. Если это так, удалите первый элемент из $parts, используя, например, array_shift , а затем снова соберите строку, используя implode.

$langs = ["en", "fa"];
$string = "fa/account/login";
$parts = explode('/', $string);

if (in_array($parts[0], $langs)) {
    array_shift($parts);
}
echo implode('/', $parts) . PHP_EOL; //account/login

Php demo

14
задан Soldarnal 3 December 2008 в 15:53
поделиться

2 ответа

Это всегда приводит их в порядок.

Так что я думаю, что вам нужно будет найти расстояние (или время) между каждой парой точек, по одному, а затем решить путешествие проблема с продавцом. Может быть, вы могли бы убедить Google Maps добавить эту функцию, хотя. Я думаю, что «достаточно хорошее» решение зависит от того, что вы делаете, и от того, насколько быстрым оно должно быть.

5
ответ дан 1 December 2019 в 07:06
поделиться

В типичной проблеме TSP предположение можно перемещаться напрямую между любыми двумя точками. Для наземных дорог, это никогда не бывает. Когда Google вычисляет маршрут между двумя точками, он выполняет эвристическую оптимизацию остовного дерева и обычно дает путь, довольно близкий к оптимальному.

Чтобы вычислить маршрут TSP, нужно сначала попросить Google вычислить пару - разумное расстояние между каждым узлом в графе. Я думаю, для этого требуется n * (n-1) / 2 вычисления. Затем можно было взять эти расстояния и провести на них оптимизацию TSP.

OpenStreetMaps.org имеет приложение Java WebStart , которое может делать то, что вы хотите. Конечно, расчеты ведутся на стороне клиента. Это проект с открытым исходным кодом, и, возможно, стоит взглянуть на него.

Вы пытаетесь найти оптимальный прямой путь между локациями или оптимальный маршрут движения? Если вы просто хотите упорядочить точки, если вы можете получить координаты GPS, это становится очень простой проблемой.

5
ответ дан 1 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: