{"id":4931,"date":"2024-11-14T03:43:15","date_gmt":"2024-11-14T03:43:15","guid":{"rendered":"https:\/\/epictripasia.com\/?page_id=4931"},"modified":"2024-12-16T14:38:58","modified_gmt":"2024-12-16T14:38:58","slug":"northern-vietnam-discovery-map","status":"publish","type":"page","link":"https:\/\/epictripasia.com\/en\/maps\/northern-vietnam-discovery-map\/","title":{"rendered":"Northern Vietnam Discovery"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Directions from Hanoi to Ho Chi Minh City<\/title>\n    <script src=\"https:\/\/api.mapbox.com\/mapbox-gl-js\/v2.7.0\/mapbox-gl.js\"><\/script>\n    <link href=\"https:\/\/api.mapbox.com\/mapbox-gl-js\/v2.7.0\/mapbox-gl.css\" rel=\"stylesheet\">\n    <script src=\"https:\/\/unpkg.com\/html2canvas@0.5.0-beta4\/dist\/html2canvas.min.js\"><\/script>\n\n    <style>\n#wa {\n    display: none !important;\n}\n\/* Set a specific height for the map container *\/\n#map {\n    height: 100vh;\n    width:100%;\n}\n#wrap{\ndisplay:flex;\njustify-content:center;\nalign-items:normal;\n}\n\n.numbered-marker{\nwidth:0; height:0;}\n\n.numbered-marker  span {\n  display:flex;\n  justify-content:center;\n  align-items:center;\n  box-sizing:border-box;\n  width: 30px;\n  height: 30px;\n  color:#fff;\n  background: #693;\n  border:solid 2px;\n  border-radius: 0 70% 70%;\n  box-shadow:0 0 2px #000;\n  cursor: pointer;\n  transform-origin:0 0;\n  transform: rotateZ(-135deg);\n}\n.numbered-marker b{\ntransform: rotateZ(135deg)}\n\n\n\/* Style for the itinerary *\/\n#itinerary-container {\n    max-width: 400px;\n    margin: 20px;\n    padding: 10px;\n    border: 1px solid #ccc;\n    border-radius: 5px;\n    background-color: #f9f9f9;\n}\n\n.itinerary-item {\n    display: flex;\n    align-items: center;\n    margin-bottom: 10px;\n}\n\n.itinerary-number {\n    margin-right: 10px;\n    font-weight: bold;\n}\n#itinerary {\t\t\n\toverflow-x: scroll;\t\n\tmargin-right: 10px;\t\n\tpadding-right: 10px;\t\n}\t\t\n    <\/style>\n<\/head>\n<body>\n\n\n    <!-- Map container -->\n<div id=\"wrap\">\t\t\t\n<div id=\"itinerary\">\n<div class=\"tab-content\">\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n                <div id=\"nb-2-configurations\" class=\"nb-2-configurations nb-configurations\" style=\"display: block;\">\n                            <div class=\"wte-itinerary-header-wrapper\">\n                <div class=\"wp-travel-engine-itinerary-header\">\n                    <h2 class=\"wpte-itinerary-title\">Itinerary<\/h2>\n                    <div class=\"aib-button-toggle toggle-button expand-all-button\">\n                        <label for=\"itinerary-toggle-button\" class=\"aib-button-label\">Expand all<\/label>\n                        <input id=\"itinerary-toggle-button\" type=\"checkbox\" class=\"checkbox\" checked=\"\">\n                    <\/div>\n                <\/div>\n            <\/div>\n                <div class=\"post-data itinerary wte-trip-itinerary-v2\">\n                <div class=\"itinerary-row active\">\n                <div class=\"wte-itinerary-head-wrap\">\n                    <div class=\"title\">Day 1 : <\/div>\n                    <a class=\"accordion-tabs-toggle active\" href=\"javascript:void(0);\">\n                        <span class=\"dashicons dashicons-arrow-down custom-toggle-tabs rotator open\"><\/span>\n                        <div class=\"itinerary-title\">\n                                                        <span>\n                            ARRIVAL IN HANOI                            <\/span>\n                        <\/div>\n                    <\/a>\n                <\/div>\n                <style id=\"itinerary-content-show\"> .itinerary-content{ disply:block!important; } <\/style>              <div class=\"itinerary-content show\" style=\"display:block;\">\n                    <div class=\"content\">\n                        <p>Upon arrival, meet and transfer to the hotel for check-in (Early check-in is NOT included &#038; subject to hotel\u2019s availability).<br>\nAccommodation in Hanoi.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n                        <div class=\"itinerary-row active\">\n                <div class=\"wte-itinerary-head-wrap\">\n                    <div class=\"title\">Day 2 : <\/div>\n                    <a class=\"accordion-tabs-toggle active\" href=\"javascript:void(0);\">\n                        <span class=\"dashicons dashicons-arrow-down custom-toggle-tabs rotator open\"><\/span>\n                        <div class=\"itinerary-title\">\n                                                        <span>\n                            HANOI CITY TOUR                        <\/span>\n                        <\/div>\n                    <\/a>\n                <\/div>\n                <style id=\"itinerary-content-show\"> .itinerary-content{ disply:block!important; } <\/style>              <div class=\"itinerary-content show\" style=\"display:block;\">\n                    <div class=\"content\">\n                        <p>Start your day early and head to the Ho Chi Minh Mausoleum, the final resting place of Vietnam&#8217;s beloved leader, Ho Chi Minh. After that, take a short walk to the nearby One Pillar Pagoda, an iconic Buddhist temple built in a unique architectural style. Next, head to the Temple of Literature, Vietnam&#8217;s first university and a Confucian temple.<br>\nSpend your afternoon exploring Hanoi&#8217;s bustling Old Quarter, also known as &#8220;36 Pho Phuong&#8221; (36 Streets). Take a stroll through its narrow, winding streets filled with shops, street vendors, and historical architecture. And visit Hoan Kiem Lake, located in the heart of Hanoi. You can take a leisurely walk around the lake or visit Ngoc Son Temple situated on an islet within the lake.<br>\nHanoi is famous for its street food. Try some local snacks like egg coffee, grilled skewers, or fresh spring rolls from street vendors.<br>\nAccommodation in Hanoi.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n                        <div class=\"itinerary-row active\">\n                <div class=\"wte-itinerary-head-wrap\">\n                    <div class=\"title\">Day 3 : <\/div>\n                    <a class=\"accordion-tabs-toggle active\" href=\"javascript:void(0);\">\n                        <span class=\"dashicons dashicons-arrow-down custom-toggle-tabs rotator open\"><\/span>\n                        <div class=\"itinerary-title\">\n                                                        <span>\n                            HANOI -NINH BINH: VISIT HOA LU, TAM COC &#038; BICH DONG PAGODA                          <\/span>\n                        <\/div>\n                    <\/a>\n                <\/div>\n                <style id=\"itinerary-content-show\"> .itinerary-content{ disply:block!important; } <\/style>              <div class=\"itinerary-content show\" style=\"display:block;\">\n                    <div class=\"content\">\n                        <p>In the morning, we will take two hours driving to Hoa Lu, the Ancient Capital of Vietnam, located in Ninh Binh province. Today, only remnants of the citadel&#8217;s splendor remain. We visited the temples of King Dinh and King Le. Afterwards, we will visit the Bich Dong Pagoda, one of the most historic and famous in Vietnam, its name means &#8220;Green Grotto&#8221; relating to its magnificent natural beauties.<br>\nAfter lunch at the local restaurant, we will continue the route to Tam Coc, an ecological tourist site in the area, known as \u201cHalong Bay on land\u201d. The limestone, the valleys and the rivers come together to form a mysterious and surprising scene. Tam Coc cruise lasts about two hours, you can enjoy the beautiful scenery of Ninh Binh.<br>\nAccommodation in Ninh Binh.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n                        <div class=\"itinerary-row active\">\n                <div class=\"wte-itinerary-head-wrap\">\n                    <div class=\"title\">Day 4 : <\/div>\n                    <a class=\"accordion-tabs-toggle active\" href=\"javascript:void(0);\">\n                        <span class=\"dashicons dashicons-arrow-down custom-toggle-tabs rotator open\"><\/span>\n                        <div class=\"itinerary-title\">\n                                                        <span>\n                            NINH BINH &#8211; HA LONG BAY                         <\/span>\n                        <\/div>\n                    <\/a>\n                <\/div>\n                <style id=\"itinerary-content-show\"> .itinerary-content{ disply:block!important; } <\/style>              <div class=\"itinerary-content show\" style=\"display:block;\">\n                    <div class=\"content\">\n                        <p>Starting early in the morning from Ninh Binh to the famous Halong Bay, along the way we can enjoy the landscapes of rice fields, farms and the Red River Delta.<br>\nUpon arrival in Halong Bay, board your cruise ship and check into your cabin. Lunch on board is based on seafood and fresh fish. Take some time to relax and enjoy the stunning views of the limestone karsts and emerald waters. In the afternoon, you will have the opportunity to explore magnificent caves. In the evening, a special dinner contemplating the sunset, followed by a session of activities on board.<br>\nOvernight on board.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n                        <div class=\"itinerary-row active\">\n                <div class=\"wte-itinerary-head-wrap\">\n                    <div class=\"title\">Day 5 : <\/div>\n                    <a class=\"accordion-tabs-toggle active\" href=\"javascript:void(0);\">\n                        <span class=\"dashicons dashicons-arrow-down custom-toggle-tabs rotator open\"><\/span>\n                        <div class=\"itinerary-title\">\n                                                        <span>\n                           HA LONG BAY &#8211; HANOI                          <\/span>\n                        <\/div>\n                    <\/a>\n                <\/div>\n                <style id=\"itinerary-content-show\"> .itinerary-content{ disply:block!important; } <\/style>              <div class=\"itinerary-content show\" style=\"display:block;\">\n                    <div class=\"content\">\n                        <p>Start your day with a refreshing Tai Chi session on the deck, surrounded by the serene beauty of Halong Bay.<br>\nDepending on the cruise itinerary, you may have some visits before disembarking from the cruise and transfer to Hanoi airport for the departure flight.\n                    <\/div>\n                <\/div>\n            <\/div>\n<\/div>\n<script>\n\t;(function() {\n\t\tvar toggleTab = function(row, force = null) {\n\t\t\tvar content = row.querySelector(\".itinerary-content\")\n\t\t\tvar toggler = row.querySelector(\".accordion-tabs-toggle\")\n\t\t\tvar condition = force === null ? ! toggler.classList.contains(\"active\") : force\n\t\t\tvar height = content.scrollHeight\n\t\t\tcontent.classList.toggle(\"active\", condition)\n\t\t\tif(condition) content.style.maxHeight = height + \"px\"\n\t\t\telse content.style.maxHeight = \"0px\"\n\t\t\ttoggler.classList.toggle(\"active\", condition)\n\t\t}\n\n\t\tvar handleToggleClick = function(row) {\n\t\t\treturn function(event) {\n\t\t\t\tvar target =  event.target\n\t\t\t\tif(!!target.closest(\".wte-itinerary-head-wrap\")) {\n\t\t\t\t\ttoggleTab(row)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar setContentHeight = function(row) {\n\t\t\tvar content = row.querySelector(\".itinerary-content\")\n\t\t\tvar scrollHeight = content.scrollHeight\n\t\t\tif(content.classList.contains(\"active\"))\n\t\t\t\tcontent.style.maxHeight = (scrollHeight) + \"px\"\n\t\t\telse\tcontent.style.maxHeight = \"0px\"\n\t\t}\n\n\t\tvar wrapper = document.querySelector(\".wte-trip-itinerary-v2\")\n\t\tif ( wrapper ) {\n\t\t\tvar expandall = document.getElementById('itinerary-toggle-button')\n\t\t\tvar rows = wrapper.querySelectorAll('.itinerary-row')\n\t\t\tif(expandall) {\n\t\t\t\texpandall.addEventListener(\"change\", function() {\n\t\t\t\t\tif(rows) rows.forEach(row => {\n\t\t\t\t\t\ttoggleTab(row, this.checked)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t\tif ( rows ) {\n\t\t\t\trows.forEach(function(row) {\n\t\t\t\t\t\/\/ setContentHeight(row)\n\t\t\t\t\trow.addEventListener('click', handleToggleClick(row))\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t})();\n<\/script>\n\t\t\t<\/div><div id=\"nb-3-configurations\" class=\"nb-3-configurations nb-configurations\" style=\" display:none;\">\n\t\t\t\t\n\n<div class=\"post-data cost\">\n\t<h2 class=\"wpte-cost-tab-title\">Services<\/h2>\t<div class=\"content\">\n\t\t<h3>Included<\/h3>\t\t<ul id=\"include-result\">\n\t\t\t<li>&#8211;\tAccommodation in hotels 4* or 5* with breakfast.<\/li><li>&#8211;\tLunch on all tour days.<\/li><li>&#8211;\tPrivate transport as mentioned in the program.<\/li><li>&#8211;\tLocal guides with a lot of experience.<\/li><li>&#8211;\tTickets and boat excursion as mentioned in the program. <\/li><li>&#8211;\tAll operating service charges.<\/li>\t\t<\/ul>\n\t\t\t<\/div>\n\t<div class=\"content\">\n\t\t<h3>Excluded<\/h3>\t\t<ul id=\"exclude-result\">\n\t\t\t<li>&#8211;\tOnline visa.<\/li><li>&#8211;\tEarly check-in and late check-out are subject to availability with a surcharge.<\/li><li>&#8211;\tRound-trip international flights to your country of origin.<\/li><li>&#8211;\tAll domestic flights.<\/li><li>&#8211;\tDrinks and meals not specified in the itinerary.<\/li><li>&#8211;\tOther services not mentioned in the list of included services.<\/li>\t\t<\/ul>\n\t\t\t<\/div>\n<\/div>\n\n\t\t\t<\/div><div id=\"nb-6-configurations\" class=\"nb-6-configurations nb-configurations\" style=\"display: none;\">\n\t\t\t\t\n\n<div class=\"post-data\">\n\t\t<div class=\"content\">\n\t\t\t\t\t<div class=\"trip-map iframe\">\n\t\t\t\t<iframe loading=\"lazy\" src=\"https:\/\/epictripasia.com\/maps\/vietnam-pedal-paradise\/\" width=\"600\" height=\"700\" style=\"border:0\" allowfullscreen=\"\"><\/iframe>\t\t\t<\/div>\n\t\t\t\t<\/div>\n<\/div>\n\n\t\t\t<\/div><div id=\"nb-7-configurations\" class=\"nb-7-configurations nb-configurations\" style=\" display:none;\">\n\t\t\t\t\n\n<div class=\"post-data highlights\">\n<h2 class=\"wpte-7-title\">Highlights<\/h2>\t<!-- Display wp_editor content -->\n\t\t\t<ul>\n<li>Visit: Hanoi Old Quarter \u2013 Ninh Binh \u2018\u2019 Halong Bay on land\u201d \u2013 Halong Bay \u2013 Hue Citadel \u2013 Hoi An Ancient Town \u2013 Saigon \u2013 Mekong with floating market<\/li>\n<li>Basket boat<\/li>\n<li>Cycling<\/li>\n<li>Short cooking class<\/li>\n<\/ul>\n\t\t<!-- .\/ Display wp_editor content -->\n\n<\/div>\n\t\t\t<\/div><\/div><\/div>\t\t\t\n<div class=\"wrapper-map\">\t\t\t\n\t<div id=\"itinerary-container\"><\/div>\t\t\n\t<div id=\"map\"><\/div>\t\t\n<\/div>\t\t\t\n<\/div>\t\t\t\n    <script>\n        \/\/ Replace 'YOUR_MAPBOX_ACCESS_TOKEN' with your actual Mapbox access token\n        mapboxgl.accessToken = 'pk.eyJ1IjoibmlnaHRtYXJlc3VyZiIsImEiOiJjazFjMnRjNHYydGN5M25wa2Y4cXkwcWNyIn0.EFUSe85Grl7ptScTOtJHoA';\n\n        \/\/ Create a map centered on Hanoi\n        const map = new mapboxgl.Map({\n            container: 'map',\n            style: 'mapbox:\/\/styles\/mapbox\/streets-v11',\n            center: [108.3348, 15.8801],\n            zoom: 4\n        });\n\n        \/\/ Add navigation control to the map\n        map.addControl(new mapboxgl.NavigationControl());\n\n        \/\/ Function to create a popup with the location name and remove the close button\n        function createPopup(locationName, number) {\n            return new mapboxgl.Popup({ offset: 25, closeButton: false })\n                .setHTML(`<h3>${locationName}<\/h3>`);\n        }\n\n        \/\/ Add numbered markers for Hanoi, Ha Long Bay, Hue, Hoi An, Da Nang, Ho Chi Minh City, Mekong Delta, Cai Be, and Cu Chi\nconst markers = [\n    [105.8542, 21.0285, 'Hanoi'],          \/\/ Hanoi\n    [105.9989, 20.2539, 'Ninh Binh'],      \/\/ Ninh Binh\n    [105.9444, 20.2554, 'Hoa Lu'],         \/\/ Hoa Lu\n    [105.9336, 20.2401, 'Tam Coc'],        \/\/ Tam Coc\n    [107.0587, 20.9101, 'Ha Long Bay'],    \/\/ Ha Long Bay\n    [105.8542, 21.0285, 'Hanoi']           \/\/ Hanoi (return)\n];\n\n        markers.forEach((markerData, index) => {\n            const markerElement = document.createElement('div');\n            markerElement.className = 'numbered-marker';\n            markerElement.innerHTML = `<span class=\"marker-number\"><b>${index + 1}<\/b><\/span>`;\n            \n            const marker = new mapboxgl.Marker(markerElement)\n                .setLngLat([markerData[0], markerData[1]])\n                .addTo(map);\n\n            marker.setPopup(createPopup(markerData[2], index + 1)).addTo(map);\n        });\n\n        const waypoints = markers.map(marker => ({\n            coordinates: [marker[0], marker[1]],\n            markerName: marker[2]\n        }));\n\n        \/\/ Use Mapbox Directions API to get route information\n        const directionsRequest = 'https:\/\/api.mapbox.com\/directions\/v5\/mapbox\/driving\/' +\n            waypoints.map(waypoint => `${waypoint.coordinates[0]},${waypoint.coordinates[1]}`).join(';') +\n            `?steps=true&geometries=geojson&access_token=${mapboxgl.accessToken}`;\n\n\n        fetch(directionsRequest)\n            .then(response => response.json())\n            .then(data => {\n                console.log(data); \/\/ Log the API response to the console\n                \/\/ Draw the route on the map\n                map.addSource('route', {\n                    'type': 'geojson',\n                    'data': {\n                        'type': 'Feature',\n                        'properties': {},\n                        'geometry': data.routes[0].geometry\n                    }\n                });\n\n                map.addLayer({\n                    'id': 'route',\n                    'type': 'line',\n                    'source': 'route',\n                    'layout': {\n                        'line-join': 'round',\n                        'line-cap': 'round'\n                    },\n                    'paint': {\n                        'line-color': '#3887be',\n                        'line-width': 5\n                    }\n                });\n            })\n            .catch(error => console.error('Error fetching directions:', error));\n\n        \/\/ Create the itinerary HTML\n        const itineraryContainer = document.getElementById('itinerary-container');\n        waypoints.forEach((waypoint, index) => {\n            const itineraryItem = document.createElement('div');\n            itineraryItem.className = 'itinerary-item';\n\n            const itineraryNumber = document.createElement('div');\n            itineraryNumber.className = 'numbered-marker';\n            itineraryNumber.innerHTML= `<span class=\"marker-number\"><b>${index + 1}<\/b><\/span>`;\n            itineraryNumber.style.marginLeft='1rem';\n            itineraryNumber.style.marginTop='2rem';\n            itineraryNumber.style.marginRight='2rem';\n            const itineraryText = document.createElement('div');\n            itineraryText.textContent = `${waypoint.markerName}`;\n\n            itineraryItem.appendChild(itineraryNumber);\n            itineraryItem.appendChild(itineraryText);\n            itineraryContainer.appendChild(itineraryItem);\n        });\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Directions from Hanoi to Ho Chi Minh City Itinerary Expand all Day 1 : ARRIVAL IN HANOI Upon arrival, meet and transfer to the hotel for check-in (Early check-in is &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2984,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-4931","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/pages\/4931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/comments?post=4931"}],"version-history":[{"count":9,"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/pages\/4931\/revisions"}],"predecessor-version":[{"id":4953,"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/pages\/4931\/revisions\/4953"}],"up":[{"embeddable":true,"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/pages\/2984"}],"wp:attachment":[{"href":"https:\/\/epictripasia.com\/en\/wp-json\/wp\/v2\/media?parent=4931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}