{"id":3504,"date":"2025-09-20T01:31:02","date_gmt":"2025-09-20T04:31:02","guid":{"rendered":"https:\/\/tprentacar.com\/?page_id=3504"},"modified":"2025-09-20T03:30:50","modified_gmt":"2025-09-20T06:30:50","slug":"rutas-full-patagonia","status":"publish","type":"page","link":"https:\/\/tprentacar.com\/en\/rutas-full-patagonia\/","title":{"rendered":"Full Patagonia Routes"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3504\" class=\"elementor elementor-3504\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62349bf e-flex e-con-boxed e-con e-parent\" data-id=\"62349bf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0612169 elementor-widget elementor-widget-html\" data-id=\"0612169\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"utf-8\"\/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\/>\n<title>Calculadora de Rutas Patagonia<\/title>\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\"\/>\n<style>\n  body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,\"Helvetica Neue\",Arial}\n  .wrap{max-width:1200px;margin:auto;padding:10px}\n  .panel{display:grid;gap:10px;grid-template-columns:380px 1fr;}\n  @media(max-width:980px){.panel{grid-template-columns:1fr} #map{height:56vh}}\n  .card{border:1px solid #e5e7eb;border-radius:14px;padding:12px;box-shadow:0 1px 8px rgba(0,0,0,.05)}\n  .row{display:grid;grid-template-columns:1fr 1fr;gap:8px}\n  label{font-size:12px;color:#334155}\n  select,input{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:10px;font-size:14px}\n  button{padding:10px 14px;border:0;border-radius:12px;background:#0ea5e9;color:#fff;font-weight:600;cursor:pointer}\n  button.ghost{background:#fff;color:#0f172a;border:1px solid #e2e8f0}\n  #map{height:68vh;border-radius:14px}\n  .stat{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed #e2e8f0}\n  .note{font-size:12px;color:#475569}\n  #error{color:#dc2626;font-size:13px;margin-top:6px;display:none}\n  ul.tramos{margin:8px 0 0 0;padding:0;list-style:none;font-size:12px;color:#334155}\n  ul.tramos li{margin:3px 0;padding-left:16px;position:relative}\n  ul.tramos li::before{content:\"\u2022\";position:absolute;left:0;color:#0ea5e9}\n  .legend{background:#fff;padding:8px;border-radius:6px;font-size:12px;line-height:1.4;box-shadow:0 1px 8px rgba(0,0,0,.2)}\n  .legend div{margin-bottom:4px;display:flex;align-items:center}\n  .legend span{margin-left:6px}\n  .color-box{width:16px;height:4px;display:inline-block;margin-right:6px;border-radius:2px}\n<\/style>\n<\/head>\n<body>\n<div class=\"wrap\">\n  <div class=\"panel\">\n    <div class=\"card\">\n      <h2>Calculadora de Rutas \u2014 Patagonia<\/h2>\n\n      <!-- Tipo de ruta -->\n      <label>Tipo de Ruta<\/label>\n      <select id=\"tipoRuta\">\n        <option value=\"chile\">Carretera Austral (S\u00f3lo Chile)<\/option>\n        <option value=\"mixta\">Ruta 40 + Carretera Austral (Argentina + Chile)<\/option>\n      <\/select>\n\n      <!-- Origen y destino -->\n      <div class=\"row\" style=\"margin-top:8px\">\n        <div>\n          <label>Origen<\/label>\n          <select id=\"origen\"><\/select>\n        <\/div>\n        <div>\n          <label>Destino<\/label>\n          <select id=\"destino\"><\/select>\n        <\/div>\n      <\/div>\n      <div id=\"error\"><\/div>\n\n      <!-- Par\u00e1metros -->\n      <div class=\"row\" style=\"margin-top:8px\">\n        <div>\n          <label>Precio combustible (CLP\/L)<\/label>\n          <input id=\"precio\" type=\"number\" value=\"1500\"\/>\n        <\/div>\n        <div>\n          <label>Rendimiento (km\/L)<\/label>\n          <input id=\"rend\" type=\"number\" value=\"10\"\/>\n        <\/div>\n      <\/div>\n\n      <!-- Botones -->\n      <div class=\"row\" style=\"margin-top:8px\">\n        <button id=\"calcular\">Calcular<\/button>\n        <button id=\"limpiar\" class=\"ghost\">Limpiar<\/button>\n      <\/div>\n\n      <!-- Resultados -->\n      <div id=\"stats\" class=\"card\" style=\"margin-top:10px\">\n        <div class=\"stat\"><span>Distancia total<\/span><strong id=\"dist\">\u2014<\/strong><\/div>\n        <div class=\"stat\"><span>Tiempo total<\/span><strong id=\"tiempo\">\u2014<\/strong><\/div>\n        <div class=\"stat\"><span>Litros<\/span><strong id=\"litros\">\u2014<\/strong><\/div>\n        <div class=\"stat\"><span>Costo<\/span><strong id=\"costo\">\u2014<\/strong><\/div>\n        <div class=\"stat\"><span>Ferry<\/span><strong id=\"ferry\">\u2014<\/strong><\/div>\n        <div class=\"note\" id=\"obs\"><\/div>\n        <ul class=\"tramos\" id=\"tramos\"><\/ul>\n      <\/div>\n    <\/div>\n\n    <div id=\"map\" class=\"card\"><\/div>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\"><\/script>\n<script>\n\/* ==== Cat\u00e1logos de lugares ==== *\/\nconst lugaresChile={\n  \"Punta Arenas\":{lat:-53.163,lon:-70.917},\n  \"Puerto Natales\":{lat:-51.730,lon:-72.505},\n  \"Puerto Yungay\":{lat:-48.239,lon:-73.083},\n  \"Cochrane\":{lat:-47.254,lon:-72.576},\n  \"Coyhaique\":{lat:-45.571,lon:-72.068},\n  \"Puyuhuapi\":{lat:-44.343,lon:-72.565},\n  \"La Junta\":{lat:-43.973,lon:-72.405},\n  \"Chait\u00e9n\":{lat:-42.919,lon:-72.708},\n  \"Caleta Gonzalo\":{lat:-42.56128140882079,lon:-72.60450850539691},\n  \"Hornopir\u00e9n\":{lat:-41.96620753297239,lon:-72.47194857132585},\n  \"Contao\":{lat:-41.800,lon:-72.700},\n  \"Cocham\u00f3\":{lat:-41.494,lon:-72.306},\n  \"Puerto Varas\":{lat:-41.319,lon:-72.985},\n  \"Puerto Montt\":{lat:-41.469,lon:-72.896},\n  \"Osorno\":{lat:-40.574,lon:-73.133}\n};\nconst lugaresMixta={\n  ...lugaresChile,\n  \"Cerro Castillo (CL)\":{lat:-51.253,lon:-72.343},\n  \"Punta Esperanza\":{lat:-51.03037524975389,lon:-70.77960583248152}, \/* actualizado *\/\n  \"El Calafate\":{lat:-50.338,lon:-72.264},\n  \"El Chalt\u00e9n\":{lat:-49.331,lon:-72.886},\n  \"Perito Moreno\":{lat:-46.593,lon:-70.929},\n  \"Los Antiguos\":{lat:-46.550,lon:-71.633},\n  \"Chile Chico\":{lat:-46.541,lon:-71.729},\n  \"Puerto Guadal\":{lat:-46.885,lon:-72.678},\n  \"Ushuaia\":{lat:-54.806,lon:-68.309}\n};\nlet lugares=lugaresChile;\n\n\/* ==== Aliases (normalizaci\u00f3n de nombres) ==== *\/\nconst aliases={\n  \"Esperanza\":\"Punta Esperanza\",\n  \"Pta Esperanza\":\"Punta Esperanza\",\n  \"Pta. Esperanza\":\"Punta Esperanza\",\n  \"Punta Esperanza (Ferry)\":\"Punta Esperanza\"\n};\nfunction normalizeName(name){ return aliases[name] || name; }\n\n\/* ==== Espinazo Carretera Austral (S\u00f3lo Chile) S\u2192N ==== *\/\nconst backboneChile=[\n  \"Punta Arenas\",\"Puerto Natales\",\"Puerto Yungay\",\"Cochrane\",\"Coyhaique\",\"Puyuhuapi\",\"La Junta\",\n  \"Chait\u00e9n\",\"Caleta Gonzalo\",\"Hornopir\u00e9n\",\"Contao\",\"Cocham\u00f3\",\"Puerto Varas\",\"Puerto Montt\",\"Osorno\"\n];\n\n\/* ==== Espinazo Ruta 40 + Carretera Austral (Mixta) S\u2192N\n   Regla: SIEMPRE incluye Los Antiguos + Chile Chico ==== *\/\nconst backboneMixta=[\n  \"Ushuaia\",\"Punta Arenas\",\"Cerro Castillo (CL)\",\"Punta Esperanza\",\"El Calafate\",\"El Chalt\u00e9n\",\n  \"Perito Moreno\",\"Los Antiguos\",\"Chile Chico\",\"Puerto Guadal\",\n  \"Cochrane\",\"Coyhaique\",\"Puyuhuapi\",\"La Junta\",\"Chait\u00e9n\",\"Caleta Gonzalo\",\n  \"Hornopir\u00e9n\",\"Contao\",\"Cocham\u00f3\",\"Puerto Varas\",\"Puerto Montt\",\"Osorno\"\n];\n\n\/* ==== Iconos ==== *\/\nconst ferryIcon=L.divIcon({className:\"\",html:\"\ud83d\udef3\ufe0f\",iconSize:[20,20]});\nconst cityIcon =L.divIcon({className:\"\",html:\"\ud83d\udea9\",iconSize:[18,18]});\n\n\/* ==== UI ==== *\/\nconst $tipoRuta=document.getElementById(\"tipoRuta\");\nconst $origen=document.getElementById(\"origen\");\nconst $destino=document.getElementById(\"destino\");\nconst $error=document.getElementById(\"error\");\n\nfunction poblarSelects(){\n  $origen.innerHTML=\"\";$destino.innerHTML=\"\";\n  Object.keys(lugares).forEach(n=>{\n    let o1=document.createElement(\"option\");o1.value=n;o1.textContent=n;$origen.appendChild(o1);\n    let o2=document.createElement(\"option\");o2.value=n;o2.textContent=n;$destino.appendChild(o2);\n  });\n  $origen.value=lugares===lugaresChile?\"Punta Arenas\":\"Ushuaia\";\n  $destino.value=lugares===lugaresChile?\"Puerto Montt\":\"Osorno\";\n}\n$tipoRuta.addEventListener(\"change\",()=>{\n  lugares=$tipoRuta.value===\"chile\"?lugaresChile:lugaresMixta;\n  poblarSelects();\n  $error.style.display=\"none\";\n});\npoblarSelects();\n\n\/* ==== Mapa ==== *\/\nconst map=L.map(\"map\").setView([-50,-72],5);\nL.tileLayer(\"https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png\",{maxZoom:18}).addTo(map);\nlet routeLayer=null;\nfunction coordStr(pt){return `${pt.lon},${pt.lat}`}\n\n\/* ==== Ferries (oficiales que usamos) ==== *\/\nfunction isPair(a,b,x,y){return (a===x&&b===y)||(a===y&&b===x);}\nfunction ferryInfo(a,b){\n  if(isPair(a,b,\"Puerto Natales\",\"Puerto Yungay\")) return {km:800,hrs:36,label:\"Ferry Natales \u2194 Yungay\"};\n  if(isPair(a,b,\"Caleta Gonzalo\",\"Hornopir\u00e9n\"))   return {km:80, hrs:9, label:\"Ferry Caleta Gonzalo \u2194 Hornopir\u00e9n\"};\n  return null; \/\/ No ferry en Punta Esperanza\n}\n\n\/* ==== Trazos ==== *\/\nasync function tramoOSRM(p1,p2,color,label,listRef,accum){\n  const url=`https:\/\/router.project-osrm.org\/route\/v1\/driving\/${coordStr(lugares[p1])};${coordStr(lugares[p2])}?overview=full&geometries=geojson`;\n  const data=await (await fetch(url)).json();\n  const seg=data.routes?.[0];\n  if(!seg) throw new Error(\"OSRM sin respuesta\");\n  L.geoJSON(seg.geometry,{style:{color,weight:5}}).addTo(routeLayer);\n  const dist=seg.distance\/1000, time=seg.duration\/3600;\n  accum.dist+=dist; accum.time+=time;\n  listRef.push(`${label}: ${dist.toFixed(0)} km \/ ${time.toFixed(1)} h`);\n  L.marker([lugares[p1].lat,lugares[p1].lon],{icon:cityIcon}).addTo(routeLayer).bindTooltip(p1);\n  L.marker([lugares[p2].lat,lugares[p2].lon],{icon:cityIcon}).addTo(routeLayer).bindTooltip(p2);\n}\nfunction tramoFerry(p1,p2,f,listRef,accum){\n  L.polyline([[lugares[p1].lat,lugares[p1].lon],[lugares[p2].lat,lugares[p2].lon]],\n             {color:\"#2563eb\",weight:4,dashArray:\"6,6\"}).addTo(routeLayer);\n  accum.dist+=f.km; accum.time+=f.hrs;\n  listRef.push(`${f.label}: ${f.km} km \/ ${f.hrs} h`);\n  L.marker([lugares[p1].lat,lugares[p1].lon],{icon:ferryIcon}).addTo(routeLayer).bindTooltip(p1);\n  L.marker([lugares[p2].lat,lugares[p2].lon],{icon:ferryIcon}).addTo(routeLayer).bindTooltip(p2);\n}\n\n\/* ==== Helpers de camino por espinazo ==== *\/\nfunction construirRuta(backbone, origen, destino){\n  const i0=backbone.indexOf(origen);\n  const i1=backbone.indexOf(destino);\n  if(i0===-1||i1===-1) return null;\n  const paso=i0<=i1?+1:-1;\n  const path=[];\n  for(let i=i0;i!==i1;i+=paso) path.push(backbone[i]);\n  path.push(backbone[i1]);\n  return path;\n}\n\n\/* ==== Rutas predefinidas (S\u00f3lo Chile) ==== *\/\nasync function rutaSoloChile_PA_PM(listaTramos,totals){\n  await tramoOSRM(\"Punta Arenas\",\"Puerto Natales\",\"#16a34a\",\"Punta Arenas \u2192 Puerto Natales\",listaTramos,totals);\n  tramoFerry(\"Puerto Natales\",\"Puerto Yungay\",{km:800,hrs:36,label:\"Ferry Natales \u2192 Yungay\"},listaTramos,totals);\n  await tramoOSRM(\"Puerto Yungay\",\"Cochrane\",\"#16a34a\",\"Puerto Yungay \u2192 Cochrane\",listaTramos,totals);\n  await tramoOSRM(\"Cochrane\",\"Coyhaique\",\"#16a34a\",\"Cochrane \u2192 Coyhaique\",listaTramos,totals);\n  await tramoOSRM(\"Coyhaique\",\"Puyuhuapi\",\"#16a34a\",\"Coyhaique \u2192 Puyuhuapi\",listaTramos,totals);\n  await tramoOSRM(\"Puyuhuapi\",\"La Junta\",\"#16a34a\",\"Puyuhuapi \u2192 La Junta\",listaTramos,totals);\n  await tramoOSRM(\"La Junta\",\"Chait\u00e9n\",\"#16a34a\",\"La Junta \u2192 Chait\u00e9n\",listaTramos,totals);\n  await tramoOSRM(\"Chait\u00e9n\",\"Caleta Gonzalo\",\"#16a34a\",\"Chait\u00e9n \u2192 Caleta Gonzalo\",listaTramos,totals);\n  tramoFerry(\"Caleta Gonzalo\",\"Hornopir\u00e9n\",{km:80,hrs:9,label:\"Ferry Caleta Gonzalo \u2192 Hornopir\u00e9n\"},listaTramos,totals);\n  await tramoOSRM(\"Hornopir\u00e9n\",\"Contao\",\"#16a34a\",\"Hornopir\u00e9n \u2192 Contao\",listaTramos,totals);\n  await tramoOSRM(\"Contao\",\"Cocham\u00f3\",\"#16a34a\",\"Contao \u2192 Cocham\u00f3\",listaTramos,totals);\n  await tramoOSRM(\"Cocham\u00f3\",\"Puerto Varas\",\"#16a34a\",\"Cocham\u00f3 \u2192 Puerto Varas\",listaTramos,totals);\n  await tramoOSRM(\"Puerto Varas\",\"Puerto Montt\",\"#16a34a\",\"Puerto Varas \u2192 Puerto Montt\",listaTramos,totals);\n}\nasync function rutaSoloChile_PM_Chaiten(listaTramos,totals,dir=\"PM-CHT\"){\n  if(dir===\"PM-CHT\"){\n    await tramoOSRM(\"Puerto Montt\",\"Puerto Varas\",\"#16a34a\",\"Puerto Montt \u2192 Puerto Varas\",listaTramos,totals);\n    await tramoOSRM(\"Puerto Varas\",\"Cocham\u00f3\",\"#16a34a\",\"Puerto Varas \u2192 Cocham\u00f3\",listaTramos,totals);\n    await tramoOSRM(\"Cocham\u00f3\",\"Hornopir\u00e9n\",\"#16a34a\",\"Cocham\u00f3 \u2192 Hornopir\u00e9n\",listaTramos,totals);\n    tramoFerry(\"Hornopir\u00e9n\",\"Caleta Gonzalo\",{km:80,hrs:9,label:\"Ferry Hornopir\u00e9n \u2192 Caleta Gonzalo\"},listaTramos,totals);\n    await tramoOSRM(\"Caleta Gonzalo\",\"Chait\u00e9n\",\"#16a34a\",\"Caleta Gonzalo \u2192 Chait\u00e9n\",listaTramos,totals);\n  }else{\n    await tramoOSRM(\"Chait\u00e9n\",\"Caleta Gonzalo\",\"#16a34a\",\"Chait\u00e9n \u2192 Caleta Gonzalo\",listaTramos,totals);\n    tramoFerry(\"Caleta Gonzalo\",\"Hornopir\u00e9n\",{km:80,hrs:9,label:\"Ferry Caleta Gonzalo \u2192 Hornopir\u00e9n\"},listaTramos,totals);\n    await tramoOSRM(\"Hornopir\u00e9n\",\"Cocham\u00f3\",\"#16a34a\",\"Hornopir\u00e9n \u2192 Cocham\u00f3\",listaTramos,totals);\n    await tramoOSRM(\"Cocham\u00f3\",\"Puerto Varas\",\"#16a34a\",\"Cocham\u00f3 \u2192 Puerto Varas\",listaTramos,totals);\n    await tramoOSRM(\"Puerto Varas\",\"Puerto Montt\",\"#16a34a\",\"Puerto Varas \u2192 Puerto Montt\",listaTramos,totals);\n  }\n}\n\n\/* ==== Trazar ==== *\/\nasync function trazarRuta(){\n  $error.style.display=\"none\";\n  const tipo=$tipoRuta.value;\n  \/\/ Normalizar nombres por si en el futuro permitimos input libre o llegan desde URL\n  const origen=normalizeName(document.getElementById(\"origen\").value);\n  const destino=normalizeName(document.getElementById(\"destino\").value);\n\n  if(routeLayer){map.removeLayer(routeLayer);}\n  routeLayer=L.layerGroup().addTo(map);\n\n  let totals={dist:0,time:0}, listaTramos=[], incluyeFerry=false;\n\n  try{\n    if(tipo===\"chile\"){\n      \/\/ Bloqueo absoluto de nodos argentinos o mixtos\n      const bloqueados=[\"El Calafate\",\"El Chalt\u00e9n\",\"Perito Moreno\",\"Los Antiguos\",\"Chile Chico\",\"Puerto Guadal\",\"Punta Esperanza\",\"Ushuaia\",\"Cerro Castillo (CL)\"];\n      if(bloqueados.includes(origen)||bloqueados.includes(destino)){\n        $error.textContent=\"Error: en 'S\u00f3lo Chile' no se permiten tramos por Argentina ni nodos de la Ruta 40.\";\n        $error.style.display=\"block\";\n        return;\n      }\n\n      \/\/ Casos especiales y espinazo\n      if( (origen===\"Punta Arenas\"&&destino===\"Puerto Montt\") || (origen===\"Puerto Montt\"&&destino===\"Punta Arenas\") ){\n        await rutaSoloChile_PA_PM(listaTramos,totals); incluyeFerry=true;\n      } else if(origen===\"Puerto Montt\"&&destino===\"Chait\u00e9n\"){\n        await rutaSoloChile_PM_Chaiten(listaTramos,totals,\"PM-CHT\"); incluyeFerry=true;\n      } else if(origen===\"Chait\u00e9n\"&&destino===\"Puerto Montt\"){\n        await rutaSoloChile_PM_Chaiten(listaTramos,totals,\"CHT-PM\"); incluyeFerry=true;\n      } else {\n        const path=construirRuta(backboneChile,origen,destino);\n        if(!path){ throw new Error(\"Par no soportado en espinazo Chile\"); }\n        for(let i=0;i<path.length-1;i++){\n          const A=path[i], B=path[i+1];\n          const f=ferryInfo(A,B);\n          if(f){ tramoFerry(A,B,f,listaTramos,totals); incluyeFerry=true; }\n          else { await tramoOSRM(A,B,\"#16a34a\",`${A} \u2192 ${B}`,listaTramos,totals); }\n        }\n      }\n      document.getElementById(\"obs\").textContent=\"Ruta Carretera Austral (S\u00f3lo Chile). Nunca cruza a Argentina.\";\n    } else {\n      \/\/ MODO MIXTO: espinazo RN40+RA (obligatorio Los Antiguos + Chile Chico)\n      const path=construirRuta(backboneMixta,origen,destino);\n      if(!path){\n        $error.textContent=\"Selecciona ciudades del corredor RN40 + Carretera Austral.\";\n        $error.style.display=\"block\";\n        return;\n      }\n      for(let i=0;i<path.length-1;i++){\n        const A=path[i], B=path[i+1];\n        const f=ferryInfo(A,B);\n        if(f){ tramoFerry(A,B,f,listaTramos,totals); incluyeFerry=true; }\n        else { await tramoOSRM(A,B,\"#dc2626\",`${A} \u2192 ${B}`,listaTramos,totals); }\n      }\n      if(path.includes(\"Los Antiguos\") && path.includes(\"Chile Chico\")){\n        document.getElementById(\"obs\").textContent=\"Ruta 40 + Carretera Austral: incluye obligatoriamente Los Antiguos y Chile Chico en el cruce.\";\n      }else{\n        document.getElementById(\"obs\").textContent=\"Ruta 40 + Carretera Austral (mixta).\";\n      }\n    }\n  }catch(e){\n    $error.textContent=\"No se pudo trazar uno de los tramos. Intenta nuevamente.\";\n    $error.style.display=\"block\";\n  }\n\n  \/\/ Totales\n  const rend=parseFloat(document.getElementById(\"rend\").value)||10;\n  const precio=parseFloat(document.getElementById(\"precio\").value)||1500;\n  const litros=totals.dist\/rend, costo=litros*precio;\n  document.getElementById(\"dist\").textContent=`${totals.dist.toFixed(1)} km`;\n  const h=Math.floor(totals.time), m=Math.round((totals.time%1)*60);\n  document.getElementById(\"tiempo\").textContent=`${h} h ${m} min`;\n  document.getElementById(\"litros\").textContent=`${litros.toFixed(1)} L`;\n  document.getElementById(\"costo\").textContent=new Intl.NumberFormat(\"es-CL\",{style:\"currency\",currency:\"CLP\",maximumFractionDigits:0}).format(costo);\n  document.getElementById(\"ferry\").textContent=incluyeFerry?\"S\u00ed \ud83d\udef3\ufe0f\":\"No\";\n  document.getElementById(\"tramos\").innerHTML=listaTramos.map(t=>`<li>${t}<\/li>`).join(\"\");\n  if(routeLayer.getLayers().length>0){\n    map.fitBounds(routeLayer.getBounds(),{padding:[16,16]});\n  }\n}\n\n\/* Leyenda *\/\nconst legend=L.control({position:\"bottomright\"});\nlegend.onAdd=function(){\n  const div=L.DomUtil.create(\"div\",\"legend\");\n  div.innerHTML=`\n    <div>\ud83d\udea9 <span>Ciudad \/ Localidad<\/span><\/div>\n    <div>\ud83d\udef3\ufe0f <span>Ferry<\/span><\/div>\n    <div><span class=\"color-box\" style=\"background:#16a34a\"><\/span> Carretera Austral (Chile)<\/div>\n    <div><span class=\"color-box\" style=\"background:#dc2626\"><\/span> Ruta 40 + Carretera Austral<\/div>\n    <div><span class=\"color-box\" style=\"background:#2563eb\"><\/span> Tramos ferry (aprox.)<\/div>\n  `;\n  return div;\n};\nlegend.addTo(map);\n\n\/* Botones *\/\ndocument.getElementById(\"calcular\").addEventListener(\"click\",trazarRuta);\ndocument.getElementById(\"limpiar\").addEventListener(\"click\",()=>{\n  if(routeLayer){map.removeLayer(routeLayer);routeLayer=null;}\n  [\"dist\",\"tiempo\",\"litros\",\"costo\",\"ferry\",\"obs\"].forEach(id=>document.getElementById(id).textContent=\"\u2014\");\n  document.getElementById(\"tramos\").innerHTML=\"\";\n  $error.style.display=\"none\";\n});\n<\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Calculadora de Rutas Patagonia Calculadora de Rutas \u2014 Patagonia Tipo de Ruta Carretera Austral (S\u00f3lo Chile)Ruta 40 + Carretera Austral (Argentina + Chile) Origen Destino Precio combustible (CLP\/L) Rendimiento (km\/L) Calcular Limpiar Distancia total\u2014 Tiempo total\u2014 Litros\u2014 Costo\u2014 Ferry\u2014<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3504","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rutas Full Patagonia - TPRentacar<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tprentacar.com\/en\/rutas-full-patagonia\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rutas Full Patagonia - TPRentacar\" \/>\n<meta property=\"og:description\" content=\"Calculadora de Rutas Patagonia Calculadora de Rutas \u2014 Patagonia Tipo de Ruta Carretera Austral (S\u00f3lo Chile)Ruta 40 + Carretera Austral (Argentina + Chile) Origen Destino Precio combustible (CLP\/L) Rendimiento (km\/L) Calcular Limpiar Distancia total\u2014 Tiempo total\u2014 Litros\u2014 Costo\u2014 Ferry\u2014\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tprentacar.com\/en\/rutas-full-patagonia\/\" \/>\n<meta property=\"og:site_name\" content=\"TPRentacar\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-20T06:30:50+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tprentacar.com\\\/rutas-full-patagonia\\\/\",\"url\":\"https:\\\/\\\/tprentacar.com\\\/rutas-full-patagonia\\\/\",\"name\":\"Rutas Full Patagonia - TPRentacar\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tprentacar.com\\\/#website\"},\"datePublished\":\"2025-09-20T04:31:02+00:00\",\"dateModified\":\"2025-09-20T06:30:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tprentacar.com\\\/rutas-full-patagonia\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tprentacar.com\\\/rutas-full-patagonia\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tprentacar.com\\\/rutas-full-patagonia\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/tprentacar.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rutas Full Patagonia\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tprentacar.com\\\/#website\",\"url\":\"https:\\\/\\\/tprentacar.com\\\/\",\"name\":\"TPRenta Car\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/tprentacar.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tprentacar.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/tprentacar.com\\\/#organization\",\"name\":\"TPRenta Car\",\"url\":\"https:\\\/\\\/tprentacar.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tprentacar.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/tprentacar.com\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/tprentacar.com\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/logo.png\",\"width\":477,\"height\":381,\"caption\":\"TPRenta Car\"},\"image\":{\"@id\":\"https:\\\/\\\/tprentacar.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rutas Full Patagonia - TPRentacar","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:\/\/tprentacar.com\/en\/rutas-full-patagonia\/","og_locale":"en_US","og_type":"article","og_title":"Rutas Full Patagonia - TPRentacar","og_description":"Calculadora de Rutas Patagonia Calculadora de Rutas \u2014 Patagonia Tipo de Ruta Carretera Austral (S\u00f3lo Chile)Ruta 40 + Carretera Austral (Argentina + Chile) Origen Destino Precio combustible (CLP\/L) Rendimiento (km\/L) Calcular Limpiar Distancia total\u2014 Tiempo total\u2014 Litros\u2014 Costo\u2014 Ferry\u2014","og_url":"https:\/\/tprentacar.com\/en\/rutas-full-patagonia\/","og_site_name":"TPRentacar","article_modified_time":"2025-09-20T06:30:50+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/tprentacar.com\/rutas-full-patagonia\/","url":"https:\/\/tprentacar.com\/rutas-full-patagonia\/","name":"Rutas Full Patagonia - TPRentacar","isPartOf":{"@id":"https:\/\/tprentacar.com\/#website"},"datePublished":"2025-09-20T04:31:02+00:00","dateModified":"2025-09-20T06:30:50+00:00","breadcrumb":{"@id":"https:\/\/tprentacar.com\/rutas-full-patagonia\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tprentacar.com\/rutas-full-patagonia\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/tprentacar.com\/rutas-full-patagonia\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/tprentacar.com\/"},{"@type":"ListItem","position":2,"name":"Rutas Full Patagonia"}]},{"@type":"WebSite","@id":"https:\/\/tprentacar.com\/#website","url":"https:\/\/tprentacar.com\/","name":"TPRenta Car","description":"","publisher":{"@id":"https:\/\/tprentacar.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tprentacar.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/tprentacar.com\/#organization","name":"TPRenta Car","url":"https:\/\/tprentacar.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tprentacar.com\/#\/schema\/logo\/image\/","url":"https:\/\/tprentacar.com\/wp-content\/uploads\/2024\/03\/logo.png","contentUrl":"https:\/\/tprentacar.com\/wp-content\/uploads\/2024\/03\/logo.png","width":477,"height":381,"caption":"TPRenta Car"},"image":{"@id":"https:\/\/tprentacar.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/tprentacar.com\/en\/wp-json\/wp\/v2\/pages\/3504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tprentacar.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tprentacar.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tprentacar.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tprentacar.com\/en\/wp-json\/wp\/v2\/comments?post=3504"}],"version-history":[{"count":0,"href":"https:\/\/tprentacar.com\/en\/wp-json\/wp\/v2\/pages\/3504\/revisions"}],"wp:attachment":[{"href":"https:\/\/tprentacar.com\/en\/wp-json\/wp\/v2\/media?parent=3504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}