N
n8n Store
Workflow Market
🚚 Estimate Driving Time and Distance with Open Route API

🚚 Estimate Driving Time and Distance with Open Route API

by samirsaci0 views

描述

分类

🤖 AI & Machine Learning

使用的节点

n8n-nodes-base.setn8n-nodes-base.waitn8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.httpRequestn8n-nodes-base.googleSheetsn8n-nodes-base.googleSheetsn8n-nodes-base.manualTriggern8n-nodes-base.splitInBatches
价格免费
浏览量0
最后更新11/28/2025
workflow.json
{
  "id": "xcH7MXYzo44y7L7X",
  "meta": {
    "instanceId": "",
    "templateCredsSetupCompleted": true
  },
  "name": "🚚 Estimate Driving Time and Distance with Open Route API",
  "tags": [],
  "nodes": [
    {
      "id": "ce1b3c7f-315a-4714-b616-ecdd9804ee78",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        420,
        -20
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "5a36857f-6b42-4a5b-af68-d2cfaf00ddd3",
      "name": "Extract Results",
      "type": "n8n-nodes-base.set",
      "position": [
        980,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4d0acd1a-c049-4353-9fb7-8eb08c138b9c",
              "name": "distance",
              "type": "string",
              "value": "={{ $json.features[0].properties.segments[0].distance }}"
            },
            {
              "id": "2a6ff46a-f620-4dad-a60a-018b8add76d5",
              "name": "duration",
              "type": "string",
              "value": "={{ $json.features[0].properties.segments[0].duration }}"
            },
            {
              "id": "de20932f-4eb5-4372-ad6d-64679df104cb",
              "name": "n_steps",
              "type": "number",
              "value": "={{ $json.features[0].properties.segments[0].steps.length }}"
            },
            {
              "id": "540df5ea-cf63-47cc-8d63-3d6fcac825af",
              "name": "",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "39a779dd-455b-4502-b17f-8c86d6e47e45",
      "name": "Request Open Route API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        740,
        0
      ],
      "parameters": {
        "url": "https://api.openrouteservice.org/v2/directions/driving-hgv",
        "options": {
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        },
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "api_key",
              "value": ""
            },
            {
              "name": "start",
              "value": "={{ $json.longitude_departure }}, {{ $json.latitude_departure }}"
            },
            {
              "name": "end",
              "value": "={{ $json.longitude_destination }}, {{ $json.latitude_destination }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json; charset=utf-8"
            },
            {
              "name": "Accept",
              "value": "application/json, application/geo+json, application/gpx+xml, img/png; charset=utf-8"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "578e34fd-8804-454b-b6be-25d534eb4283",
      "name": "Collect Routes",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        60,
        -20
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "Distance"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1NLNviRoVMEj2z78KiueruB5sd2CnvAb80DS7J2melVs",
          "cachedResultUrl": "",
          "cachedResultName": "Open Route Service"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "89320458-8aa8-4faf-8009-0f65899762e1",
      "name": "Save Results",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1200,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "id": "={{ $('Loop Over Items').item.json.id }}",
            "n_steps": "={{ $json.n_steps }}",
            "distance": "={{ $json.distance }}",
            "duration": "={{ $json.duration }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "city_departure",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "city_departure",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "longitude_departure",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "longitude_departure",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "latitude_departure",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "latitude_departure",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "city_destination",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "city_destination",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "longitude_destination",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "longitude_destination",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "latitude_destination",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "latitude_destination",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "distance",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "distance",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "duration",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "duration",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "n_steps",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "n_steps",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.6
    },
    {
      "id": "7f83e93e-a759-4724-8978-5de0f565b17d",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        -440
      ],
      "parameters": {
        "color": 7,
        "width": 540,
        "height": 640,
        "content": "### 1. Trigger the workflow\nThis starts by collecting all the routes (Departure, Destination) that need distance and driving time by **truck**.\n\n#### How to setup?\n\n- **Load records in the Google Sheet Node**:\n   1. Add your Google Sheet API credentials to access the Google Sheet file\n   2. Select the file using the list, an URL or an ID\n   3. Select the sheet in which you want to record your working sessions\n   4. Map the fields: **city_departure**, **longitude_departure** , **latitude_departure**, **city_destination**, **longitude_destination**, **latitude_destination**, **distance**, **duration**, **n_steps**\n  [Learn more about the Google Sheet Node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets)\n\nThe last three fields must be left empty as they will be filled with the API outputs.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0dd453dd-2a7e-4039-a15d-2936a8ad4d44",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -160,
        -20
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "45b1dc8a-ed85-424f-89f6-656861b118b6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        340,
        -440
      ],
      "parameters": {
        "color": 7,
        "width": 1240,
        "height": 640,
        "content": "### 2. Loop to collect all driving distances and time \nThis starts by collecting all the routes (Departure, Destination) that need distance and driving time by **truck**.\n\n#### How to setup?\n- **Setup API Credentials**\n  1. Get your free API key: [Open Route API Documentation](https://openrouteservice.org/dev/#/api-docs)\n  2. Fill the API key in the HTTP request node\n  3. Select the driving mode (**driving-car**: individual truck) or (**driving-hgv**: commercial truck)\n- **Load records in the Google Sheet Node**:\n   1. Add your Google Sheet API credentials to access the Google Sheet file\n   2. Select the file using the list, an URL or an ID\n   3. Select the sheet in which you want to record your working sessions\n   4. Map the fields: **city_departure**, **longitude_departure**, **latitude_departure**, **city_destination**, **longitude_destination**, **latitude_destination**, **distance**, **duration**, **n_steps**\n  [Learn more about the Google Sheet Node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets)\n\nThe last three fields must be left empty as they will be filled with the API outputs.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "11232056-fc3b-422c-b569-8a4fc9250633",
      "name": "5 sec",
      "type": "n8n-nodes-base.wait",
      "position": [
        1420,
        0
      ],
      "webhookId": "1c5df276-94b5-42b8-9748-634e389cadcf",
      "parameters": {},
      "typeVersion": 1.1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "91a86656-7afe-4e84-921d-3361c4114016",
  "connections": {
    "5 sec": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Results": {
      "main": [
        [
          {
            "node": "5 sec",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Collect Routes": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Results": {
      "main": [
        [
          {
            "node": "Save Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Request Open Route API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Request Open Route API": {
      "main": [
        [
          {
            "node": "Extract Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Collect Routes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流