{"id":235,"date":"2017-03-09T16:44:40","date_gmt":"2017-03-09T15:44:40","guid":{"rendered":"http:\/\/www.searchdrivingdirections.com\/maps\/?page_id=235"},"modified":"2024-04-15T13:55:33","modified_gmt":"2024-04-15T12:55:33","slug":"google-route-planner","status":"publish","type":"page","link":"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/","title":{"rendered":"Google Driving Directions"},"content":{"rendered":"\n<p>Get FREE <a href=\"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/\">Driving Directions<\/a> between any point shown on \u2122 or <strong><a href=\"http:\/\/www.searchdrivingdirections.com\/bing-maps\/\">Bing Maps<\/a><\/strong>\u2122 and <strong>follow the turn-by-turn<\/strong> directions displayed near their <i>interactive map<\/i>.<\/p>\n\n\n\n<p>Are you looking for traffic information? Click here for a <a href=\"https:\/\/www.drivingdirectionsandmaps.com\/traffic-conditions-on-google-map\/\" target=\"_blank\" rel=\"noopener\">Google traffic conditions map<\/a>.<\/p>\n\n\n\n<p><strong>Google Maps<\/strong> is a <strong>free<\/strong> desktop\/mobile <strong>web mapping service<\/strong> developed <strong>by Google<\/strong>. <em>Google Maps<\/em> offers dynamic <em>satellite imagery<\/em> (high-resolution imagery of cities mostly taken from satellites), <em>street maps, panoramic views of streets<\/em> (called <em><a href=\"https:\/\/www.searchdrivingdirections.com\/maps\/\">Street View<\/a><\/em> service: provides 360\u00b0 panoramic street-level views of various locations), real-time <em>traffic conditions<\/em> (called <strong>Google Traffic<\/strong>: traffic data in real-time, using 4 colored lines on the map as an overlay to display the <strong>speed of vehicles<\/strong> on particular roads), and <strong>route planning<\/strong> (called <strong>Google <a href=\"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/\">Driving Directions<\/a><\/strong> in the US.).<\/p>\n\n\n\n<link rel=\"stylesheet\" href=\"https:\/\/www.searchdrivingdirections.com\/maps\/wp-content\/uploads\/routing\/dist\/leaflet.css\">\n<link rel=\"stylesheet\" href=\"https:\/\/www.searchdrivingdirections.com\/maps\/wp-content\/uploads\/routing\/styles\/styles.min.css\">\n<script src=\"https:\/\/www.searchdrivingdirections.com\/maps\/wp-content\/uploads\/routing\/dist\/leaflet.js\"><\/script>\n<script src=\"https:\/\/www.searchdrivingdirections.com\/maps\/wp-content\/uploads\/routing\/dist\/index.min.js\"><\/script>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<!-- Link egys\u00e9g hirdet\u00e9sek -->\n<ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-5759976617380173\" data-ad-slot=\"9897006634\" data-ad-format=\"link\" data-full-width-responsive=\"true\"><\/ins>\n<script>\n(adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n<br>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div id=\"geoapify-route-directions\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100 has-custom-font-size has-medium-font-size\" id=\"calculate-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"#get-directions\" style=\"border-radius:2px\">Get Directions \u27a2<\/a><\/div>\n<\/div>\n\n\n\n<div id=\"get-directions\"><\/div>\n\n\n\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<!-- Link egys\u00e9g hirdet\u00e9sek -->\n<ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-5759976617380173\" data-ad-slot=\"9897006634\" data-ad-format=\"link\" data-full-width-responsive=\"true\"><\/ins>\n<script>\n(adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n<br>\n\n\n\n<script>\n\n  const apiKey = \"ad5f1f42f9ec4d89aa41bbe23277587c\";\n\n\n  const mapStyle = \"osm-bright\";\n\n\n  const markerIcon = L.icon({\n    iconUrl: `https:\/\/api.geoapify.com\/v1\/icon\/?type=awesome&scaleFactor=2&color=%23ff4949&apiKey=${apiKey}`, \n    iconSize: [31, 46], \n    iconAnchor: [15.5, 42],\n    popupAnchor: [0, -45]\n  });\n\n \n  const routeDirectionsOptions = {\n    supportedModes: ['walk', 'bicycle', 'motorcycle', 'drive', 'transit', 'light_truck', 'truck', 'bus'],\n    supportedOptions: ['highways', 'tolls', 'ferries', 'units'],\n    units: 'metric',\n    calculateRouteTrigger: 'functionCall'\n  };\n\n  const geocoderOptions = {\n    placeholder: \"Enter an address here or click on the map\"\n  };\n \n  const routeVisualizationOptions = {\n    color: '#6699ff',\n    shadowColor: '#0055ff',\n    width: 4\n  };\n  let mapInitialized = false;\n  let map;\n<\/script>\n\n<script>\nconst urlSearchParams = new URLSearchParams(window.location.search);\nconst params = Object.fromEntries(urlSearchParams.entries());\n\nif (params.fromh && params.toh) {\n  routeDirectionsOptions.waypoints = [\n    {address: decodeURIComponent(params.fromh)},\n    {address: decodeURIComponent(params.toh)},\n  ]\n}\n\nif (params.metric) {\nrouteDirectionsOptions.units = params.metric === 'imperial' ? 'imperial' : 'metric';\n}\n\nif (params.howh && ['walk', 'hike', 'scooter', 'motorcycle', 'drive', 'light_truck', 'medium_truck', 'truck', 'bicycle', 'mountain_bike', 'road_bike', 'bus'].indexOf(params.howh) >= 0) {\nrouteDirectionsOptions.mode=params.howh;\n}\n\nif (params.avoid) {\n const avoids = decodeURIComponent(params.avoid).split(\",\");\n routeDirectionsOptions.avoidHighways = avoids.indexOf(\"highways\") >= 0;\n routeDirectionsOptions.avoidTolls = avoids.indexOf(\"tolls\") >= 0;\n routeDirectionsOptions.avoidFerries = avoids.indexOf(\"ferries\") >= 0;\n}\n\n \n  const routeDirections = new directions.RouteDirections(document.getElementById(\"geoapify-route-directions\"), apiKey, routeDirectionsOptions, geocoderOptions);\n<\/script>\n<script>\n\n  routeDirections.on('routeCalculated' (geojson) => {\n    if (!mapInitialized) {\n      mapInitialized = true;\n      initMap();\n    }\n\n    if (routeLayer) {\n      routeLayer.remove();\n      routeShadowLayer.remove();\n      instructionMarkers.forEach(marker => marker.remove());\n      instructionMarkers = [];\n    }\n\n    const instrictionContainer = document.getElementById(\"geoapify-instructions\");\n    instrictionContainer.innerHTML = '';\n    updateMarkers();\n\n    visualizeRoute(geojson);\n    generateInstructions(geojson);\n  });\n<\/script>\n<script>\n \n  let markers = [];\n  let routeLayer;\n  let routeShadowLayer;\n  let instructionMarkers = [];\n\nfunction initMap() {\n  document.getElementById(\"geoapify-map\").style.height = \"600px\";\n\n  \n  map = L.map('geoapify-map');\n  L.control.scale().addTo(map);\n\n  const mapURL = L.Browser.retina\n    ? `https:\/\/maps.geoapify.com\/v1\/tile\/{mapStyle}\/{z}\/{x}\/{y}.png?apiKey={apiKey}`\n    : `https:\/\/maps.geoapify.com\/v1\/tile\/{mapStyle}\/{z}\/{x}\/{y}@2x.png?apiKey={apiKey}`;\n\n  \n  L.tileLayer(mapURL, {\n    attribution: 'Powered by <a href=\"https:\/\/openmaptiles.org\/\" rel=\"nofollow\" target=\"_blank\">\u00a9 OpenMapTiles<\/a> <a href=\"https:\/\/www.openstreetmap.org\/copyright\" rel=\"nofollow\" target=\"_blank\">\u00a9 OpenStreetMap<\/a>',\n    apiKey: apiKey,\n    mapStyle: mapStyle,\n    maxZoom: 20\n  }).addTo(map);\n}\n\n  function updateMarkers() {\n    markers.forEach(marker => marker.remove());\n    markers = [];\n    const bounds = L.latLngBounds();\n\n    const options = routeDirections.getOptions();\n    options.waypoints.filter(waypoint => waypoint.lat && waypoint.lon).forEach(waypoint => {\n      bounds.extend([waypoint.lat, waypoint.lon]);\n      markers.push(L.marker([waypoint.lat, waypoint.lon], {\n        icon: markerIcon\n      }).addTo(map));\n    });\n\n    if (markers.length > 1 && bounds.isValid()) {\n      map.fitBounds(bounds, { padding: [50, 50] });\n    } else if (markers.length) {\n      map.setView(markers[0].getLatLng())\n    }\n  }\n\n  function visualizeRoute(geojson) {\n    if (routeLayer) {\n      routeLayer.remove();\n      routeShadowLayer.remove();\n      instructionMarkers.forEach(marker => marker.remove());\n      instructionMarkers = [];\n    }\n\n    if (!geojson || !geojson.properties) {\n      return;\n    }\n\n    routeShadowLayer = L.geoJSON(geojson, {\n      style: function (feature) {\n        return { color: routeVisualizationOptions.shadowColor, weight: routeVisualizationOptions.width + 2 };\n      }\n    }).addTo(map);\n\n    \n    routeLayer = L.geoJSON(geojson, {\n      style: function (feature) {\n        return { color: routeVisualizationOptions.color, weight: routeVisualizationOptions.width };\n      }\n    }).addTo(map);\n\n    const points = geojson.geometry.coordinates;\n    geojson.properties.legs.forEach((leg, legIndex) => {\n      const legPoints = points[legIndex];\n      leg.steps.forEach(step => {\n        \n        instructionMarkers.push(L.circleMarker([legPoints[step.from_index][1], legPoints[step.from_index][0]], {\n          radius: routeVisualizationOptions.width + 1,\n          fill: true,\n          fillOpacity: 1,\n          fillColor: \"#fff\",\n          color: routeVisualizationOptions.shadowColor,\n          weight: 1\n        }).bindPopup(step.instruction.text).addTo(map));\n      });\n    });\n  }\n\n  function generateInstructions(geojson) {\n    const type2icon = {\n      \"StartAt\": \"navigation\",\n      \"StartAtRight\": \"navigation\",\n      \"StartAtLeft\": \"navigation\",\n      \"DestinationReached\": \"place\",\n      \"DestinationReachedRight\": \"place\",\n      \"DestinationReachedLeft\": \"place\",\n      \"Straight\": \"straight\",\n      \"SlightRight\": \"turn_slight_right\",\n      \"Right\": \"turn_right\",\n      \"SharpRight\": \"turn_right\",\n      \"TurnAroundRight\": \"u_turn_right\",\n      \"TurnAroundLeft\": \"u_turn_left\",\n      \"SharpLeft\": \"turn_left\",\n      \"Left\": \"turn_left\",\n      \"SlightLeft\": \"turn_slight_left\",\n      \"ExitRight\": \"turn_slight_right\",\n      \"ExitLeft\": \"turn_slight_left\",\n      \"StayRight\": \"straight\",\n      \"StayLeft\": \"straight\",\n      \"Merge\": \"merge\",\n      \"FerryEnter\": \"directions_boat\",\n      \"FerryExit\": \"directions_boat\",\n      \"MergeRight\": \"ramp_right\",\n      \"MergeLeft\": \"ramp_left\",\n      \"Roundabout\": \"roundabout\"\n    }\n\n    const waypoints = routeDirections.getOptions().waypoints;\n\n    const instrictionContainer = document.getElementById(\"geoapify-instructions\");\n    instrictionContainer.innerHTML = '';\n\n    const isMetric = geojson.properties.distance_units === 'meters';\n\n    if (geojson.properties.legs.length > 1) {        \n      const waypointsInfo = document.createElement(\"div\");\n      waypointsInfo.classList.add(\"direction-waypoints\");\n\n      const distance = toPrettyDistance(geojson.properties.distance, isMetric);\n      const time = toPrettyTime(geojson.properties.time);\n      waypointsInfo.textContent = `${distance}, ${time}`;\n\n      instrictionContainer.appendChild(waypointsInfo);\n    }\n\n    geojson.properties.legs.forEach((leg, index) => {\n      const waypointsInfo = document.createElement(\"div\");\n      waypointsInfo.classList.add(\"direction-waypoints\");\n\n      const from = `${waypoints[index].address ? waypoints[index].address : `${waypoints[index].lat} ${waypoints[index].lon}`}`;\n      const to = `${waypoints[index + 1].address ? waypoints[index + 1].address : `${waypoints[index + 1].lat} ${waypoints[index + 1].lon}`}`;\n      const distance = toPrettyDistance(leg.distance, isMetric);\n      const time = toPrettyTime(leg.time);\n      waypointsInfo.textContent = `${distance}, ${time}`;       \n\n      if (geojson.properties.legs.length > 1) {\n        waypointsInfo.classList.add(\"smaller\");\n\n        const fromTo = document.createElement(\"div\");\n        fromTo.classList.add(\"direction-waypoints-from-to\");\n        fromTo.textContent = `(${from} - ${to})`;\n        waypointsInfo.appendChild(fromTo);\n      }\n\n      instrictionContainer.appendChild(waypointsInfo);\n\n      leg.steps.forEach(step => {\n       \n        const instruction = document.createElement(\"div\");\n        instruction.classList.add(\"direction-instruction\");\n\n        const iconElement = document.createElement(\"div\");\n        iconElement.classList.add(\"direction-instruction-icon\");\n\n        if (type2icon[step.instruction.type]) {\n          addIcon(iconElement, type2icon[step.instruction.type]);\n        }\n        instruction.appendChild(iconElement);\n\n        const infoElement = document.createElement(\"div\");\n        infoElement.classList.add(\"direction-instruction-info\");\n\n        const textElement = document.createElement(\"div\");\n        textElement.classList.add(\"direction-instruction-text\");\n        let text = step.instruction.text;\n\n        if (step.instruction.streets) {\n          step.instruction.streets.forEach(street => {\n            text = text.split(street).join(`<b>${street}<\/b>`);\n          })\n        }\n\n        textElement.innerHTML = text;\n        infoElement.appendChild(textElement);\n\n        if (step.instruction.post_transition_instruction && step.instruction.post_transition_instruction !== step.instruction.text) {\n          const textElementPost = document.createElement(\"div\");\n          textElementPost.classList.add(\"direction-instruction-text-post\");\n          textElementPost.textContent = step.instruction.post_transition_instruction;\n          infoElement.appendChild(textElementPost);\n        }\n\n        instruction.appendChild(infoElement);\n        instrictionContainer.appendChild(instruction);\n      });\n    });\n  }\n\n  function addIcon(element, icon) {\n\n    const icons = {\n      navigation: \"M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z\",\n      place: \"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\",\n      straight: \"11,6.83 9.41,8.41 8,7 12,3 16,7 14.59,8.41 13,6.83 13,21 11,21\",\n      turn_slight_right: \"M12.34,6V4H18v5.66h-2V7.41l-5,5V20H9v-7.58c0-0.53,0.21-1.04,0.59-1.41l5-5H12.34z\",\n      turn_right: \"M17.17,11l-1.59,1.59L17,14l4-4l-4-4l-1.41,1.41L17.17,9L9,9c-1.1,0-2,0.9-2,2v9h2v-9L17.17,11z\",\n      u_turn_right: \"M6,9v12h2V9c0-2.21,1.79-4,4-4s4,1.79,4,4v4.17l-1.59-1.59L13,13l4,4l4-4l-1.41-1.41L18,13.17V9c0-3.31-2.69-6-6-6 S6,5.69,6,9z\",\n      u_turn_left: \"M18,9v12h-2V9c0-2.21-1.79-4-4-4S8,6.79,8,9v4.17l1.59-1.59L11,13l-4,4l-4-4l1.41-1.41L6,13.17V9c0-3.31,2.69-6,6-6 S18,5.69,18,9z\",\n      turn_left: \"M6.83,11l1.59,1.59L7,14l-4-4l4-4l1.41,1.41L6.83,9L15,9c1.1,0,2,0.9,2,2v9h-2v-9L6.83,11z\",\n      turn_slight_left: \"M11.66,6V4H6v5.66h2V7.41l5,5V20h2v-7.58c0-0.53-0.21-1.04-0.59-1.41l-5-5H11.66z\",\n      merge: \"M6.41,21L5,19.59l4.83-4.83c0.75-0.75,1.17-1.77,1.17-2.83v-5.1L9.41,8.41L8,7l4-4l4,4l-1.41,1.41L13,6.83v5.1 c0,1.06,0.42,2.08,1.17,2.83L19,19.59L17.59,21L12,15.41L6.41,21z\",\n      directions_boat: \"M20 21c-1.39 0-2.78-.47-4-1.32-2.44 1.71-5.56 1.71-8 0C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99 2.52 1.29 5.48 1.29 8 0 1.26.65 2.62.99 4 .99h2v-2h-2zM3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.89-6.68c.08-.26.06-.54-.06-.78s-.34-.42-.6-.5L20 10.62V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42c-.26.08-.48.26-.6.5s-.15.52-.06.78L3.95 19zM6 6h12v3.97L12 8 6 9.97V6z\",\n      ramp_right: \"M11,21h2V6.83l1.59,1.59L16,7l-4-4L8,7l1.41,1.41L11,6.83V9c0,4.27-4.03,7.13-6,8.27l1.46,1.46 C8.37,17.56,9.9,16.19,11,14.7L11,21z\",\n      ramp_left: \"M13,21h-2V6.83L9.41,8.41L8,7l4-4l4,4l-1.41,1.41L13,6.83V9c0,4.27,4.03,7.13,6,8.27l-1.46,1.46 c-1.91-1.16-3.44-2.53-4.54-4.02L13,21z\",\n      roundabout: \"M 21.896702,16.807279 c -0.616921,-1.781843 -1.233842,-3.563685 -1.850763,-5.345528 -1.781843,0.616921 -3.563686,1.233841 -5.345529,1.850762 0.899536,0.436846 1.799073,0.873692 2.698609,1.310538 -1.11625,2.404166 -3.955561,3.812593 -6.545968,3.267515 -0.12287,0.655398 -0.245741,1.310795 -0.368611,1.966193 3.392477,0.709283 7.107172,-1.090998 8.636322,-4.204987 0.180625,-0.304366 0.638154,0.204973 0.942889,0.265315 0.611017,0.296731 1.222034,0.593461 1.833051,0.890192 z M 3.0679937,18.424041 c 1.8609148,0.304223 3.7218297,0.608445 5.5827445,0.912668 C 8.9549611,17.475794 9.2591839,15.61488 9.5634068,13.753965 8.7514802,14.337724 7.9395535,14.921484 7.1276269,15.505243 5.5430465,13.380359 5.6535648,10.212845 7.3644605,8.1929056 6.8462477,7.7732646 6.328035,7.3536235 5.8098222,6.9339825 3.573199,9.5815282 3.3913242,13.70547 5.4041365,16.531034 5.5860587,16.834627 4.9204584,16.995049 4.7225152,17.234472 4.171008,17.630995 3.6195009,18.027518 3.0679937,18.424041 Z M 11.169997,1.0313754 C 9.941056,2.4615011 8.712115,3.8916268 7.483174,5.3217525 c 1.4301257,1.228941 2.860251,2.4578821 4.290377,3.6868231 -0.07544,-0.99715 -0.150889,-1.9943 -0.226333,-2.99145 2.63923,-0.2459573 5.285628,1.4981573 6.118854,4.0107364 C 18.294206,9.8040536 18.922341,9.5802452 19.550475,9.3564368 18.455312,6.0681852 15.02962,3.7650111 11.569211,4.0115874 11.215296,4.0087627 11.425023,3.3570159 11.323735,3.0633399 11.272489,2.3860184 11.221243,1.7086969 11.169997,1.0313754 Z\"\n    }\n\n    var svgElement = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", 'svg');\n    svgElement.setAttribute('viewBox', \"0 0 24 24\");\n    svgElement.setAttribute('height', \"24\");\n\n    if (icons[icon].startsWith(\"M\")) {\n      var iconElement = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", 'path');\n      iconElement.setAttribute(\"d\", icons[icon]);\n      iconElement.setAttribute('fill', 'currentColor');\n      svgElement.appendChild(iconElement);\n    } else {\n      var iconElement = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", 'polygon');\n      iconElement.setAttribute(\"points\", icons[icon]);\n      iconElement.setAttribute('fill', 'currentColor');\n      svgElement.appendChild(iconElement);\n    }\n\n    element.appendChild(svgElement);\n  }\n\n\n  function toPrettyTime(seconds) {\n    if (seconds === 0) {\n      return '0'\n    }\n\n    if (seconds < 120) {\n      return seconds + 's';\n    }\n\n    let hours = Math.floor(seconds \/ 3600);\n    let minutes = Math.floor((seconds - (hours * 3600)) \/ 60);\n\n\n    if (!hours) {\n      return minutes + 'min';\n    }\n\n    if (!minutes) {\n      return hours + 'h';\n    }\n\n    return hours + 'h ' + minutes + 'm';\n  }\n\n  function toPrettyDistance(value, isMetric) {\n    if (!isMetric) {\n      \n      if (value >= 0.1) {\n        return `${value.toFixed(1)}mi`\n      }\n\n      return `${Math.round(value * 5280)}feet`\n    }\n\n    if (value > 10000) {\n      return `${(value \/ 1000).toFixed(1)}km`\n    }\n\n    if (value > 5000) {\n      return `${(value \/ 1000).toFixed(1)}km`\n    }\n\n    return `${Math.round(value)}m`\n  }\n<\/script>\n\n\n\n<script>\n  document.getElementById('calculate-button').onclick = () => {\n    const urlParams = new URLSearchParams(window.location.search);\n    const currentOptions = routeDirections.getOptions();\n    if (currentOptions.waypoints && currentOptions.waypoints.length >= 2 && currentOptions.waypoints[0].address && currentOptions.waypoints[1].address) {\n     urlParams.set('fromh', encodeURIComponent(currentOptions.waypoints[0].address));\n     urlParams.set('toh', encodeURIComponent(currentOptions.waypoints[1].address));\n    }\n\n    urlParams.set('howh', currentOptions.mode);\n    urlParams.set('metric', currentOptions.units);\n    const avoids = [];\n    if (currentOptions.avoidHighways) {\n      avoids.push(\"highways\");\n    }\n\n    if (currentOptions.avoidTolls) {\n      avoids.push(\"tolls\");\n    }\n\n    if (currentOptions.avoidFerries) {\n      avoids.push(\"ferries\");\n    }\n\n    if (avoids.length) {\n      urlParams.set('avoid', encodeURIComponent(avoids.join(\",\")));\n    }\n\n    if (history.pushState) {\n      const url = window.location.protocol + \"\/\/\" + window.location.host + window.location.pathname + '?' + urlParams.toString();\n      window.history.pushState({path: url},'', url);\n    }\n\n    routeDirections.calculate();\n  };\n<\/script>\n\n\n\n<div id=\"geoapify-map\"><\/div>\n\n\n\n<style>\n\n.geoapify-route-directions-mode-button {\ncolor: #ffffff;\n}\n\n.geoapify-route-directions-options-line {\ndisplay: block;\nmargin-top: 10px;\n}\n\n.geoapify-route-directions-options-label {\ndisplay: block;\nfont-size: 14px;\ncolor: #595858;\n}\n\n.geoapify-route-directions-mode-button.active {\nbackground: none;\n}\n\n.geoapify-route-directions-mode-button {\ncolor: color: #ffffff;\ndisplay: flow-root;\nmargin: 3px 8px 8px 8px;\n}\n\n.geoapify-route-directions-add-destination .icon {\ncolor: #cccc;\n}\n\n.geoapify-route-directions-add-destination .text {\ncolor: #ccc;\n}\n\n.geoapify-route-directions-options-checkbox .text, .geoapify-route-directions-options-radiobutton .text {\nalign-items: center;\nmargin: 0px 15px 0px 5px;\ncolor: #595858;\n}\n\n.geoapify-route-directions-switch-waypoints {\ncolor: #ff6d6d;;\ncursor: pointer;\n}\n\n.geoapify-route-directions-generate-button {\nbackground: #ff6d6d;\nwidth: 30%;\nfont-weight: bold;\n}\n\n.geoapify-route-directions-generate-button:hover {\ncolor: #f2f2f2;\nbackground-color: #7a7cec;\n}\n\n.direction-instruction-icon {\ncolor: #ff6d6d;\n}\n\n.geoapify-route-directions-mode-button.active {\ncolor: #ff6d6d;\n}\n\n.geoapify-route-directions-mode-button {\ncolor: #888;\n\n.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .one-container .container, .separate-containers .paging-navigation, .inside-page-header {\ncolor: #222222;\n}\n\n.geoapify-close-button {\n  color: #ffcb36;\n}\n\n.geoapify-close-button:hover {\n  color: #ff6d6d;\n}\n\n.geoapify-route-directions-message.error {\n  font-size: initial;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  font-weight: bold;\n}\n\n.geoapify-route-directions-options-container {\nmargin-left: 11px;\n}\n\n    .direction-waypoints {\n      font-size: 18px;\n      font-weight: 600;\n      color: #ffffff;\n      margin-bottom: 10px;\n      margin-top: 10px;\n    }\n\n    .direction-waypoints.smaller {\n      font-size: 16px;\n      font-weight: 500;\n    }\n\n    .direction-waypoints .direction-waypoints-from-to{\n      font-size: 12px;\n      font-weight: 400;\n    }\n\n    .direction-instruction {\n      display: flex;\n      flex-direction: row;\n      margin: 10px 0;\n      color: #ffffff;\n    }\n\n    .direction-instruction-icon {\n      min-width: 40px;\n      max-width: 40px;\n      display: flex;\n    }\n<\/style>\n\n\n\n<br>\n<div id=\"geoapify-instructions\"><\/div>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Google provides a <a href=\"https:\/\/www.drivingdirections.net\" target=\"_blank\" rel=\"noreferrer noopener\">route planner<\/a> service by clicking &#8220;Get Directions&#8221; on this page. With this tool, Google Maps users can plan their routes to up to four modes of transportation, depending on driving, public transit, walking, and bicycling.<\/p>\n\n\n\n<p>Use this tool on the left side of the map to get accurate <em>directions<\/em> between any points using <em>Google Maps<\/em>. Just enter a city, a zip code, or an address above in both the From (A) and the To (B) address text fields. Click <strong>the <\/strong>Get Directions button, and the map will display the best route you need to take to get from your starting point to your desired destination. The turn-by-turn directions will also be displayed near Google Maps and contain the distance and approximate time it will take to get from one location to another.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Get FREE Driving Directions between any point shown on \u2122 or Bing Maps\u2122 and follow the turn-by-turn directions displayed near their interactive map. Are you looking for traffic information? Click here for a Google traffic conditions map. Google Maps is a free desktop\/mobile web mapping service developed by Google. Google Maps offers dynamic satellite imagery &#8230; <a title=\"Google Driving Directions\" class=\"read-more\" href=\"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/\" aria-label=\"Read more about Google Driving Directions\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-235","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Google Driving Directions - Search Driving Directions<\/title>\n<meta name=\"description\" content=\"Get FREE Driving Directions between any point shown on Google Maps\u2122 and follow the turn by turn directions that will be displayed near the interactive map.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google Driving Directions - Search Driving Directions\" \/>\n<meta property=\"og:description\" content=\"Get FREE Driving Directions between any point shown on Google Maps\u2122 and follow the turn by turn directions that will be displayed near the interactive map.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/\" \/>\n<meta property=\"og:site_name\" content=\"Search Driving Directions\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-15T12:55:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/google-route-planner\\\/\",\"url\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/google-route-planner\\\/\",\"name\":\"Google Driving Directions - Search Driving Directions\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/#website\"},\"datePublished\":\"2017-03-09T15:44:40+00:00\",\"dateModified\":\"2024-04-15T12:55:33+00:00\",\"description\":\"Get FREE Driving Directions between any point shown on Google Maps\u2122 and follow the turn by turn directions that will be displayed near the interactive map.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/google-route-planner\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/google-route-planner\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/google-route-planner\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google Driving Directions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/#website\",\"url\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/\",\"name\":\"Search Driving Directions\",\"description\":\"Route Planner, Maps &amp; Country Facts\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/#organization\",\"name\":\"Index Web Solutions Ltd.\",\"url\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/navigation-pin.png\",\"contentUrl\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/navigation-pin.png\",\"width\":64,\"height\":64,\"caption\":\"Index Web Solutions Ltd.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.searchdrivingdirections.com\\\/maps\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Google Driving Directions - Search Driving Directions","description":"Get FREE Driving Directions between any point shown on Google Maps\u2122 and follow the turn by turn directions that will be displayed near the interactive map.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/","og_locale":"en_US","og_type":"article","og_title":"Google Driving Directions - Search Driving Directions","og_description":"Get FREE Driving Directions between any point shown on Google Maps\u2122 and follow the turn by turn directions that will be displayed near the interactive map.","og_url":"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/","og_site_name":"Search Driving Directions","article_modified_time":"2024-04-15T12:55:33+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/","url":"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/","name":"Google Driving Directions - Search Driving Directions","isPartOf":{"@id":"https:\/\/www.searchdrivingdirections.com\/maps\/#website"},"datePublished":"2017-03-09T15:44:40+00:00","dateModified":"2024-04-15T12:55:33+00:00","description":"Get FREE Driving Directions between any point shown on Google Maps\u2122 and follow the turn by turn directions that will be displayed near the interactive map.","breadcrumb":{"@id":"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.searchdrivingdirections.com\/maps\/google-route-planner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.searchdrivingdirections.com\/maps\/"},{"@type":"ListItem","position":2,"name":"Google Driving Directions"}]},{"@type":"WebSite","@id":"https:\/\/www.searchdrivingdirections.com\/maps\/#website","url":"https:\/\/www.searchdrivingdirections.com\/maps\/","name":"Search Driving Directions","description":"Route Planner, Maps &amp; Country Facts","publisher":{"@id":"https:\/\/www.searchdrivingdirections.com\/maps\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.searchdrivingdirections.com\/maps\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.searchdrivingdirections.com\/maps\/#organization","name":"Index Web Solutions Ltd.","url":"https:\/\/www.searchdrivingdirections.com\/maps\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.searchdrivingdirections.com\/maps\/#\/schema\/logo\/image\/","url":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-content\/uploads\/2024\/04\/navigation-pin.png","contentUrl":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-content\/uploads\/2024\/04\/navigation-pin.png","width":64,"height":64,"caption":"Index Web Solutions Ltd."},"image":{"@id":"https:\/\/www.searchdrivingdirections.com\/maps\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-json\/wp\/v2\/pages\/235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":1,"href":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-json\/wp\/v2\/pages\/235\/revisions"}],"predecessor-version":[{"id":15315,"href":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-json\/wp\/v2\/pages\/235\/revisions\/15315"}],"wp:attachment":[{"href":"https:\/\/www.searchdrivingdirections.com\/maps\/wp-json\/wp\/v2\/media?parent=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}