{"id":1462,"date":"2025-06-23T19:43:40","date_gmt":"2025-06-23T19:43:40","guid":{"rendered":"https:\/\/sg-webserver.phys.lsu.edu\/?page_id=1462"},"modified":"2025-08-18T20:18:03","modified_gmt":"2025-08-18T20:18:03","slug":"hasp-map-tracking","status":"publish","type":"page","link":"https:\/\/laspace.lsu.edu\/hasp\/hasp-map-tracking\/","title":{"rendered":"HASP Map Tracking"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1462\" class=\"elementor elementor-1462\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76c9f36 e-flex e-con-boxed e-con e-parent\" data-id=\"76c9f36\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15f01df eael_simple_menu_hamburger_disable_selected_menu_no eael-simple-menu-hamburger-align-right eael-simple-menu-link-full-width eael-hamburger--tablet elementor-widget elementor-widget-eael-simple-menu\" data-id=\"15f01df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-simple-menu.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n                        @media screen and (max-width: 1024px) {\n                            .eael-hamburger--tablet {\n                                .eael-simple-menu-horizontal,\n                                .eael-simple-menu-vertical {\n                                    display: none;\n                                }\n                            }\n                            .eael-hamburger--tablet {\n                                .eael-simple-menu-container .eael-simple-menu-toggle {\n                                    display: block;\n                                }\n                            }\n                        }\n                        .eael-simple-menu-container.eael-simple-menu--loading > ul {\n                            display: -webkit-box !important;\n                            display: -ms-flexbox !important;\n                            display: flex !important;\n                            list-style: none !important;\n                        }\n                        .eael-simple-menu-container.eael-simple-menu--loading li ul {\n                            visibility: hidden !important;\n                            opacity: 0 !important;\n                        }\n                    <\/style>            <div data-hamburger-icon=\"&lt;svg aria-hidden=&quot;true&quot; class=&quot;e-font-icon-svg e-fas-bars&quot; viewBox=&quot;0 0 448 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" data-indicator-icon=\"&lt;svg aria-hidden=&quot;true&quot; class=&quot;e-font-icon-svg e-fas-angle-down&quot; viewBox=&quot;0 0 320 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" data-dropdown-indicator-icon=\"&lt;svg class=&quot;e-font-icon-svg e-fas-angle-down&quot; viewBox=&quot;0 0 320 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" class=\"eael-simple-menu-container eael-simple-menu--loading eael-simple-menu-align-center eael-simple-menu-dropdown-align-left preset-2 eael-simple-menu-link-full-width\" data-hamburger-breakpoints=\"{&quot;mobile&quot;:&quot;Mobile Portrait (&gt; 767px)&quot;,&quot;tablet&quot;:&quot;Tablet Portrait (&gt; 1024px)&quot;,&quot;desktop&quot;:&quot;Desktop (&gt; 2400px)&quot;,&quot;none&quot;:&quot;None&quot;}\" data-hamburger-device=\"tablet\">\n                <ul id=\"menu-flight-information-page\" class=\"eael-simple-menu eael-simple-menu-dropdown-animate-to-top eael-simple-menu-indicator eael-simple-menu-horizontal\"><li id=\"menu-item-2028\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-2028\"><a target=\"_blank\" href=\"https:\/\/laspace.lsu.edu\/hasp\/hasp-environmental-display\/\">HASP Environmental Display<\/a><\/li>\n<li id=\"menu-item-1472\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1472\"><a target=\"_blank\" href=\"https:\/\/laspace.lsu.edu\/hasp\/hasp-map-tracking\/\">HASP Map Tracking<\/a><\/li>\n<li id=\"menu-item-1473\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1473\"><a target=\"_blank\" href=\"https:\/\/laspace.lsu.edu\/hasp\/hasp-video-feeds\/\">HASP Video Feeds<\/a><\/li>\n<li id=\"menu-item-2034\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-2034\"><a target=\"_blank\" href=\"https:\/\/laspace.lsu.edu\/hasp\/payload-commanding-sheet\/\">Payload Commanding Sheet<\/a><\/li>\n<\/ul>                <button class=\"eael-simple-menu-toggle\">\n                    <span class=\"sr-only \">Hamburger Toggle Menu<\/span>\n                    <svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-bars\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"><\/path><\/svg>                <\/button>\n            <\/div>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91cd1fa elementor-widget elementor-widget-heading\" data-id=\"91cd1fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">HASP Flight Tracking<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa28e6d elementor-widget elementor-widget-text-editor\" data-id=\"aa28e6d\" 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>Live HASP tracking utilizing the GPS system on-board HASP.\u00a0 \u00a0 \u00a0There will also be map tracking using the GPS system installed on the CSBF flight equipment.\u00a0 That link will be provided closer to launch.\u00a0\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da36cd2 elementor-widget elementor-widget-wp-widget-xyz_insert_php_widget\" data-id=\"da36cd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wp-widget-xyz_insert_php_widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Live Track Map<\/title>\r\n    <style>\r\n        #map {\r\n            height: 70vh;\r\n            width: 100%;\r\n        }\r\n        #countdown {\r\n            text-align: right;\r\n            padding: 0px 0px 2px 0px;\r\n            font-weight: bold;\r\n            font-size: 16px;\r\n        }\r\n    <\/style>\r\n    <!-- Refresh page every 120 seconds -->\r\n    <meta http-equiv=\"refresh\" content=\"120\">\r\n<\/head>\r\n<body>\r\n<div id=\"countdown\">Refreshing in <span id=\"timer\">120<\/span> seconds<\/div>\r\n<div id=\"map\"><\/div>\r\n\r\n<script>\r\n    const trackPoints = [];\r\n    const lastPoint = false;\r\n\r\n    function initMap() {\r\n        if (!trackPoints.length) return;\r\n\r\n        const map = new google.maps.Map(document.getElementById(\"map\"), {\r\n            zoom: 10,\r\n            center: { lat: lastPoint.lat, lng: lastPoint.lon },\r\n            mapTypeId: 'roadmap',\r\n            zoomControl: true,\r\n            mapTypeControl: true,\r\n            scrollwheel: true,\r\n            streetViewControl: true,\r\n            fullscreenControl: true\r\n        });\r\n\r\n        const pathCoords = trackPoints.map(p => ({ lat: p.lat, lng: p.lon }));\r\n\r\n        \/\/ Draw polyline path\r\n        const trackPath = new google.maps.Polyline({\r\n            path: pathCoords,\r\n            geodesic: true,\r\n            strokeColor: \"#007BFF\",\r\n            strokeOpacity: 1.0,\r\n            strokeWeight: 3\r\n        });\r\n        trackPath.setMap(map);\r\n\r\n        \/\/ Mark the latest point\r\n        const lastMarker = new google.maps.Marker({\r\n            position: { lat: lastPoint.lat, lng: lastPoint.lon },\r\n            map: map,\r\n            title: `Last Point @ ${lastPoint.time}`,\r\n            icon: {\r\n                path: google.maps.SymbolPath.CIRCLE,\r\n                scale: 8,\r\n                fillColor: \"#FF0000\",\r\n                fillOpacity: 1.0,\r\n                strokeWeight: 2,\r\n                strokeColor: \"#ffffff\"\r\n            }\r\n        });\r\n\r\n        const infoWindow = new google.maps.InfoWindow({\r\n            content: `<b>Current Position<\/b><br>Time: ${lastPoint.time}<br> Lat: ${lastPoint.lat}<br>Long: ${lastPoint.lon}<br>Alt: ${lastPoint.alt} ft<br>HDG: ${lastPoint.hdg}&deg;<br>SOG: ${lastPoint.sog} m\/s`\r\n        });\r\n\r\n        lastMarker.addListener(\"click\", () => {\r\n            infoWindow.open(map, lastMarker);\r\n        });\r\n    }\r\n    \/\/ Countdown logic\r\n    let countdown = 120;\r\n    const timerElem = document.getElementById(\"timer\");\r\n\r\n    const interval = setInterval(() => {\r\n        countdown--;\r\n        timerElem.textContent = countdown;\r\n        if (countdown <= 0) {\r\n            clearInterval(interval);\r\n            location.reload();\r\n        }\r\n    }, 1000);\r\n<\/script>\r\n\r\n<!-- Load Google Maps API (replace YOUR_API_KEY with actual key) -->\r\n<script async\r\n    src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyAZukxpGW8E46J71Q1OxOFgHmBP9cNIkhA&callback=initMap\">\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>2025 HASP Environmental Display HASP Map Tracking HASP Video Feeds Payload Commanding Sheet Hamburger Toggle Menu HASP Flight Tracking Live HASP tracking utilizing the GPS system on-board HASP.\u00a0 \u00a0 \u00a0There &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1462","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/laspace.lsu.edu\/hasp\/wp-json\/wp\/v2\/pages\/1462","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/laspace.lsu.edu\/hasp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/laspace.lsu.edu\/hasp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/laspace.lsu.edu\/hasp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/laspace.lsu.edu\/hasp\/wp-json\/wp\/v2\/comments?post=1462"}],"version-history":[{"count":20,"href":"https:\/\/laspace.lsu.edu\/hasp\/wp-json\/wp\/v2\/pages\/1462\/revisions"}],"predecessor-version":[{"id":2439,"href":"https:\/\/laspace.lsu.edu\/hasp\/wp-json\/wp\/v2\/pages\/1462\/revisions\/2439"}],"wp:attachment":[{"href":"https:\/\/laspace.lsu.edu\/hasp\/wp-json\/wp\/v2\/media?parent=1462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}