API маршрутов Google

Решение TSP с помощью API Google Directions

Google также предоставляет возможность решать простые TSP в реальных местах без загрузки OR-Tools. Если у вас есть ключ API Google Directions, вы можете решить TSP реальных местоположений с помощью Directions API , указав местоположения в URL-адресе и получив ответ в формате JSON. Для разработки вам понадобится собственный бесплатный ключ API Directions или корпоративный ключ для коммерческого использования.

В качестве примера, вот URL-адрес, который можно использовать для поиска короткого тура по винодельческим регионам Южной Австралии, начиная с Аделаиды. Если вы хотите попробовать это из своего браузера, замените API_KEY в конце URL-адреса своим ключом.

https://maps.googleapis.com/maps/api/directions/json?origin=Adelaide,SA&destination=Adelaide,SA&waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA&key=API_KEY

Результатом будет длинный ответ в формате JSON с подробным описанием решения и указаниями Google Maps:

{
   "routes" : [
      {
         "bounds" : {
            "northeast" : {
               "lat" : -33.8347115,
               "lng" : 140.8547058
            },
            "southwest" : {
               "lat" : -37.3511758,
               "lng" : 138.4951576
            }
         },
         "copyrights" : "Map data ©2014 Google",
         "legs" : [
            {
               "distance" : {
                  "text" : "139 km",
                  "value" : 139119
               },
               "duration" : {
                  "text" : "1 hour 51 mins",
                  "value" : 6648
               },
               "end_address" : "Clare SA 5453, Australia",
               "end_location" : {
                  "lat" : -33.8333395,
                  "lng" : 138.6117283
               },
               "start_address" : "Adelaide SA, Australia",
               "start_location" : {
                  "lat" : -34.9285894,
                  "lng" : 138.5999429
               },
               "steps" : [
                  {
                     "distance" : {
                        "text" : "70 m",
                        "value" : 70
                     },
                     "duration" : {
                        "text" : "1 min",
                        "value" : 6
                     },
                     "end_location" : {
                        "lat" : -34.9285338,
                        "lng" : 138.6007031
                     },
                     "html_instructions" : "Head \u003cb\u003eeast\u003c/b\u003e on \u003cb\u003eReconciliation Plaza\u003c/b\u003e toward \u003cb\u003eVictoria Square\u003c/b\u003e",
...