{
  "routes": [
    {
      "route_name": "Surabaya → Balikpapan",
      "route_forecast": {
        "coordinates": [
          {
            "lat": -7.198528,
            "lng": 112.735154,
            "distance_from_start": 0,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.47,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 6,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.875977896848117,
            "lng": 112.7443279686591,
            "distance_from_start": 22.5327692728618,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 20,
              "wave_height": 0.58,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 5,
              "current_speed": 0.25,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.665596095769897,
            "lng": 113.05638932057282,
            "distance_from_start": 45.0655385457236,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 20,
              "wave_height": 1.03,
              "wind_speed": 12,
              "wind_from": "Selatan",
              "wind_gust": 18,
              "current_speed": 0.45,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.450881285391073,
            "lng": 113.36621372914327,
            "distance_from_start": 67.5983078185854,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 20,
              "wave_height": 1.24,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.48,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.2359794573568195,
            "lng": 113.67583405028363,
            "distance_from_start": 90.1310770914472,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 21,
              "wave_height": 1.28,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.28,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.019882003408265,
            "lng": 113.98414961642828,
            "distance_from_start": 112.663846364309,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 1.32,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.49,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.80378454945971,
            "lng": 114.29246518257294,
            "distance_from_start": 135.1966156371708,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 22,
              "wave_height": 1.29,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.85,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.587687095511155,
            "lng": 114.6007807487176,
            "distance_from_start": 157.7293849100326,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 11,
              "wave_height": 1.25,
              "wind_speed": 15,
              "wind_from": "Tenggara",
              "wind_gust": 23,
              "current_speed": 1,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.3715896415626005,
            "lng": 114.90909631486227,
            "distance_from_start": 180.2621541828944,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.22,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 1.11,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.155492187614046,
            "lng": 115.21741188100692,
            "distance_from_start": 202.7949234557562,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 21,
              "wave_height": 1.21,
              "wind_speed": 17,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.79,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.9394795754822995,
            "lng": 115.52576685764973,
            "distance_from_start": 225.327692728618,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 21,
              "wave_height": 1.14,
              "wind_speed": 18,
              "wind_from": "Tenggara",
              "wind_gust": 27,
              "current_speed": 0.59,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.725328774978197,
            "lng": 115.83498667814523,
            "distance_from_start": 247.8604620014798,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 22,
              "wave_height": 0.99,
              "wind_speed": 17,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.38,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.511177974474095,
            "lng": 116.14420649864074,
            "distance_from_start": 270.3932312743416,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 22,
              "wave_height": 1.44,
              "wind_speed": 15,
              "wind_from": "Tenggara",
              "wind_gust": 23,
              "current_speed": 0.25,
              "current_to": "Timur"
            }
          },
          {
            "lat": -4.2395061960017575,
            "lng": 116.36407803680336,
            "distance_from_start": 292.9260005472034,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 26,
              "wave_height": 1.36,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 21,
              "current_speed": 0.6,
              "current_to": "Timur Laut"
            }
          },
          {
            "lat": -3.8705400774525347,
            "lng": 116.4328206742825,
            "distance_from_start": 315.4587698200652,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 1.23,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 18,
              "current_speed": 0.49,
              "current_to": "Timur"
            }
          },
          {
            "lat": -3.501573958903313,
            "lng": 116.50156331176161,
            "distance_from_start": 337.991539092927,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 25,
              "wave_height": 1.18,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 20,
              "current_speed": 0.14,
              "current_to": "Timur"
            }
          },
          {
            "lat": -3.1326078403540905,
            "lng": 116.57030594924073,
            "distance_from_start": 360.5243083657888,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 1.14,
              "wind_speed": 15,
              "wind_from": "Timur",
              "wind_gust": 22,
              "current_speed": 0.04,
              "current_to": "Timur Laut"
            }
          },
          {
            "lat": -2.763641721804869,
            "lng": 116.63904858671985,
            "distance_from_start": 383.0570776386506,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 1.09,
              "wind_speed": 13,
              "wind_from": "Timur Laut",
              "wind_gust": 20,
              "current_speed": 0.13,
              "current_to": "Timur"
            }
          },
          {
            "lat": -2.3946756032556467,
            "lng": 116.70779122419898,
            "distance_from_start": 405.5898469115124,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 1.01,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 20,
              "current_speed": 0.12,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -2.021269821076645,
            "lng": 116.74296904388378,
            "distance_from_start": 428.1226161843742,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.96,
              "wind_speed": 15,
              "wind_from": "Timur",
              "wind_gust": 23,
              "current_speed": 0.25,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -1.647172651801669,
            "lng": 116.77291982750528,
            "distance_from_start": 450.655385457236,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 0.95,
              "wind_speed": 14,
              "wind_from": "Timur",
              "wind_gust": 21,
              "current_speed": 0.3,
              "current_to": "Timur Laut"
            }
          },
          {
            "lat": -1.273439,
            "lng": 116.80543,
            "distance_from_start": 473.1881547300978,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 14,
              "wave_height": 0.46,
              "wind_speed": 14,
              "wind_from": "Timur Laut",
              "wind_gust": 10,
              "current_speed": 0.33,
              "current_to": "Utara"
            }
          }
        ],
        "departure_time": "2026-08-24T07:00",
        "arrival_time": "2026-08-26T07:00",
        "timezone": "Asia/Jakarta",
        "speed": 10,
        "distance": "473.19"
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Tanjung Perak Surabaya",
          "province": "Jawa Timur",
          "weather": {
            "wind_speed": 13,
            "wind_gust": 6,
            "wind_from": "Timur",
            "current_speed": 0.16,
            "current_to": "Tenggara",
            "wave_height": 0.47,
            "weather": "Cerah Berawan",
            "temp_avg": 25.43,
            "rh_avg": 82.33,
            "visibility": 17
          }
        },
        "destination": {
          "name": "Pelabuhan Semayang",
          "province": "Kalimantan Timur",
          "weather": {
            "wind_speed": 14,
            "wind_gust": 10,
            "wind_from": "Timur Laut",
            "current_speed": 0.33,
            "current_to": "Utara",
            "wave_height": 0.46,
            "weather": "Cerah Berawan",
            "temp_avg": 25.74,
            "rh_avg": 82.67,
            "visibility": 14
          }
        }
      }
    },
    {
      "route_name": "Surabaya → Makassar",
      "route_forecast": {
        "coordinates": [
          {
            "lat": -7.198568,
            "lng": 112.735143,
            "distance_from_start": 0,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.48,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 6,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.89759899181244,
            "lng": 112.73237457842065,
            "distance_from_start": 21.06783160263366,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 20,
              "wave_height": 0.52,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 5,
              "current_speed": 0.26,
              "current_to": "Timur"
            }
          },
          {
            "lat": -6.786415983106429,
            "lng": 113.0590467841833,
            "distance_from_start": 42.13566320526732,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 20,
              "wave_height": 0.87,
              "wind_speed": 10,
              "wind_from": "Selatan",
              "wind_gust": 16,
              "current_speed": 0.25,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.749499793252398,
            "lng": 113.41043119413322,
            "distance_from_start": 63.203494807900974,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 21,
              "wave_height": 1.07,
              "wind_speed": 15,
              "wind_from": "Selatan",
              "wind_gust": 23,
              "current_speed": 0.32,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -6.712583603398366,
            "lng": 113.76181560408317,
            "distance_from_start": 84.27132641053464,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 22,
              "wave_height": 1.08,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.17,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.634108580174773,
            "lng": 114.10556389759638,
            "distance_from_start": 105.3391580131683,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 1.11,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 22,
              "current_speed": 0.45,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.552112249709581,
            "lng": 114.44866517794956,
            "distance_from_start": 126.40698961580195,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 1.23,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.72,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.47011591924439,
            "lng": 114.79176645830273,
            "distance_from_start": 147.47482121843564,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 25,
              "wave_height": 1.26,
              "wind_speed": 18,
              "wind_from": "Tenggara",
              "wind_gust": 27,
              "current_speed": 0.77,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.388119588779199,
            "lng": 115.13486773865591,
            "distance_from_start": 168.54265282106928,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 1.13,
              "wind_speed": 15,
              "wind_from": "Timur",
              "wind_gust": 23,
              "current_speed": 0.74,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.306123258314008,
            "lng": 115.47796901900908,
            "distance_from_start": 189.61048442370293,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.06,
              "wind_speed": 15,
              "wind_from": "Tenggara",
              "wind_gust": 23,
              "current_speed": 0.6,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -6.2241269278488165,
            "lng": 115.82107029936226,
            "distance_from_start": 210.6783160263366,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.1,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.64,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.142130597383625,
            "lng": 116.16417157971543,
            "distance_from_start": 231.74614762897025,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 1.27,
              "wind_speed": 17,
              "wind_from": "Tenggara",
              "wind_gust": 26,
              "current_speed": 0.7,
              "current_to": "Timur"
            }
          },
          {
            "lat": -6.060134266918434,
            "lng": 116.50727286006861,
            "distance_from_start": 252.8139792316039,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 20,
              "wave_height": 1.37,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.27,
              "current_to": "Timur Laut"
            }
          },
          {
            "lat": -5.978137936453242,
            "lng": 116.85037414042178,
            "distance_from_start": 273.88181083423757,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 25,
              "wave_height": 1.31,
              "wind_speed": 15,
              "wind_from": "Tenggara",
              "wind_gust": 23,
              "current_speed": 0.49,
              "current_to": "Timur"
            }
          },
          {
            "lat": -5.896141605988051,
            "lng": 117.19347542077496,
            "distance_from_start": 294.9496424368713,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 29,
              "wave_height": 1.32,
              "wind_speed": 15,
              "wind_from": "Tenggara",
              "wind_gust": 23,
              "current_speed": 0.3,
              "current_to": "Timur Laut"
            }
          },
          {
            "lat": -5.8141452755228595,
            "lng": 117.53657670112813,
            "distance_from_start": 316.01747403950486,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 30,
              "wave_height": 1.28,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.27,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.732148945057668,
            "lng": 117.87967798148131,
            "distance_from_start": 337.08530564213856,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 30,
              "wave_height": 1.29,
              "wind_speed": 18,
              "wind_from": "Tenggara",
              "wind_gust": 27,
              "current_speed": 1.39,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -5.650152614592477,
            "lng": 118.22277926183448,
            "distance_from_start": 358.1531372447722,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 30,
              "wave_height": 1.4,
              "wind_speed": 20,
              "wind_from": "Tenggara",
              "wind_gust": 31,
              "current_speed": 1.18,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -5.568156284127285,
            "lng": 118.56588054218764,
            "distance_from_start": 379.22096884740586,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 29,
              "wave_height": 1.23,
              "wind_speed": 18,
              "wind_from": "Tenggara",
              "wind_gust": 28,
              "current_speed": 1.31,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -5.486159953662094,
            "lng": 118.90898182254082,
            "distance_from_start": 400.2888004500395,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 28,
              "wave_height": 1.16,
              "wind_speed": 19,
              "wind_from": "Tenggara",
              "wind_gust": 28,
              "current_speed": 0.47,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -5.404163623196903,
            "lng": 119.25208310289399,
            "distance_from_start": 421.3566320526732,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 29,
              "wave_height": 0.87,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 14,
              "current_speed": 0.25,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -5.122123,
            "lng": 119.407443,
            "distance_from_start": 442.42446365530685,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 34,
              "wave_height": 0.67,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 6,
              "current_speed": 0.18,
              "current_to": "Barat Daya"
            }
          }
        ],
        "departure_time": "2026-08-24T07:00",
        "arrival_time": "2026-08-26T07:00",
        "timezone": "Asia/Jakarta",
        "speed": 9,
        "distance": "442.42"
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Tanjung Perak Surabaya",
          "province": "Jawa Timur",
          "weather": {
            "wind_speed": 13,
            "wind_gust": 6,
            "wind_from": "Timur",
            "current_speed": 0.16,
            "current_to": "Tenggara",
            "wave_height": 0.48,
            "weather": "Cerah Berawan",
            "temp_avg": 25.43,
            "rh_avg": 82.33,
            "visibility": 17
          }
        },
        "destination": {
          "name": "Pelabuhan Soekarno Hatta - Makassar",
          "province": "Sulawesi Selatan",
          "weather": {
            "wind_speed": 14,
            "wind_gust": 6,
            "wind_from": "Tenggara",
            "current_speed": 0.18,
            "current_to": "Barat Daya",
            "wave_height": 0.67,
            "weather": "Cerah Berawan",
            "temp_avg": 26.32,
            "rh_avg": 63.42,
            "visibility": 34
          }
        }
      }
    },
    {
      "route_name": "Surabaya → Pontianak",
      "route_forecast": {
        "coordinates": [
          {
            "lat": -7.198493,
            "lng": 112.735093,
            "distance_from_start": 0,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.54,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 6,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.783594748483663,
            "lng": 112.7004371717904,
            "distance_from_start": 27.316049567521826,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 20,
              "wave_height": 0.81,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 3,
              "current_speed": 0.37,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.38496654860028,
            "lng": 112.48297178944263,
            "distance_from_start": 54.63209913504365,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 1.05,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 13,
              "current_speed": 0.62,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.987086528030248,
            "lng": 112.26135628753377,
            "distance_from_start": 81.94814870256548,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 1.06,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 22,
              "current_speed": 0.68,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.589206507460215,
            "lng": 112.03974078562491,
            "distance_from_start": 109.2641982700873,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 1.2,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 22,
              "current_speed": 0.45,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.1913264868901825,
            "lng": 111.81812528371606,
            "distance_from_start": 136.58024783760914,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 1.26,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 21,
              "current_speed": 0.41,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.79344646632015,
            "lng": 111.5965097818072,
            "distance_from_start": 163.89629740513095,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 1.27,
              "wind_speed": 15,
              "wind_from": "Tenggara",
              "wind_gust": 22,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.3955664457501165,
            "lng": 111.37489427989834,
            "distance_from_start": 191.2123469726528,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 1.29,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.16,
              "current_to": "Timur"
            }
          },
          {
            "lat": -3.997686425180085,
            "lng": 111.15327877798948,
            "distance_from_start": 218.5283965401746,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 1.31,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.26,
              "current_to": "Timur"
            }
          },
          {
            "lat": -3.694212799644264,
            "lng": 110.82913203006012,
            "distance_from_start": 245.84444610769643,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 1.31,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.8,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -3.4404551780072983,
            "lng": 110.45099059432317,
            "distance_from_start": 273.16049567521827,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 1.31,
              "wind_speed": 17,
              "wind_from": "Tenggara",
              "wind_gust": 26,
              "current_speed": 1.44,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -3.186697556370332,
            "lng": 110.07284915858624,
            "distance_from_start": 300.4765452427401,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 1.24,
              "wind_speed": 18,
              "wind_from": "Tenggara",
              "wind_gust": 27,
              "current_speed": 1.83,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -2.932939934733366,
            "lng": 109.6947077228493,
            "distance_from_start": 327.7925948102619,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 1.29,
              "wind_speed": 18,
              "wind_from": "Tenggara",
              "wind_gust": 27,
              "current_speed": 1.61,
              "current_to": "Timur"
            }
          },
          {
            "lat": -2.6791823130964003,
            "lng": 109.31656628711237,
            "distance_from_start": 355.1086443777837,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 1.35,
              "wind_speed": 18,
              "wind_from": "Tenggara",
              "wind_gust": 27,
              "current_speed": 1.33,
              "current_to": "Timur"
            }
          },
          {
            "lat": -2.425424691459434,
            "lng": 108.93842485137543,
            "distance_from_start": 382.4246939453056,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.31,
              "wind_speed": 17,
              "wind_from": "Timur",
              "wind_gust": 25,
              "current_speed": 1.21,
              "current_to": "Timur"
            }
          },
          {
            "lat": -2.1716670698224685,
            "lng": 108.5602834156385,
            "distance_from_start": 409.74074351282735,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.21,
              "wind_speed": 16,
              "wind_from": "Timur",
              "wind_gust": 25,
              "current_speed": 0.48,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -1.806286682778886,
            "lng": 108.49253735711343,
            "distance_from_start": 437.0567930803492,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 1.26,
              "wind_speed": 17,
              "wind_from": "Timur",
              "wind_gust": 26,
              "current_speed": 0.34,
              "current_to": "Timur"
            }
          },
          {
            "lat": -1.3700635940563148,
            "lng": 108.62178737757154,
            "distance_from_start": 464.37284264787104,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 17,
              "wave_height": 1.04,
              "wind_speed": 16,
              "wind_from": "Timur",
              "wind_gust": 24,
              "current_speed": 0.53,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.9338405053337449,
            "lng": 108.75103739802962,
            "distance_from_start": 491.68889221539285,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 15,
              "wave_height": 1.1,
              "wind_speed": 16,
              "wind_from": "Timur",
              "wind_gust": 25,
              "current_speed": 0.86,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.49761741661117376,
            "lng": 108.88028741848773,
            "distance_from_start": 519.0049417829147,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 13,
              "wave_height": 0.97,
              "wind_speed": 14,
              "wind_from": "Timur",
              "wind_gust": 22,
              "current_speed": 0.86,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.06139432788860377,
            "lng": 109.00953743894581,
            "distance_from_start": 546.3209913504365,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 12,
              "wave_height": 0.53,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 19,
              "current_speed": 0.15,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.019719,
            "lng": 109.337517,
            "distance_from_start": 573.6370409179583,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 12,
              "wave_height": 0.48,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 11,
              "current_speed": 0.11,
              "current_to": "Selatan"
            }
          }
        ],
        "departure_time": "2026-08-24T07:00",
        "arrival_time": "2026-08-26T07:00",
        "timezone": "Asia/Jakarta",
        "speed": 12,
        "distance": "573.64"
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Tanjung Perak Surabaya",
          "province": "Jawa Timur",
          "weather": {
            "wind_speed": 12,
            "wind_gust": 6,
            "wind_from": "Timur",
            "current_speed": 0.16,
            "current_to": "Tenggara",
            "wave_height": 0.54,
            "weather": "Cerah Berawan",
            "temp_avg": 25.43,
            "rh_avg": 82.33,
            "visibility": 17
          }
        },
        "destination": {
          "name": "Pelabuhan Utama Dwikora Pontianak",
          "province": "Kalimantan Barat",
          "weather": {
            "wind_speed": 12,
            "wind_gust": 11,
            "wind_from": "Timur",
            "current_speed": 0.11,
            "current_to": "Selatan",
            "wave_height": 0.48,
            "weather": "Cerah Berawan",
            "temp_avg": 26.19,
            "rh_avg": 84.25,
            "visibility": 12
          }
        }
      }
    },
    {
      "route_name": "Surabaya → Jakarta",
      "route_forecast": {
        "coordinates": [
          {
            "lat": -7.198617,
            "lng": 112.735124,
            "distance_from_start": 0,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.42,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 6,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.9207296953263935,
            "lng": 112.67570003776623,
            "distance_from_start": 18.847566148417712,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 20,
              "wave_height": 0.45,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 5,
              "current_speed": 0.31,
              "current_to": "Timur"
            }
          },
          {
            "lat": -6.655790810043233,
            "lng": 112.57254356104711,
            "distance_from_start": 37.695132296835425,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 0.92,
              "wind_speed": 13,
              "wind_from": "Selatan",
              "wind_gust": 8,
              "current_speed": 0.49,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.525068298925708,
            "lng": 112.28807650696456,
            "distance_from_start": 56.54269844525314,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.96,
              "wind_speed": 13,
              "wind_from": "Selatan",
              "wind_gust": 14,
              "current_speed": 0.56,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.405673362620117,
            "lng": 111.99587112160273,
            "distance_from_start": 75.39026459367085,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 1.02,
              "wind_speed": 14,
              "wind_from": "Selatan",
              "wind_gust": 21,
              "current_speed": 0.42,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.355150294153391,
            "lng": 111.68608029315108,
            "distance_from_start": 94.23783074208856,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 1.06,
              "wind_speed": 14,
              "wind_from": "Selatan",
              "wind_gust": 22,
              "current_speed": 0.1,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -6.320147363547899,
            "lng": 111.37232662022215,
            "distance_from_start": 113.08539689050627,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 1.07,
              "wind_speed": 12,
              "wind_from": "Tenggara",
              "wind_gust": 19,
              "current_speed": 0.1,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": -6.285144432942406,
            "lng": 111.05857294729324,
            "distance_from_start": 131.932963038924,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 12,
              "wave_height": 1.02,
              "wind_speed": 12,
              "wind_from": "Tenggara",
              "wind_gust": 19,
              "current_speed": 0.35,
              "current_to": "Utara"
            }
          },
          {
            "lat": -6.2501415023369145,
            "lng": 110.74481927436432,
            "distance_from_start": 150.7805291873417,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 9,
              "wave_height": 0.97,
              "wind_speed": 10,
              "wind_from": "Tenggara",
              "wind_gust": 16,
              "current_speed": 0.42,
              "current_to": "Timur"
            }
          },
          {
            "lat": -6.215138571731423,
            "lng": 110.43106560143539,
            "distance_from_start": 169.6280953357594,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 13,
              "wave_height": 0.89,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 13,
              "current_speed": 0.66,
              "current_to": "Timur"
            }
          },
          {
            "lat": -6.180135641125931,
            "lng": 110.11731192850647,
            "distance_from_start": 188.47566148417712,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 13,
              "wave_height": 0.79,
              "wind_speed": 10,
              "wind_from": "Timur",
              "wind_gust": 16,
              "current_speed": 0.98,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.145132710520439,
            "lng": 109.80355825557754,
            "distance_from_start": 207.32322763259484,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 12,
              "wave_height": 0.74,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 12,
              "current_speed": 1.25,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.1101297799149465,
            "lng": 109.48980458264862,
            "distance_from_start": 226.17079378101255,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 12,
              "wave_height": 0.76,
              "wind_speed": 12,
              "wind_from": "Tenggara",
              "wind_gust": 11,
              "current_speed": 0.84,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.075126849309455,
            "lng": 109.17605090971969,
            "distance_from_start": 245.01835992943026,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 11,
              "wave_height": 0.78,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 13,
              "current_speed": 0.62,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.040123918703963,
            "lng": 108.86229723679077,
            "distance_from_start": 263.865926077848,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 11,
              "wave_height": 0.83,
              "wind_speed": 11,
              "wind_from": "Selatan",
              "wind_gust": 17,
              "current_speed": 0.56,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.005120988098471,
            "lng": 108.54854356386184,
            "distance_from_start": 282.7134922262657,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 11,
              "wave_height": 0.88,
              "wind_speed": 13,
              "wind_from": "Selatan",
              "wind_gust": 20,
              "current_speed": 0.51,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.9701180574929795,
            "lng": 108.23478989093292,
            "distance_from_start": 301.5610583746834,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 10,
              "wave_height": 0.65,
              "wind_speed": 12,
              "wind_from": "Selatan",
              "wind_gust": 13,
              "current_speed": 0.34,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -5.935115126887487,
            "lng": 107.92103621800399,
            "distance_from_start": 320.40862452310114,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 10,
              "wave_height": 0.72,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 14,
              "current_speed": 0.19,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -5.900112196281995,
            "lng": 107.60728254507507,
            "distance_from_start": 339.2561906715188,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 8,
              "wave_height": 0.68,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 14,
              "current_speed": 0.11,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -5.845991489488195,
            "lng": 107.29721770819133,
            "distance_from_start": 358.10375681993656,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 10,
              "wave_height": 0.55,
              "wind_speed": 12,
              "wind_from": "Tenggara",
              "wind_gust": 13,
              "current_speed": 0.11,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -5.828272513488126,
            "lng": 106.98779085708362,
            "distance_from_start": 376.95132296835425,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 9,
              "wave_height": 0.44,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 13,
              "current_speed": 0.33,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -6.103769,
            "lng": 106.88246,
            "distance_from_start": 395.798889116772,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 10,
              "wave_height": 0.34,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 7,
              "current_speed": 0.03,
              "current_to": "Timur"
            }
          }
        ],
        "departure_time": "2026-08-24T07:00",
        "arrival_time": "2026-08-26T07:00",
        "timezone": "Asia/Jakarta",
        "speed": 8,
        "distance": "395.80"
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Tanjung Perak Surabaya",
          "province": "Jawa Timur",
          "weather": {
            "wind_speed": 12,
            "wind_gust": 6,
            "wind_from": "Timur",
            "current_speed": 0.16,
            "current_to": "Tenggara",
            "wave_height": 0.42,
            "weather": "Cerah Berawan",
            "temp_avg": 25.43,
            "rh_avg": 82.32,
            "visibility": 17
          }
        },
        "destination": {
          "name": "Pelabuhan Tanjung Priok",
          "province": "Jakarta",
          "weather": {
            "wind_speed": 13,
            "wind_gust": 7,
            "wind_from": "Tenggara",
            "current_speed": 0.03,
            "current_to": "Timur",
            "wave_height": 0.34,
            "weather": "Cerah Berawan",
            "temp_avg": 26.59,
            "rh_avg": 79.72,
            "visibility": 10
          }
        }
      }
    },
    {
      "route_name": "Surabaya → Banjarmasin",
      "route_forecast": {
        "coordinates": [
          {
            "lat": -7.19861,
            "lng": 112.735103,
            "distance_from_start": 0,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.42,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 6,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.024822465294653,
            "lng": 112.67163946812185,
            "distance_from_start": 12.55653258848696,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.57,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 4,
              "current_speed": 0.2,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.840591576100118,
            "lng": 112.75882188495146,
            "distance_from_start": 25.11306517697392,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 0.68,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 5,
              "current_speed": 0.25,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.660641214266657,
            "lng": 112.86562104135312,
            "distance_from_start": 37.66959776546088,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.06,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 11,
              "current_speed": 0.47,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.4782723848108885,
            "lng": 112.96846186399999,
            "distance_from_start": 50.22613035394784,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.13,
              "wind_speed": 12,
              "wind_from": "Tenggara",
              "wind_gust": 19,
              "current_speed": 0.57,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.295903555355121,
            "lng": 113.07130268664685,
            "distance_from_start": 62.78266294243479,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.25,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.59,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -6.113534725899352,
            "lng": 113.1741435092937,
            "distance_from_start": 75.33919553092176,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 1.28,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.55,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.931165896443584,
            "lng": 113.27698433194055,
            "distance_from_start": 87.89572811940872,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 1.29,
              "wind_speed": 15,
              "wind_from": "Tenggara",
              "wind_gust": 23,
              "current_speed": 0.48,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.748797066987816,
            "lng": 113.37982515458741,
            "distance_from_start": 100.45226070789568,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 1.3,
              "wind_speed": 17,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.43,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.5664282375320475,
            "lng": 113.48266597723426,
            "distance_from_start": 113.00879329638262,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 1.29,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.48,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.384059408076279,
            "lng": 113.58550679988113,
            "distance_from_start": 125.56532588486958,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 1.27,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.43,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.201690578620511,
            "lng": 113.68834762252798,
            "distance_from_start": 138.12185847335655,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 1.25,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.46,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -5.019321749164742,
            "lng": 113.79118844517484,
            "distance_from_start": 150.6783910618435,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 1.25,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.66,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.836952919708974,
            "lng": 113.8940292678217,
            "distance_from_start": 163.23492365033047,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 1.25,
              "wind_speed": 16,
              "wind_from": "Tenggara",
              "wind_gust": 24,
              "current_speed": 0.8,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.654584090253206,
            "lng": 113.99687009046855,
            "distance_from_start": 175.79145623881743,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 1.26,
              "wind_speed": 17,
              "wind_from": "Tenggara",
              "wind_gust": 25,
              "current_speed": 0.93,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.472215260797437,
            "lng": 114.0997109131154,
            "distance_from_start": 188.3479888273044,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 1.27,
              "wind_speed": 18,
              "wind_from": "Tenggara",
              "wind_gust": 27,
              "current_speed": 0.95,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.289846431341669,
            "lng": 114.20255173576227,
            "distance_from_start": 200.90452141579135,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 14,
              "wave_height": 1.3,
              "wind_speed": 19,
              "wind_from": "Tenggara",
              "wind_gust": 29,
              "current_speed": 0.92,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -4.1074776018859005,
            "lng": 114.30539255840912,
            "distance_from_start": 213.4610540042783,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 14,
              "wave_height": 1.24,
              "wind_speed": 19,
              "wind_from": "Tenggara",
              "wind_gust": 29,
              "current_speed": 0.7,
              "current_to": "Timur"
            }
          },
          {
            "lat": -3.908532535585619,
            "lng": 114.3693754466353,
            "distance_from_start": 226.01758659276524,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 14,
              "wave_height": 1.07,
              "wind_speed": 17,
              "wind_from": "Tenggara",
              "wind_gust": 26,
              "current_speed": 0.43,
              "current_to": "Timur"
            }
          },
          {
            "lat": -3.708799210992396,
            "lng": 114.43151050357498,
            "distance_from_start": 238.5741191812522,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 13,
              "wave_height": 0.85,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 21,
              "current_speed": 0.26,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -3.5090658863991724,
            "lng": 114.49364556051466,
            "distance_from_start": 251.13065176973916,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 13,
              "wave_height": 0.51,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 14,
              "current_speed": 0.18,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -3.326283,
            "lng": 114.558617,
            "distance_from_start": 263.6871843582261,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 13,
              "wave_height": 0.65,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 15,
              "current_speed": 0.18,
              "current_to": "Tenggara"
            }
          }
        ],
        "departure_time": "2026-08-24T07:00",
        "arrival_time": "2026-08-25T07:00",
        "timezone": "Asia/Jakarta",
        "speed": 11,
        "distance": "263.69"
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Tanjung Perak Surabaya",
          "province": "Jawa Timur",
          "weather": {
            "wind_speed": 12,
            "wind_gust": 6,
            "wind_from": "Timur",
            "current_speed": 0.16,
            "current_to": "Tenggara",
            "wave_height": 0.42,
            "weather": "Cerah Berawan",
            "temp_avg": 25.43,
            "rh_avg": 82.32,
            "visibility": 17
          }
        },
        "destination": {
          "name": "Pelabuhan Trisakti Banjarmasin",
          "province": "Kalimantan Selatan",
          "weather": {
            "wind_speed": 13,
            "wind_gust": 15,
            "wind_from": "Tenggara",
            "current_speed": 0.18,
            "current_to": "Tenggara",
            "wave_height": 0.65,
            "weather": "Cerah Berawan",
            "temp_avg": 25.66,
            "rh_avg": 74.25,
            "visibility": 13
          }
        }
      }
    },
    {
      "route_name": "Surabaya → Benoa",
      "route_forecast": {
        "coordinates": [
          {
            "lat": -7.198586,
            "lng": 112.735164,
            "distance_from_start": 0,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.42,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 6,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.266293319788433,
            "lng": 112.90258311325105,
            "distance_from_start": 11.677590366376018,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 14,
              "wave_height": 0.49,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 11,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.377897651409972,
            "lng": 113.06317157097446,
            "distance_from_start": 23.355180732752036,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 0.52,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 15,
              "current_speed": 0.15,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.397909544821017,
            "lng": 113.25499542061131,
            "distance_from_start": 35.032771099128055,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 13,
              "wave_height": 0.57,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 11,
              "current_speed": 0.38,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.405761342962459,
            "lng": 113.45096617744782,
            "distance_from_start": 46.71036146550407,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 0.63,
              "wind_speed": 13,
              "wind_from": "Selatan",
              "wind_gust": 11,
              "current_speed": 0.21,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.413613141103903,
            "lng": 113.64693693428434,
            "distance_from_start": 58.387951831880095,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.68,
              "wind_speed": 13,
              "wind_from": "Selatan",
              "wind_gust": 11,
              "current_speed": 0.25,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.431912659805264,
            "lng": 113.84196856763955,
            "distance_from_start": 70.06554219825611,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 0.7,
              "wind_speed": 14,
              "wind_from": "Selatan",
              "wind_gust": 14,
              "current_speed": 0.36,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.4729138337851415,
            "lng": 114.0326095327761,
            "distance_from_start": 81.74313256463213,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.75,
              "wind_speed": 13,
              "wind_from": "Selatan",
              "wind_gust": 17,
              "current_speed": 0.33,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.542281770251681,
            "lng": 114.21597212798095,
            "distance_from_start": 93.42072293100814,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.8,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 22,
              "current_speed": 0.58,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.611649706718222,
            "lng": 114.39933472318579,
            "distance_from_start": 105.09831329738417,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.87,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 20,
              "current_speed": 0.78,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -7.681017643184761,
            "lng": 114.58269731839063,
            "distance_from_start": 116.77590366376019,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.92,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 19,
              "current_speed": 0.6,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -7.750385579651301,
            "lng": 114.76605991359547,
            "distance_from_start": 128.4534940301362,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.98,
              "wind_speed": 13,
              "wind_from": "Timur Laut",
              "wind_gust": 12,
              "current_speed": 0.37,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -7.819753516117841,
            "lng": 114.94942250880031,
            "distance_from_start": 140.13108439651222,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 0.92,
              "wind_speed": 12,
              "wind_from": "Timur Laut",
              "wind_gust": 12,
              "current_speed": 0.32,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.889121452584381,
            "lng": 115.13278510400515,
            "distance_from_start": 151.80867476288824,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 8,
              "wave_height": 0.87,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 10,
              "current_speed": 0.59,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.958489389050921,
            "lng": 115.31614769920999,
            "distance_from_start": 163.48626512926427,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 0.82,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 12,
              "current_speed": 0.48,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -8.065609386498352,
            "lng": 115.47906211654316,
            "distance_from_start": 175.1638554956403,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 25,
              "wave_height": 0.8,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 20,
              "current_speed": 0.66,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -8.17952783274058,
            "lng": 115.63829419477761,
            "distance_from_start": 186.8414458620163,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.85,
              "wind_speed": 15,
              "wind_from": "Timur",
              "wind_gust": 23,
              "current_speed": 0.36,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -8.319195765399797,
            "lng": 115.75984109965512,
            "distance_from_start": 198.5190362283923,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 0.93,
              "wind_speed": 17,
              "wind_from": "Timur",
              "wind_gust": 26,
              "current_speed": 0.85,
              "current_to": "Barat"
            }
          },
          {
            "lat": -8.488066624592056,
            "lng": 115.6988706366772,
            "distance_from_start": 210.19662659476833,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 0.86,
              "wind_speed": 11,
              "wind_from": "Timur",
              "wind_gust": 17,
              "current_speed": 1.45,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -8.555726426351457,
            "lng": 115.51448344008558,
            "distance_from_start": 221.87421696114436,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 0.59,
              "wind_speed": 12,
              "wind_from": "Tenggara",
              "wind_gust": 11,
              "current_speed": 0.73,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -8.646887755053113,
            "lng": 115.34765949207595,
            "distance_from_start": 233.55180732752038,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 21,
              "wave_height": 0.92,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 14,
              "current_speed": 0.66,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -8.742425,
            "lng": 115.212534,
            "distance_from_start": 245.22939769389637,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 1.13,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 18,
              "current_speed": 0.64,
              "current_to": "Barat Daya"
            }
          }
        ],
        "departure_time": "2026-08-24T07:00",
        "arrival_time": "2026-08-25T07:00",
        "timezone": "Asia/Jakarta",
        "speed": 10,
        "distance": "245.23"
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Tanjung Perak Surabaya",
          "province": "Jawa Timur",
          "weather": {
            "wind_speed": 12,
            "wind_gust": 6,
            "wind_from": "Timur",
            "current_speed": 0.16,
            "current_to": "Tenggara",
            "wave_height": 0.42,
            "weather": "Cerah Berawan",
            "temp_avg": 25.43,
            "rh_avg": 82.32,
            "visibility": 17
          }
        },
        "destination": {
          "name": "Pelabuhan Benoa",
          "province": "Bali",
          "weather": {
            "wind_speed": 13,
            "wind_gust": 18,
            "wind_from": "Tenggara",
            "current_speed": 0.64,
            "current_to": "Barat Daya",
            "wave_height": 1.13,
            "weather": "Cerah Berawan",
            "temp_avg": 25.12,
            "rh_avg": 75.1,
            "visibility": 24
          }
        }
      }
    },
    {
      "route_name": "Surabaya → Lembar",
      "route_forecast": {
        "coordinates": [
          {
            "lat": -7.1985,
            "lng": 112.735155,
            "distance_from_start": 0,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.45,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 6,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.258701803658464,
            "lng": 112.89167494956386,
            "distance_from_start": 11.015274573826053,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 0.49,
              "wind_speed": 12,
              "wind_from": "Timur",
              "wind_gust": 11,
              "current_speed": 0.16,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.363876284404293,
            "lng": 113.04322578996201,
            "distance_from_start": 22.030549147652106,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 0.53,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 16,
              "current_speed": 0.13,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.399328913841867,
            "lng": 113.21847792711164,
            "distance_from_start": 33.045823721478165,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 15,
              "wave_height": 0.6,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 12,
              "current_speed": 0.35,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.406499003901639,
            "lng": 113.40334445123032,
            "distance_from_start": 44.06109829530421,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 16,
              "wave_height": 0.67,
              "wind_speed": 14,
              "wind_from": "Selatan",
              "wind_gust": 11,
              "current_speed": 0.31,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.413669093961411,
            "lng": 113.58821097534903,
            "distance_from_start": 55.07637286913027,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 17,
              "wave_height": 0.72,
              "wind_speed": 13,
              "wind_from": "Selatan",
              "wind_gust": 12,
              "current_speed": 0.22,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -7.424949560305049,
            "lng": 113.77270061970677,
            "distance_from_start": 66.09164744295633,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 22,
              "wave_height": 0.78,
              "wind_speed": 14,
              "wind_from": "Selatan",
              "wind_gust": 14,
              "current_speed": 0.41,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.4511929566706385,
            "lng": 113.95581831534246,
            "distance_from_start": 77.10692201678238,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.82,
              "wind_speed": 13,
              "wind_from": "Selatan",
              "wind_gust": 17,
              "current_speed": 0.4,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.512525598762717,
            "lng": 114.1298753637302,
            "distance_from_start": 88.12219659060843,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.89,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 21,
              "current_speed": 0.46,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.5776840627588316,
            "lng": 114.30294451904736,
            "distance_from_start": 99.13747116443449,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.97,
              "wind_speed": 14,
              "wind_from": "Tenggara",
              "wind_gust": 21,
              "current_speed": 0.72,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.642842526754946,
            "lng": 114.47601367436451,
            "distance_from_start": 110.15274573826053,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.87,
              "wind_speed": 15,
              "wind_from": "Timur",
              "wind_gust": 23,
              "current_speed": 0.8,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -7.708000990751061,
            "lng": 114.64908282968167,
            "distance_from_start": 121.16802031208658,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 22,
              "wave_height": 0.82,
              "wind_speed": 12,
              "wind_from": "Timur Laut",
              "wind_gust": 18,
              "current_speed": 0.46,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -7.773159454747176,
            "lng": 114.82215198499883,
            "distance_from_start": 132.18329488591266,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 24,
              "wave_height": 0.78,
              "wind_speed": 10,
              "wind_from": "Timur Laut",
              "wind_gust": 16,
              "current_speed": 0.26,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -7.83831791874329,
            "lng": 114.99522114031598,
            "distance_from_start": 143.1985694597387,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.71,
              "wind_speed": 12,
              "wind_from": "Timur Laut",
              "wind_gust": 14,
              "current_speed": 0.43,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.903476382739405,
            "lng": 115.16829029563313,
            "distance_from_start": 154.21384403356475,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 0.72,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 9,
              "current_speed": 0.54,
              "current_to": "Timur"
            }
          },
          {
            "lat": -7.968976714141663,
            "lng": 115.34118623494267,
            "distance_from_start": 165.2291186073908,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 22,
              "wave_height": 0.77,
              "wind_speed": 13,
              "wind_from": "Timur",
              "wind_gust": 13,
              "current_speed": 0.53,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -8.068625644450607,
            "lng": 115.496779898978,
            "distance_from_start": 176.24439318121685,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 26,
              "wave_height": 0.81,
              "wind_speed": 14,
              "wind_from": "Timur",
              "wind_gust": 21,
              "current_speed": 0.65,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": -8.168274574759554,
            "lng": 115.65237356301334,
            "distance_from_start": 187.25966775504293,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 18,
              "wave_height": 0.89,
              "wind_speed": 16,
              "wind_from": "Timur",
              "wind_gust": 25,
              "current_speed": 0.38,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -8.289614824697212,
            "lng": 115.78713823281568,
            "distance_from_start": 198.27494232886897,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 22,
              "wave_height": 0.97,
              "wind_speed": 18,
              "wind_from": "Timur",
              "wind_gust": 27,
              "current_speed": 0.7,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -8.442362061408744,
            "lng": 115.88943381219295,
            "distance_from_start": 209.29021690269502,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 19,
              "wave_height": 0.97,
              "wind_speed": 14,
              "wind_from": "Timur",
              "wind_gust": 22,
              "current_speed": 1.02,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -8.602161764160439,
            "lng": 115.98054894885404,
            "distance_from_start": 220.30549147652107,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 22,
              "wave_height": 0.71,
              "wind_speed": 14,
              "wind_from": "Timur",
              "wind_gust": 21,
              "current_speed": 0.68,
              "current_to": "Selatan"
            }
          },
          {
            "lat": -8.730093,
            "lng": 116.077055,
            "distance_from_start": 231.32076605034715,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 23,
              "wave_height": 0.94,
              "wind_speed": 13,
              "wind_from": "Tenggara",
              "wind_gust": 19,
              "current_speed": 0.42,
              "current_to": "Selatan"
            }
          }
        ],
        "departure_time": "2026-08-24T07:00",
        "arrival_time": "2026-08-25T07:00",
        "timezone": "Asia/Jakarta",
        "speed": 10,
        "distance": "231.32"
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Tanjung Perak Surabaya",
          "province": "Jawa Timur",
          "weather": {
            "wind_speed": 12,
            "wind_gust": 6,
            "wind_from": "Timur",
            "current_speed": 0.16,
            "current_to": "Tenggara",
            "wave_height": 0.45,
            "weather": "Cerah Berawan",
            "temp_avg": 25.43,
            "rh_avg": 82.33,
            "visibility": 17
          }
        },
        "destination": {
          "name": "Pelabuhan Lembar",
          "province": "NTB",
          "weather": {
            "wind_speed": 13,
            "wind_gust": 19,
            "wind_from": "Tenggara",
            "current_speed": 0.42,
            "current_to": "Selatan",
            "wave_height": 0.94,
            "weather": "Cerah Berawan",
            "temp_avg": 25.5,
            "rh_avg": 70.25,
            "visibility": 23
          }
        }
      }
    }
  ]
}