{"id":3879,"date":"2025-11-11T23:19:25","date_gmt":"2025-11-11T15:19:25","guid":{"rendered":"https:\/\/visitjohor2026.my\/?page_id=3879"},"modified":"2026-01-21T05:52:56","modified_gmt":"2026-01-20T21:52:56","slug":"event","status":"publish","type":"page","link":"https:\/\/visitjohor2026.my\/ms\/event\/","title":{"rendered":"Geografi"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3879\" class=\"elementor elementor-3879\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4d202b0 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"4d202b0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-d545fb7 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"d545fb7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8298f8a elementor-widget elementor-widget-image\" data-id=\"8298f8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/visitjohor2026.my\/wp-content\/uploads\/2025\/11\/dji_fly_20230618_181014_78_1687099655025_photo.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b8ceca8 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"b8ceca8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e61d3ef elementor-widget elementor-widget-text-editor\" data-id=\"e61d3ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Johor is home to a diverse and welcoming community, shaped by Malay, Javanese, Bugis, Arab, Chinese, and Indian influences. The state is widely known as the birthplace of Zapin, alongside living traditions such as Ghazal Johor and Kuda Kepang, which reflect its rich artistic heritage. From music and dance to food and everyday life, Johor\u2019s culture is vibrant, expressive, and celebrated across generations<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1663bf8 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"1663bf8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f1fd85b elementor-widget elementor-widget-html\" data-id=\"f1fd85b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- Google Fonts -->\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Nunito+Sans:wght@300;400;600;700;800&display=swap\" rel=\"stylesheet\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Praise&display=swap\" rel=\"stylesheet\">\r\n\r\n<!-- Leaflet -->\r\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\" \/>\r\n<script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\"><\/script>\r\n<script src=\"https:\/\/unpkg.com\/@turf\/turf@6\/turf.min.js\"><\/script>\r\n\r\n<div class=\"route-system campaign-2026\">\r\n\r\n\r\n  <!-- LEFT PANEL -->\r\n  <div class=\"route-panel\">\r\n\r\n    <h2 class=\"route-title\">\r\n      <span class=\"highlight\">Find Your <\/span><span class=\"route-word\">Route<\/span>\r\n    <\/h2>\r\n\r\n    <p class=\"route-subtitle\">Select your country to discover your journey to Johor.<\/p>\r\n\r\n    <div class=\"route-boxes\">\r\n\r\n      <!-- FROM BOX -->\r\n      <div class=\"route-box from-box\">\r\n\r\n        <div class=\"box-label\">From<\/div>\r\n\r\n        <div class=\"dropdown-selected\" id=\"dropdownSelected\">\r\n          <span id=\"selectedCountry\">Singapore<\/span>\r\n          <span class=\"arrow\">\u25bc<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"dropdown-panel\" id=\"dropdownPanel\">\r\n          <input type=\"text\" id=\"countrySearch\" placeholder=\"Search country...\" \/>\r\n\r\n            <ul id=\"countryList\">\r\n            <li data-value=\"Afghanistan\">Afghanistan<\/li>\r\n            <li data-value=\"Albania\">Albania<\/li>\r\n            <li data-value=\"Algeria\">Algeria<\/li>\r\n            <li data-value=\"American Samoa\">American Samoa<\/li>\r\n            <li data-value=\"Angola\">Angola<\/li>\r\n            <li data-value=\"Anguilla\">Anguilla<\/li>\r\n            <li data-value=\"Antigua and Barbuda\">Antigua and Barbuda<\/li>\r\n            <li data-value=\"Argentina\">Argentina<\/li>\r\n            <li data-value=\"Armenia\">Armenia<\/li>\r\n            <li data-value=\"Aruba\">Aruba<\/li>\r\n            <li data-value=\"Australia\">Australia<\/li>\r\n            <li data-value=\"Austria\">Austria<\/li>\r\n            <li data-value=\"Azerbaijan\">Azerbaijan<\/li>\r\n\r\n            <li data-value=\"Bahamas\">Bahamas<\/li>\r\n            <li data-value=\"Bahrain\">Bahrain<\/li>\r\n            <li data-value=\"Bangladesh\">Bangladesh<\/li>\r\n            <li data-value=\"Barbados\">Barbados<\/li>\r\n            <li data-value=\"Belarus\">Belarus<\/li>\r\n            <li data-value=\"Belgium\">Belgium<\/li>\r\n            <li data-value=\"Belize\">Belize<\/li>\r\n            <li data-value=\"Benin\">Benin<\/li>\r\n            <li data-value=\"Bermuda\">Bermuda<\/li>\r\n            <li data-value=\"Bhutan\">Bhutan<\/li>\r\n            <li data-value=\"Bolivia\">Bolivia<\/li>\r\n            <li data-value=\"Bosnia and Herzegovina\">Bosnia and Herzegovina<\/li>\r\n            <li data-value=\"Botswana\">Botswana<\/li>\r\n            <li data-value=\"Brazil\">Brazil<\/li>\r\n            <li data-value=\"Brunei\">Brunei<\/li>\r\n            <li data-value=\"Bulgaria\">Bulgaria<\/li>\r\n\r\n            <li data-value=\"Cambodia\">Cambodia<\/li>\r\n            <li data-value=\"Cameroon\">Cameroon<\/li>\r\n            <li data-value=\"Canada\">Canada<\/li>\r\n            <li data-value=\"Cape Verde\">Cape Verde<\/li>\r\n            <li data-value=\"Cayman Islands\">Cayman Islands<\/li>\r\n            <li data-value=\"Central African Republic\">Central African Republic<\/li>\r\n            <li data-value=\"Chad\">Chad<\/li>\r\n            <li data-value=\"Chile\">Chile<\/li>\r\n            <li data-value=\"China\">China<\/li>\r\n            <li data-value=\"Colombia\">Colombia<\/li>\r\n            <li data-value=\"Comoros\">Comoros<\/li>\r\n            <li data-value=\"Congo\">Congo<\/li>\r\n            <li data-value=\"Costa Rica\">Costa Rica<\/li>\r\n            <li data-value=\"Croatia\">Croatia<\/li>\r\n            <li data-value=\"Cuba\">Cuba<\/li>\r\n            <li data-value=\"Cyprus\">Cyprus<\/li>\r\n            <li data-value=\"Czech Republic\">Czech Republic<\/li>\r\n\r\n            <li data-value=\"Denmark\">Denmark<\/li>\r\n            <li data-value=\"Dominican Republic\">Dominican Republic<\/li>\r\n\r\n            <li data-value=\"Ecuador\">Ecuador<\/li>\r\n            <li data-value=\"Egypt\">Egypt<\/li>\r\n            <li data-value=\"El Salvador\">El Salvador<\/li>\r\n            <li data-value=\"Estonia\">Estonia<\/li>\r\n            <li data-value=\"Ethiopia\">Ethiopia<\/li>\r\n\r\n            <li data-value=\"Fiji\">Fiji<\/li>\r\n            <li data-value=\"Finland\">Finland<\/li>\r\n            <li data-value=\"France\">France<\/li>\r\n\r\n            <li data-value=\"Georgia\">Georgia<\/li>\r\n            <li data-value=\"Germany\">Germany<\/li>\r\n            <li data-value=\"Ghana\">Ghana<\/li>\r\n            <li data-value=\"Greece\">Greece<\/li>\r\n            <li data-value=\"Guatemala\">Guatemala<\/li>\r\n\r\n            <li data-value=\"Haiti\">Haiti<\/li>\r\n            <li data-value=\"Hong Kong\">Hong Kong<\/li>\r\n            <li data-value=\"Hungary\">Hungary<\/li>\r\n\r\n            <li data-value=\"Iceland\">Iceland<\/li>\r\n            <li data-value=\"India\">India<\/li>\r\n            <li data-value=\"Indonesia\">Indonesia<\/li>\r\n            <li data-value=\"Iran\">Iran<\/li>\r\n            <li data-value=\"Iraq\">Iraq<\/li>\r\n            <li data-value=\"Ireland\">Ireland<\/li>\r\n            <li data-value=\"Israel\">Israel<\/li>\r\n            <li data-value=\"Italy\">Italy<\/li>\r\n\r\n            <li data-value=\"Japan\">Japan<\/li>\r\n            <li data-value=\"Jordan\">Jordan<\/li>\r\n\r\n            <li data-value=\"Kazakhstan\">Kazakhstan<\/li>\r\n            <li data-value=\"Kenya\">Kenya<\/li>\r\n            <li data-value=\"Kuwait\">Kuwait<\/li>\r\n\r\n            <li data-value=\"Laos\">Laos<\/li>\r\n            <li data-value=\"Latvia\">Latvia<\/li>\r\n            <li data-value=\"Lebanon\">Lebanon<\/li>\r\n            <li data-value=\"Libya\">Libya<\/li>\r\n            <li data-value=\"Lithuania\">Lithuania<\/li>\r\n            <li data-value=\"Luxembourg\">Luxembourg<\/li>\r\n\r\n            <li data-value=\"Malaysia\">Malaysia<\/li>\r\n            <li data-value=\"Maldives\">Maldives<\/li>\r\n            <li data-value=\"Mexico\">Mexico<\/li>\r\n            <li data-value=\"Morocco\">Morocco<\/li>\r\n\r\n            <li data-value=\"Nepal\">Nepal<\/li>\r\n            <li data-value=\"Netherlands\">Netherlands<\/li>\r\n            <li data-value=\"New Zealand\">New Zealand<\/li>\r\n            <li data-value=\"Norway\">Norway<\/li>\r\n\r\n            <li data-value=\"Oman\">Oman<\/li>\r\n\r\n            <li data-value=\"Pakistan\">Pakistan<\/li>\r\n            <li data-value=\"Peru\">Peru<\/li>\r\n            <li data-value=\"Philippines\">Philippines<\/li>\r\n            <li data-value=\"Poland\">Poland<\/li>\r\n            <li data-value=\"Portugal\">Portugal<\/li>\r\n\r\n            <li data-value=\"Qatar\">Qatar<\/li>\r\n\r\n            <li data-value=\"Romania\">Romania<\/li>\r\n            <li data-value=\"Russia\">Russia<\/li>\r\n\r\n            <li data-value=\"Saudi Arabia\">Saudi Arabia<\/li>\r\n            <li data-value=\"Singapore\">Singapore<\/li>\r\n            <li data-value=\"South Africa\">South Africa<\/li>\r\n            <li data-value=\"South Korea\">South Korea<\/li>\r\n            <li data-value=\"Spain\">Spain<\/li>\r\n            <li data-value=\"Sri Lanka\">Sri Lanka<\/li>\r\n            <li data-value=\"Sweden\">Sweden<\/li>\r\n            <li data-value=\"Switzerland\">Switzerland<\/li>\r\n\r\n            <li data-value=\"Taiwan\">Taiwan<\/li>\r\n            <li data-value=\"Thailand\">Thailand<\/li>\r\n            <li data-value=\"Turkey\">Turkey<\/li>\r\n\r\n            <li data-value=\"United Arab Emirates\">United Arab Emirates<\/li>\r\n            <li data-value=\"United Kingdom\">United Kingdom<\/li>\r\n            <li data-value=\"United States\">United States<\/li>\r\n\r\n            <li data-value=\"Vietnam\">Vietnam<\/li>\r\n            <\/ul>\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n      <!-- ROUTE BOX -->\r\n      <div class=\"route-box route-box-info\">\r\n        <div class=\"box-label\">Route<\/div>\r\n        <div class=\"route-value\">\r\n          <span id=\"routeTimeInline\">1.0 h<\/span>\r\n          <span class=\"dot\">\u2022<\/span>\r\n          <span id=\"routeDistanceInline\">350 km<\/span>\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n  <!-- MAP -->\r\n  <div class=\"map-wrapper\">\r\n  <div id=\"map\"><\/div>\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n<style>\r\n\r\n\r\n\/* ===========================\r\n   VISIT JOHOR 2026 CAMPAIGN\r\n   =========================== *\/\r\n\r\n.campaign-2026 {\r\n  background: linear-gradient(135deg, #fdf7ff, #ffffff);\r\n}\r\n\r\n\/* Title *\/\r\n.campaign-2026 .route-title .highlight {\r\n  color: #5f2293;\r\n}\r\n\r\n.campaign-2026 .route-title .route-word {\r\n  color: #FBBE14;\r\n}\r\n\r\n\/* Boxes *\/\r\n.campaign-2026 .route-box {\r\n  border: 2px solid rgba(95,34,147,0.08);\r\n  box-shadow: 0 10px 30px rgba(95,34,147,0.08);\r\n}\r\n\r\n\/* Route value *\/\r\n.campaign-2026 .route-box-info .route-value {\r\n  color: #5f2293;\r\n}\r\n\r\n\/* From dropdown *\/\r\n.campaign-2026 .from-box .dropdown-selected {\r\n  color: #5f2293;\r\n}\r\n\r\n\/* Subtitle *\/\r\n.campaign-2026 .route-subtitle {\r\n  color: #555;\r\n}\r\n\r\n\/* Map border *\/\r\n.campaign-2026 #map {\r\n  border-left: 4px solid #FBBE14;\r\n}\r\n\r\n\/* Johor Glow override *\/\r\n.campaign-2026 .leaflet-interactive {\r\n  filter: drop-shadow(0 0 12px rgba(251,190,20,0.6));\r\n}\r\n\r\n\r\n.route-system {\r\n  display: flex;\r\n  height: 520px;\r\n  background: #ffffff;\r\n  color: #222;\r\n  border-radius: 16px;\r\n  overflow: hidden;\r\n  font-family: 'Nunito Sans', sans-serif;\r\n  box-shadow: 0 10px 30px rgba(0,0,0,0.08);\r\n}\r\n\r\n\/* LEFT PANEL *\/\r\n.route-panel {\r\n  width: 38%;\r\n  padding: 40px;\r\n  background: #ffffff;\r\n  border-right: 1px solid #eee;\r\n  position: relative;\r\n  z-index: 50;\r\n  \r\n}\r\n\r\n.route-title {\r\n  font-size: 36px;\r\n  font-weight: 800;\r\n  color: #111;\r\n  margin-bottom: 6px;\r\n  line-height: 1.2;\r\n}\r\n\r\n.route-title .highlight {\r\n  color: #5f2293;\r\n}\r\n\r\n.route-title .route-word {\r\n  font-family: 'Praise', cursive;\r\n  color: #FBBE14;\r\n  font-size: 46px;\r\n  margin-left: 6px;\r\n}\r\n\r\n.route-subtitle {\r\n  color: #666;\r\n  margin-bottom: 28px;\r\n}\r\n\r\n\/* BOXES *\/\r\n.route-boxes {\r\n  display: flex;\r\n    flex-direction: column;\r\n    gap: 20px;\r\n\r\n}\r\n\r\n.route-box {\r\n  flex: 1;\r\n  background: #ffffff;\r\n  border-radius: 14px;\r\n  padding: 15px 22px;\r\n  border: 1px solid #eee;\r\n  box-shadow: 0 6px 20px rgba(0,0,0,0.06);\r\n  position: relative;\r\n  \r\n\r\n}\r\n\r\n.box-label {\r\n  font-size: 13px;\r\n  color: #888;\r\n  font-weight: 600;\r\n  letter-spacing: 0.4px;\r\n  font-family: 'Nunito Sans', sans-serif;\r\n}\r\n\r\n\/* FROM BOX *\/\r\n.from-box .dropdown-selected {\r\n  border: none;\r\n  padding: 0;\r\n  font-size: 18px;\r\n  font-weight: 700;\r\n  color: #0b3a5d;\r\n  cursor: pointer;\r\n  display: flex;\r\n  justify-content: space-between;\r\n  font-family: 'Nunito Sans', sans-serif;\r\n  align-items: center;\r\n}\r\n\r\n\/* ROUTE BOX *\/\r\n.route-box-info .route-value {\r\n  font-size: 18px;\r\n  font-weight: 700;\r\n  color: #0b3a5d;\r\n  font-family: 'Nunito Sans', sans-serif;\r\n\r\n}\r\n\r\n.route-box-info .dot {\r\n  margin: 0 8px;\r\n  color: #999;\r\n}\r\n\r\n\/* DROPDOWN *\/\r\n.dropdown-panel {\r\n  position: absolute;\r\n  top: 100%;\r\n  left: 18px;\r\n  right: 18px;\r\n  background: #ffffff;\r\n  border: 1px solid #ddd;\r\n  border-radius: 10px;\r\n  display: none;\r\n  z-index: 9999 !important;\r\n  box-shadow: 0 10px 25px rgba(0,0,0,0.1);\r\n  margin-top: 10px;\r\n  overflow: hidden;\r\n}\r\n\r\n.dropdown-panel.active {\r\n  display: block;\r\n}\r\n\r\n#countrySearch {\r\n  width: 100%;\r\n  padding: 12px 14px;\r\n  border: none;\r\n  outline: none;\r\n  background: #f8f9fa;\r\n  border-bottom: 1px solid #ddd;\r\n}\r\n\r\n#countryList {\r\n  list-style: none;\r\n  margin: 0;\r\n  padding: 0;\r\n  max-height: 220px;\r\n  overflow-y: auto;\r\n}\r\n\r\n#countryList li {\r\n  padding: 12px 16px;\r\n  cursor: pointer;\r\n  font-weight: 600;\r\n}\r\n\r\n#countryList li:hover {\r\n  background: #f1f3f5;\r\n}\r\n\r\n\/* MAP *\/\r\n.map-wrapper {\r\n  width: 62%;\r\n  height: 100%;\r\n  position: relative;\r\n  background: #eaf3f5;\r\n  overflow: hidden;\r\n}\r\n\r\n\/* MAP *\/\r\n#map {\r\n  width: 100%;\r\n  height: 100%;\r\n}\r\n\r\n.leaflet-control-attribution {\r\n  display: none !important;\r\n}\r\n\r\n\r\n\r\n @media (max-width: 768px) {\r\n\r\n  .route-system {\r\n    flex-direction: column;\r\n    height: auto;\r\n  }\r\n\r\n  .route-panel {\r\n    width: 100%;\r\n    padding: 24px;\r\n    z-index: 1000;\r\n  }\r\n\r\n  .map-wrapper {\r\n    width: 100%;\r\n    height: 360px;\r\n  }\r\n\r\n    .route-boxes {\r\n    flex-direction: column;\r\n    gap: 16px;\r\n  }\r\n\r\n  .route-box {\r\n    width: 100%;\r\n  }\r\n\r\n  .from-box .dropdown-selected {\r\n    font-size: 20px; \/* bagi lebih ruang *\/\r\n  }\r\n\r\n  .route-box-info .route-value {\r\n    font-size: 20px;\r\n  }\r\n\r\n  .dropdown-panel {\r\n    position: fixed;\r\n    top: 140px;\r\n    left: 12px;\r\n    right: 12px;\r\n    max-height: 60vh;\r\n    overflow-y: auto;\r\n    border-radius: 16px;\r\n    z-index: 9999;\r\n  }\r\n}\r\n\r\n\r\n\r\n\r\n<\/style>\r\n\r\n<script>\r\nconst johor = { lat: 1.6413, lng: 103.6696 };\r\n\r\nconst countries = {\r\n\r\n\"Afghanistan\": { lat: 31.505769, lng: 65.847963 },\r\n\"Albania\": { lat: 41.4147, lng: 19.7206 },\r\n\"Algeria\": { lat: 36.826781, lng: 7.81334 },\r\n\"American Samoa\": { lat: -14.331, lng: -170.710007 },\r\n\"Angola\": { lat: -8.85837, lng: 13.2312 },\r\n\"Anguilla\": { lat: 18.204773, lng: -63.05383 },\r\n\"Antigua and Barbuda\": { lat: 17.1367, lng: -61.792702 },\r\n\"Argentina\": { lat: -34.559419, lng: -58.415536 },\r\n\"Armenia\": { lat: 40.750401, lng: 43.859299 },\r\n\"Aruba\": { lat: 12.501056, lng: -70.014281 },\r\n\"Australia\": { lat: -33.946098, lng: 151.177002 },\r\n\"Austria\": { lat: 48.110298, lng: 16.5697 },\r\n\"Azerbaijan\": { lat: 40.467499, lng: 50.046699 },\r\n\r\n\"Bahamas\": { lat: 25.038999, lng: -77.466202 },\r\n\"Bahrain\": { lat: 26.2708, lng: 50.633598 },\r\n\"Bangladesh\": { lat: 23.843347, lng: 90.397783 },\r\n\"Barbados\": { lat: 13.0746, lng: -59.4925 },\r\n\"Belarus\": { lat: 53.889725, lng: 28.034019 },\r\n\"Belgium\": { lat: 50.901401, lng: 4.48444 },\r\n\"Belize\": { lat: 17.539101, lng: -88.308197 },\r\n\"Benin\": { lat: 6.35723, lng: 2.38435 },\r\n\"Bermuda\": { lat: 32.364, lng: -64.6787 },\r\n\"Bhutan\": { lat: 27.403192, lng: 89.424606 },\r\n\"Bolivia\": { lat: -17.6448, lng: -63.135399 },\r\n\"Bosnia and Herzegovina\": { lat: 43.8246, lng: 18.331499 },\r\n\"Botswana\": { lat: -24.555201, lng: 25.9182 },\r\n\"Brazil\": { lat: -23.435556, lng: -46.473056 },\r\n\"Brunei\": { lat: 4.9442, lng: 114.928353 },\r\n\"Bulgaria\": { lat: 42.696693, lng: 23.411436 },\r\n\r\n\"Cambodia\": { lat: 11.5466, lng: 104.844002 },\r\n\"Cameroon\": { lat: 3.72256, lng: 11.5533 },\r\n\"Canada\": { lat: 43.6777, lng: -79.6248 },\r\n\"Cape Verde\": { lat: 14.9245, lng: -23.4935 },\r\n\"Cayman Islands\": { lat: 19.2928, lng: -81.357697 },\r\n\"Central African Republic\": { lat: 4.39848, lng: 18.5188 },\r\n\"Chad\": { lat: 12.1337, lng: 15.034 },\r\n\"Chile\": { lat: -33.3929, lng: -70.7858 },\r\n\"China\": { lat: 40.080101, lng: 116.584999 },\r\n\"Colombia\": { lat: 4.70159, lng: -74.1469 },\r\n\"Comoros\": { lat: -11.5337, lng: 43.2719 },\r\n\"Congo\": { lat: -4.2517, lng: 15.253 },\r\n\"Costa Rica\": { lat: 9.99386, lng: -84.208801 },\r\n\"Croatia\": { lat: 45.742901, lng: 16.0688 },\r\n\"Cuba\": { lat: 22.989201, lng: -82.409103 },\r\n\"Cyprus\": { lat: 34.875099, lng: 33.624901 },\r\n\"Czech Republic\": { lat: 50.1008, lng: 14.26 },\r\n\r\n\"Denmark\": { lat: 55.618099, lng: 12.656 },\r\n\"Dominican Republic\": { lat: 18.5674, lng: -68.363403 },\r\n\r\n\"Ecuador\": { lat: -0.129167, lng: -78.3575 },\r\n\"Egypt\": { lat: 30.1219, lng: 31.4056 },\r\n\"El Salvador\": { lat: 13.4409, lng: -89.055702 },\r\n\"Estonia\": { lat: 59.413299, lng: 24.8328 },\r\n\"Ethiopia\": { lat: 8.97789, lng: 38.799301 },\r\n\r\n\"Fiji\": { lat: -17.7554, lng: 177.443 },\r\n\"Finland\": { lat: 60.3172, lng: 24.963301 },\r\n\"France\": { lat: 49.0097, lng: 2.5479 },\r\n\r\n\"Georgia\": { lat: 41.669201, lng: 44.9547 },\r\n\"Germany\": { lat: 50.0379, lng: 8.5622 },\r\n\"Ghana\": { lat: 5.60519, lng: -0.166786 },\r\n\"Greece\": { lat: 37.936401, lng: 23.9445 },\r\n\"Guatemala\": { lat: 14.5833, lng: -90.5275 },\r\n\r\n\"Haiti\": { lat: 18.58005, lng: -72.2925 },\r\n\"Hong Kong\": { lat: 22.308901, lng: 113.915001 },\r\n\"Hungary\": { lat: 47.439999, lng: 19.261093 },\r\n\r\n\"Iceland\": { lat: 63.985001, lng: -22.6056 },\r\n\"India\": { lat: 28.5562, lng: 77.1000 },\r\n\"Indonesia\": { lat: -6.12556, lng: 106.6559 },\r\n\"Iran\": { lat: 35.416099, lng: 51.152199 },\r\n\"Iraq\": { lat: 33.262501, lng: 44.2346 },\r\n\"Ireland\": { lat: 53.421299, lng: -6.27007 },\r\n\"Israel\": { lat: 32.011398, lng: 34.8867 },\r\n\"Italy\": { lat: 41.800301, lng: 12.2389 },\r\n\r\n\"Japan\": { lat: 35.5494, lng: 139.7798 },\r\n\"Jordan\": { lat: 31.7226, lng: 35.993198 },\r\n\r\n\"Kazakhstan\": { lat: 43.3521, lng: 77.0405 },\r\n\"Kenya\": { lat: -1.319239, lng: 36.927799 },\r\n\"Kuwait\": { lat: 29.226601, lng: 47.968899 },\r\n\r\n\"Laos\": { lat: 17.9883, lng: 102.563 },\r\n\"Latvia\": { lat: 56.923599, lng: 23.9711 },\r\n\"Lebanon\": { lat: 33.8209, lng: 35.4884 },\r\n\"Libya\": { lat: 32.663502, lng: 13.159 },\r\n\"Lithuania\": { lat: 54.634102, lng: 25.285801 },\r\n\"Luxembourg\": { lat: 49.626575, lng: 6.211517 },\r\n\r\n\"Malaysia\": { lat: 2.74558, lng: 101.707001 },\r\n\"Maldives\": { lat: 4.19183, lng: 73.5291 },\r\n\"Mexico\": { lat: 19.4361, lng: -99.0719 },\r\n\"Morocco\": { lat: 33.3675, lng: -7.58997 },\r\n\r\n\"Nepal\": { lat: 27.6966, lng: 85.3591 },\r\n\"Netherlands\": { lat: 52.3105, lng: 4.7683 },\r\n\"New Zealand\": { lat: -37.0082, lng: 174.785 },\r\n\r\n\"Norway\": { lat: 60.193901, lng: 11.1004 },\r\n\r\n\"Oman\": { lat: 23.5933, lng: 58.2844 },\r\n\r\n\"Pakistan\": { lat: 24.9065, lng: 67.1608 },\r\n\"Peru\": { lat: -12.0294, lng: -77.1162 },\r\n\r\n\"Philippines\": { lat: 14.5086, lng: 121.0198 },\r\n\"Poland\": { lat: 52.165699, lng: 20.9671 },\r\n\"Portugal\": { lat: 38.7742, lng: -9.13417 },\r\n\r\n\"Qatar\": { lat: 25.273056, lng: 51.608056 },\r\n\r\n\"Romania\": { lat: 44.571111, lng: 26.085 },\r\n\"Russia\": { lat: 55.972599, lng: 37.4146 },\r\n\r\n\"Saudi Arabia\": { lat: 24.9578, lng: 46.6988 },\r\n\"Singapore\": { lat: 1.3644, lng: 103.9915 },\r\n\"South Africa\": { lat: -26.1337, lng: 28.242 },\r\n\"South Korea\": { lat: 37.4602, lng: 126.4407 },\r\n\"Spain\": { lat: 40.4983, lng: -3.5676 },\r\n\"Sri Lanka\": { lat: 7.180759, lng: 79.884117 },\r\n\"Sweden\": { lat: 59.651901, lng: 17.9186 },\r\n\"Switzerland\": { lat: 47.464699, lng: 8.54917 },\r\n\r\n\"Taiwan\": { lat: 25.0777, lng: 121.232 },\r\n\"Thailand\": { lat: 13.6900, lng: 100.7501 },\r\n\"Turkey\": { lat: 41.2753, lng: 28.7519 },\r\n\r\n\"United Arab Emirates\": { lat: 25.2532, lng: 55.3657 },\r\n\"United Kingdom\": { lat: 51.4700, lng: -0.4543 },\r\n\"United States\": { lat: 40.6413, lng: -73.7781 },\r\n\r\n\"Vietnam\": { lat: 10.8188, lng: 106.6518 }\r\n\r\n};\r\n\r\n\r\nconst map = L.map('map').setView([10, 110], 4);\r\n \/\/plane icon\r\nconst planeIcon = L.icon({\r\n  iconUrl: \"https:\/\/visitjohor2026.my\/wp-content\/uploads\/2026\/01\/flight.png\",\r\n  iconSize: [32, 32],\r\n  iconAnchor: [16, 16]\r\n});\r\n\r\n\r\nL.tileLayer('https:\/\/{s}.basemaps.cartocdn.com\/rastertiles\/voyager\/{z}\/{x}\/{y}{r}.png', {\r\n  attribution: '\u00a9 OpenStreetMap & CARTO',\r\n  subdomains: 'abcd',\r\n  maxZoom: 19\r\n}).addTo(map);\r\n\r\n\r\n\/\/icon pinpoint johor\r\nconst johorIcon = L.icon({\r\n  iconUrl: \"https:\/\/visitjohor2026.my\/wp-content\/uploads\/2026\/01\/Untitled-design-83-1.png\",\r\n  iconSize: [48, 48],\r\n  iconAnchor: [24, 48],\r\n  popupAnchor: [0, -48]\r\n});\r\n\r\n\r\nlet routeLine;\r\nlet markers = [];\r\nlet planeMarker;\r\nlet johorGlow;\r\n\r\n\r\nfunction haversine(lat1, lon1, lat2, lon2) {\r\n  const R = 6371;\r\n  const dLat = (lat2-lat1) * Math.PI\/180;\r\n  const dLon = (lon2-lon1) * Math.PI\/180;\r\n  const a =\r\n    Math.sin(dLat\/2) * Math.sin(dLat\/2) +\r\n    Math.cos(lat1 * Math.PI\/180) * Math.cos(lat2 * Math.PI\/180) *\r\n    Math.sin(dLon\/2) * Math.sin(dLon\/2);\r\n\r\n  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));\r\n  return R * c;\r\n}\r\n\r\nfunction drawRoute(countryName) {\r\n  const from = countries[countryName];\r\n  const to = johor;\r\n\r\n  if(routeLine) {\r\n    map.removeLayer(routeLine);\r\n    markers.forEach(m => map.removeLayer(m));\r\n    markers = [];\r\n  }\r\n\r\n  if (planeMarker) {\r\n  map.removeLayer(planeMarker);\r\n}\r\n\r\n  const distance = haversine(from.lat, from.lng, to.lat, to.lng);\r\n  const hours = distance \/ 750;\r\n\r\n  document.getElementById(\"routeTimeInline\").innerText = hours.toFixed(1) + \" h\";\r\n  document.getElementById(\"routeDistanceInline\").innerText = distance.toFixed(0) + \" km\";\r\n\r\n  const line = turf.greatCircle(\r\n    [from.lng, from.lat],\r\n    [to.lng, to.lat],\r\n    { npoints: 100 }\r\n  );\r\n\r\n  routeLine = L.geoJSON(line, {\r\n      style: {\r\n    weight: 2,\r\n    color: \"#5f2293\",\r\n    dashArray: \"6,6\",\r\n    opacity: 0.9\r\n  }\r\n  }).addTo(map);\r\n\r\n  planeMarker = L.marker([from.lat, from.lng], { icon: planeIcon }).addTo(map);\r\n\r\n  const coords = line.geometry.coordinates;\r\nanimatePlane(coords);\r\n\r\n  const markerFrom = L.marker([from.lat, from.lng]).addTo(map);\r\n  const markerTo = L.marker([to.lat, to.lng], { icon: johorIcon }).addTo(map);\r\n\r\n  markers.push(markerFrom, markerTo);\r\n\r\n    addJohorGlow(to.lat, to.lng);\r\n\r\n  map.fitBounds(routeLine.getBounds(), { padding: [50, 50] });\r\n}\r\n\r\nfunction addJohorGlow(lat, lng) {\r\n\r\n  if (johorGlow) {\r\n    map.removeLayer(johorGlow);\r\n  }\r\n\r\n  johorGlow = L.circleMarker([lat, lng], {\r\n    radius: 20,\r\n    color: \"#FBBE14\",\r\n    weight: 2,\r\n    fillColor: \"#FBBE14\",\r\n    fillOpacity: 0.35,\r\n    opacity: 0.9\r\n  }).addTo(map);\r\n\r\n  animateGlow(johorGlow);\r\n}\r\n\r\nfunction animateGlow(circle) {\r\n  let grow = true;\r\n\r\n  setInterval(() => {\r\n    let currentRadius = circle.getRadius();\r\n\r\n    if (grow) {\r\n      currentRadius += 0.6;\r\n      if (currentRadius >= 28) grow = false;\r\n    } else {\r\n      currentRadius -= 0.6;\r\n      if (currentRadius <= 18) grow = true;\r\n    }\r\n\r\n    circle.setRadius(currentRadius);\r\n  }, 60);\r\n}\r\n\r\n\r\nfunction animatePlane(lineCoords) {\r\n  let i = 0;\r\n\r\n  const interval = setInterval(() => {\r\n    if (i >= lineCoords.length) {\r\n      clearInterval(interval);\r\n      return;\r\n    }\r\n\r\n    const coord = lineCoords[i];\r\n    planeMarker.setLatLng([coord[1], coord[0]]);\r\n    i++;\r\n  }, 80);\r\n}\r\n\r\n\r\n\/* Dropdown logic *\/\r\nconst dropdownSelected = document.getElementById(\"dropdownSelected\");\r\nconst dropdownPanel = document.getElementById(\"dropdownPanel\");\r\nconst selectedCountry = document.getElementById(\"selectedCountry\");\r\nconst countrySearch = document.getElementById(\"countrySearch\");\r\nconst countryList = document.getElementById(\"countryList\");\r\n\r\ndropdownSelected.addEventListener(\"click\", function(e) {\r\n   e.stopPropagation();\r\n  dropdownPanel.classList.toggle(\"active\");\r\n\r\n  if (window.innerWidth < 768) {\r\n    map.getContainer().style.pointerEvents = dropdownPanel.classList.contains(\"active\")\r\n      ? \"none\"\r\n      : \"auto\";\r\n  }\r\n\r\n  countrySearch.focus();\r\n});\r\n\r\ncountryList.querySelectorAll(\"li\").forEach(item => {\r\n  item.addEventListener(\"click\", function() {\r\n    const value = this.dataset.value;\r\n    const name = this.innerText;\r\n\r\n    selectedCountry.innerText = name;\r\n    dropdownPanel.classList.remove(\"active\");\r\n    countrySearch.value = \"\";\r\n\r\n    if (window.innerWidth < 768) {\r\n      map.getContainer().style.pointerEvents = \"auto\";\r\n    }\r\n\r\n    drawRoute(value);\r\n  });\r\n});\r\n\r\ncountrySearch.addEventListener(\"input\", function() {\r\n  const search = this.value.toLowerCase();\r\n\r\n  countryList.querySelectorAll(\"li\").forEach(item => {\r\n    const text = item.innerText.toLowerCase();\r\n    item.style.display = text.includes(search) ? \"block\" : \"none\";\r\n  });\r\n});\r\n\r\ndocument.addEventListener(\"click\", function() {\r\n dropdownPanel.classList.remove(\"active\");\r\n\r\n  if (window.innerWidth < 768) {\r\n    map.getContainer().style.pointerEvents = \"auto\";\r\n  }\r\n});\r\n\r\n\/\/ Default load\r\ndrawRoute(\"Singapore\");\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Johor is home to a diverse and welcoming community, shaped by Malay, Javanese, Bugis, Arab, Chinese, and Indian influences. The state is widely known as the birthplace of Zapin, alongside living traditions such as Ghazal Johor and Kuda Kepang, which reflect its rich artistic heritage. From music and dance to food and everyday life, Johor\u2019s culture is vibrant, expressive, and celebrated across generations Find Your Route Select your country to discover your journey to Johor. From Singapore \u25bc Afghanistan Albania Algeria American Samoa Angola Anguilla Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Brazil Brunei Bulgaria Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Colombia Comoros Congo Costa Rica Croatia Cuba Cyprus Czech Republic Denmark Dominican Republic Ecuador Egypt El Salvador Estonia Ethiopia Fiji Finland France Georgia Germany Ghana Greece Guatemala Haiti Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Japan Jordan Kazakhstan Kenya Kuwait Laos Latvia Lebanon Libya Lithuania Luxembourg Malaysia Maldives Mexico Morocco Nepal Netherlands New Zealand Norway Oman Pakistan Peru Philippines Poland Portugal Qatar Romania Russia Saudi Arabia Singapore South Africa South Korea Spain Sri Lanka Sweden Switzerland Taiwan Thailand Turkey United Arab Emirates United Kingdom United States Vietnam Route 1.0 h \u2022 350 km<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3879","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/visitjohor2026.my\/ms\/wp-json\/wp\/v2\/pages\/3879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/visitjohor2026.my\/ms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/visitjohor2026.my\/ms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/visitjohor2026.my\/ms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/visitjohor2026.my\/ms\/wp-json\/wp\/v2\/comments?post=3879"}],"version-history":[{"count":194,"href":"https:\/\/visitjohor2026.my\/ms\/wp-json\/wp\/v2\/pages\/3879\/revisions"}],"predecessor-version":[{"id":9886,"href":"https:\/\/visitjohor2026.my\/ms\/wp-json\/wp\/v2\/pages\/3879\/revisions\/9886"}],"wp:attachment":[{"href":"https:\/\/visitjohor2026.my\/ms\/wp-json\/wp\/v2\/media?parent=3879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}