prop/assets/js/locate_me_hook.js
Graham McIntire c5fdef2675 Add station parameters, GPS locate, and detailed budgets to /path
- TX/RX height in feet (converted to meters for terrain analysis)
- TX power in dBm with mW equivalent display
- TX gain and RX gain (dBi) inputs
- Power budget: TX power + TX gain - feed loss = EIRP - path loss
  + RX gain = RX power vs CW sensitivity = margin
- Loss budget: FSPL + gaseous (O2+H2O) + diffraction + rain
  with per-km gas rate detail
- GPS "Locate Me" button using browser geolocation API
- Lat,lon coordinate pairs accepted as input
- Weather displayed in F with C below
- LiveStash preserves form inputs across page reloads
- Terrain cross-section with beam line and Fresnel zone
2026-04-07 13:39:02 -05:00

27 lines
769 B
JavaScript

export const LocateMe = {
mounted() {
this.el.addEventListener("click", () => {
if (!navigator.geolocation) {
alert("Geolocation is not supported by this browser")
return
}
this.el.classList.add("loading", "loading-spinner")
navigator.geolocation.getCurrentPosition(
(pos) => {
this.el.classList.remove("loading", "loading-spinner")
this.pushEvent("gps_location", {
lat: pos.coords.latitude,
lon: pos.coords.longitude
})
},
(err) => {
this.el.classList.remove("loading", "loading-spinner")
alert("Could not get location: " + err.message)
},
{ enableHighAccuracy: true, timeout: 10000 }
)
})
}
}