{
  "routes": [
    {
      "route_name": "Rute Sanana",
      "route_forecast": {
        "coordinates": [
          {
            "lat": 0.7800990409178894,
            "lng": 127.38834792668746,
            "distance_from_start": 0,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 25,
              "wave_height": 0.25,
              "wind_speed": 3,
              "wind_from": "Selatan",
              "current_speed": 11.43,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": 0.6617929808864598,
            "lng": 127.29229099585278,
            "distance_from_start": 9.861575280073128,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 21,
              "wave_height": 0.24,
              "wind_speed": 1,
              "wind_from": "Barat Laut",
              "current_speed": 13.08,
              "current_to": "Selatan"
            }
          },
          {
            "lat": 0.5147232787218943,
            "lng": 127.21915834407449,
            "distance_from_start": 19.723150560146255,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 21,
              "wave_height": 0.47,
              "wind_speed": 1,
              "wind_from": "Barat Laut",
              "current_speed": 22.61,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": 0.3676535765573288,
            "lng": 127.14602569229619,
            "distance_from_start": 29.58472584021938,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 23,
              "wave_height": 0.58,
              "wind_speed": 1,
              "wind_from": "Barat",
              "current_speed": 32.91,
              "current_to": "Selatan"
            }
          },
          {
            "lat": 0.22058387439276328,
            "lng": 127.0728930405179,
            "distance_from_start": 39.44630112029251,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 28,
              "wave_height": 0.67,
              "wind_speed": 1,
              "wind_from": "Barat",
              "current_speed": 17.05,
              "current_to": "Timur"
            }
          },
          {
            "lat": 0.0735141722281979,
            "lng": 126.9997603887396,
            "distance_from_start": 49.30787640036563,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 16,
              "wave_height": 0.71,
              "wind_speed": 2,
              "wind_from": "Barat Laut",
              "current_speed": 5.25,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.07355552993636771,
            "lng": 126.92662773696132,
            "distance_from_start": 59.16945168043876,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 13,
              "wave_height": 0.71,
              "wind_speed": 2,
              "wind_from": "Barat Laut",
              "current_speed": 16.94,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": -0.2206252321009331,
            "lng": 126.85349508518303,
            "distance_from_start": 69.0310269605119,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 24,
              "wave_height": 0.75,
              "wind_speed": 1,
              "wind_from": "Barat",
              "current_speed": 14.2,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.37317744646083756,
            "lng": 126.79654118018824,
            "distance_from_start": 78.89260224058502,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 35,
              "wave_height": 0.77,
              "wind_speed": 1,
              "wind_from": "Barat",
              "current_speed": 39.4,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.5344104303893966,
            "lng": 126.7652039939044,
            "distance_from_start": 88.75417752065815,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 33,
              "wave_height": 0.75,
              "wind_speed": 1,
              "wind_from": "Barat",
              "current_speed": 43.94,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.6956434143179555,
            "lng": 126.73386680762056,
            "distance_from_start": 98.61575280073126,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 40,
              "wave_height": 0.73,
              "wind_speed": 1,
              "wind_from": "Barat",
              "current_speed": 40.47,
              "current_to": "Timur"
            }
          },
          {
            "lat": -0.8568763982465146,
            "lng": 126.70252962133671,
            "distance_from_start": 108.4773280808044,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 44,
              "wave_height": 0.71,
              "wind_speed": 2,
              "wind_from": "Barat",
              "current_speed": 16.81,
              "current_to": "Timur"
            }
          },
          {
            "lat": -1.0181093821750737,
            "lng": 126.67119243505287,
            "distance_from_start": 118.33890336087752,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 26,
              "wave_height": 0.67,
              "wind_speed": 2,
              "wind_from": "Barat",
              "current_speed": 9.09,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": -1.1793423661036326,
            "lng": 126.63985524876902,
            "distance_from_start": 128.20047864095065,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 30,
              "wave_height": 0.66,
              "wind_speed": 2,
              "wind_from": "Barat",
              "current_speed": 24.08,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": -1.3405753500321917,
            "lng": 126.60851806248517,
            "distance_from_start": 138.0620539210238,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 45,
              "wave_height": 0.66,
              "wind_speed": 3,
              "wind_from": "Barat",
              "current_speed": 34.53,
              "current_to": "Timur Laut"
            }
          },
          {
            "lat": -1.5018083339607509,
            "lng": 126.57718087620134,
            "distance_from_start": 147.9236292010969,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 53,
              "wave_height": 0.65,
              "wind_speed": 3,
              "wind_from": "Barat",
              "current_speed": 29.88,
              "current_to": "Timur Laut"
            }
          },
          {
            "lat": -1.6630413178893098,
            "lng": 126.54584368991749,
            "distance_from_start": 157.78520448117004,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 56,
              "wave_height": 0.61,
              "wind_speed": 3,
              "wind_from": "Barat",
              "current_speed": 9.87,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": -1.8242743018178686,
            "lng": 126.51450650363364,
            "distance_from_start": 167.64677976124315,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 41,
              "wave_height": 0.55,
              "wind_speed": 3,
              "wind_from": "Barat",
              "current_speed": 30.42,
              "current_to": "Utara"
            }
          },
          {
            "lat": -1.935888994681403,
            "lng": 126.426468195711,
            "distance_from_start": 177.5083550413163,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 35,
              "wave_height": 0.09,
              "wind_speed": 4,
              "wind_from": "Barat",
              "current_speed": 34.17,
              "current_to": "Utara"
            }
          },
          {
            "lat": -1.988225969965346,
            "lng": 126.27069049163408,
            "distance_from_start": 187.3699303213894,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 28,
              "wave_height": 0.05,
              "wind_speed": 4,
              "wind_from": "Barat",
              "current_speed": 24.38,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": -1.9835294625666822,
            "lng": 126.10770510289089,
            "distance_from_start": 197.23150560146252,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 32,
              "wave_height": 0.04,
              "wind_speed": 4,
              "wind_from": "Barat",
              "current_speed": 14.71,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": -1.987461593896981,
            "lng": 125.95045596013478,
            "distance_from_start": 207.09308088153566,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 52,
              "wave_height": 0.01,
              "wind_speed": 2,
              "wind_from": "Barat",
              "current_speed": 22.94,
              "current_to": "Tenggara"
            }
          }
        ],
        "departure_time": "2025-02-17T11:00",
        "arrival_time": "2025-02-18T00:00",
        "timezone": "Asia/Jayapura",
        "speed": 16,
        "distance": 207
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Ahmad Yani Ternate",
          "province": "Maluku Utara",
          "weather": {
            "wind_speed": 3,
            "wind_gust": 6,
            "wind_from": "Selatan",
            "current_speed": 11.43,
            "current_to": "Tenggara",
            "wave_height": 0.25,
            "weather": "Hujan Ringan",
            "temp_avg": 26.52,
            "rh_avg": 83.85,
            "visibility": 25
          }
        },
        "destination": {
          "name": "Pelabuhan Sanana",
          "province": "Maluku Utara",
          "weather": {
            "wind_speed": 2,
            "wind_gust": 5,
            "wind_from": "Barat",
            "current_speed": 10.36,
            "current_to": "Barat Laut",
            "wave_height": 0.03,
            "weather": "Berawan Tebal",
            "temp_avg": 26.3,
            "rh_avg": 84.97,
            "visibility": 43
          }
        }
      }
    },
    {
      "route_name": "Ternate → Bitung",
      "route_forecast": {
        "coordinates": [
          {
            "lat": 0.7801226013268092,
            "lng": 127.38837672159747,
            "distance_from_start": 0,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 26,
              "wave_height": 0.24,
              "wind_speed": 2,
              "wind_from": "Timur Laut",
              "current_speed": 6.67,
              "current_to": "Barat"
            }
          },
          {
            "lat": 0.759707948328512,
            "lng": 127.29755781786535,
            "distance_from_start": 6.9203357002631245,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 14,
              "wave_height": 0.16,
              "wind_speed": 4,
              "wind_from": "Barat",
              "current_speed": 14.38,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": 0.791999362743027,
            "lng": 127.18689913699913,
            "distance_from_start": 13.840671400526249,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 17,
              "wave_height": 0.6,
              "wind_speed": 3,
              "wind_from": "Barat Daya",
              "current_speed": 20.45,
              "current_to": "Tenggara"
            }
          },
          {
            "lat": 0.8241867521868369,
            "lng": 127.07620917148968,
            "distance_from_start": 20.76100710078937,
            "weather": {
              "weather": "Hujan Sedang",
              "visibility": 23,
              "wave_height": 0.78,
              "wind_speed": 5,
              "wind_from": "Selatan",
              "current_speed": 40.92,
              "current_to": "Timur"
            }
          },
          {
            "lat": 0.8563741416306467,
            "lng": 126.96551920598023,
            "distance_from_start": 27.681342801052498,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 13,
              "wave_height": 1.03,
              "wind_speed": 6,
              "wind_from": "Barat Daya",
              "current_speed": 47.31,
              "current_to": "Timur"
            }
          },
          {
            "lat": 0.8885615310744567,
            "lng": 126.85482924047078,
            "distance_from_start": 34.601678501315625,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 16,
              "wave_height": 1.3,
              "wind_speed": 7,
              "wind_from": "Barat Daya",
              "current_speed": 35.63,
              "current_to": "Timur"
            }
          },
          {
            "lat": 0.9207489205182665,
            "lng": 126.74413927496133,
            "distance_from_start": 41.52201420157874,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 22,
              "wave_height": 1.27,
              "wind_speed": 6,
              "wind_from": "Barat Daya",
              "current_speed": 15.11,
              "current_to": "Timur"
            }
          },
          {
            "lat": 0.9529363099620763,
            "lng": 126.63344930945188,
            "distance_from_start": 48.44234990184187,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 36,
              "wave_height": 1.21,
              "wind_speed": 6,
              "wind_from": "Barat Daya",
              "current_speed": 6.48,
              "current_to": "Selatan"
            }
          },
          {
            "lat": 0.9851236994058863,
            "lng": 126.52275934394243,
            "distance_from_start": 55.362685602104996,
            "weather": {
              "weather": "Hujan Sedang",
              "visibility": 44,
              "wave_height": 1.2,
              "wind_speed": 6,
              "wind_from": "Barat Daya",
              "current_speed": 22.46,
              "current_to": "Selatan"
            }
          },
          {
            "lat": 1.0173110888496961,
            "lng": 126.41206937843297,
            "distance_from_start": 62.28302130236813,
            "weather": {
              "weather": "Hujan Sedang",
              "visibility": 20,
              "wave_height": 1.15,
              "wind_speed": 5,
              "wind_from": "Barat Daya",
              "current_speed": 27.66,
              "current_to": "Selatan"
            }
          },
          {
            "lat": 1.049498478293506,
            "lng": 126.30137941292352,
            "distance_from_start": 69.20335700263125,
            "weather": {
              "weather": "Hujan Sedang",
              "visibility": 10,
              "wave_height": 0.99,
              "wind_speed": 5,
              "wind_from": "Barat Daya",
              "current_speed": 30.14,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": 1.081703018455953,
            "lng": 126.19069052952968,
            "distance_from_start": 76.12369270289437,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 24,
              "wave_height": 0.97,
              "wind_speed": 3,
              "wind_from": "Barat Daya",
              "current_speed": 17.73,
              "current_to": "Barat"
            }
          },
          {
            "lat": 1.113929638676654,
            "lng": 126.08000303926555,
            "distance_from_start": 83.04402840315748,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 42,
              "wave_height": 0.99,
              "wind_speed": 4,
              "wind_from": "Barat Daya",
              "current_speed": 10.15,
              "current_to": "Barat"
            }
          },
          {
            "lat": 1.1461562588973548,
            "lng": 125.96931554900141,
            "distance_from_start": 89.96436410342062,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 48,
              "wave_height": 0.99,
              "wind_speed": 5,
              "wind_from": "Barat Daya",
              "current_speed": 20.7,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": 1.1783828791180557,
            "lng": 125.85862805873728,
            "distance_from_start": 96.88469980368374,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 30,
              "wave_height": 1.06,
              "wind_speed": 8,
              "wind_from": "Barat Laut",
              "current_speed": 19.61,
              "current_to": "Barat Daya"
            }
          },
          {
            "lat": 1.2106094993387566,
            "lng": 125.74794056847314,
            "distance_from_start": 103.80503550394687,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 24,
              "wave_height": 1.21,
              "wind_speed": 5,
              "wind_from": "Barat Daya",
              "current_speed": 7.39,
              "current_to": "Barat"
            }
          },
          {
            "lat": 1.2428361195594575,
            "lng": 125.63725307820901,
            "distance_from_start": 110.72537120420999,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 29,
              "wave_height": 1.25,
              "wind_speed": 5,
              "wind_from": "Barat Daya",
              "current_speed": 16.82,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": 1.2750627397801584,
            "lng": 125.52656558794487,
            "distance_from_start": 117.64570690447313,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 34,
              "wave_height": 1.18,
              "wind_speed": 3,
              "wind_from": "Barat Daya",
              "current_speed": 17.88,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": 1.3073085480437867,
            "lng": 125.41587732343359,
            "distance_from_start": 124.56604260473625,
            "weather": {
              "weather": "Cerah Berawan",
              "visibility": 33,
              "wave_height": 1.14,
              "wind_speed": 1,
              "wind_from": "Barat Daya",
              "current_speed": 17.49,
              "current_to": "Barat Laut"
            }
          },
          {
            "lat": 1.3395551191916084,
            "lng": 125.30518902813955,
            "distance_from_start": 131.48637830499936,
            "weather": {
              "weather": "Berawan Tebal",
              "visibility": 25,
              "wave_height": 1.07,
              "wind_speed": 1,
              "wind_from": "Barat Daya",
              "current_speed": 13.34,
              "current_to": "Barat"
            }
          },
          {
            "lat": 1.37180169033943,
            "lng": 125.19450073284553,
            "distance_from_start": 138.4067140052625,
            "weather": {
              "weather": "Hujan Ringan",
              "visibility": 9,
              "wave_height": 0.34,
              "wind_speed": 5,
              "wind_from": "Tenggara",
              "current_speed": 17.55,
              "current_to": "Selatan"
            }
          },
          {
            "lat": 1.438490029050854,
            "lng": 125.19154872604275,
            "distance_from_start": 145.32704970552564,
            "weather": {
              "weather": "Hujan Lebat",
              "visibility": 20,
              "wave_height": 0.83,
              "wind_speed": 4,
              "wind_from": "Selatan",
              "current_speed": 1.45,
              "current_to": "Timur Laut"
            }
          }
        ],
        "departure_time": "2025-02-17T15:30",
        "arrival_time": "2025-02-18T15:30",
        "timezone": "Asia/Jayapura",
        "speed": 6,
        "distance": 145
      },
      "port_forecast": {
        "origin": {
          "name": "Pelabuhan Ahmad Yani Ternate",
          "province": "Maluku Utara",
          "weather": {
            "wind_speed": 2,
            "wind_gust": 5,
            "wind_from": "Timur Laut",
            "current_speed": 6.67,
            "current_to": "Barat",
            "wave_height": 0.24,
            "weather": "Berawan Tebal",
            "temp_avg": 28.08,
            "rh_avg": 74.69,
            "visibility": 26
          }
        },
        "destination": {
          "name": "Pelabuhan Samudera Bitung",
          "province": "Sulawesi Utara",
          "weather": {
            "wind_speed": 4,
            "wind_gust": 7,
            "wind_from": "Selatan",
            "current_speed": 1.45,
            "current_to": "Timur Laut",
            "wave_height": 0.83,
            "weather": "Hujan Lebat",
            "temp_avg": 27.05,
            "rh_avg": 80.8,
            "visibility": 19
          }
        }
      }
    }
  ]
}