Gracefully handle SRTM tile download failures on page load
This commit is contained in:
parent
737de10bf4
commit
ebd22ce156
1 changed files with 11 additions and 1 deletions
|
|
@ -2,6 +2,8 @@ defmodule MicrowavepropWeb.ContactLive.Show do
|
||||||
@moduledoc false
|
@moduledoc false
|
||||||
use MicrowavepropWeb, :live_view
|
use MicrowavepropWeb, :live_view
|
||||||
|
|
||||||
|
require Logger
|
||||||
|
|
||||||
alias Microwaveprop.Propagation.BandConfig
|
alias Microwaveprop.Propagation.BandConfig
|
||||||
alias Microwaveprop.Propagation.Scorer
|
alias Microwaveprop.Propagation.Scorer
|
||||||
alias Microwaveprop.Radio
|
alias Microwaveprop.Radio
|
||||||
|
|
@ -677,7 +679,7 @@ defmodule MicrowavepropWeb.ContactLive.Show do
|
||||||
lon1 when is_number(lon1) <- contact.pos1["lon"] || contact.pos1["lng"],
|
lon1 when is_number(lon1) <- contact.pos1["lon"] || contact.pos1["lng"],
|
||||||
%{"lat" => lat2} <- contact.pos2,
|
%{"lat" => lat2} <- contact.pos2,
|
||||||
lon2 when is_number(lon2) <- contact.pos2["lon"] || contact.pos2["lng"],
|
lon2 when is_number(lon2) <- contact.pos2["lon"] || contact.pos2["lng"],
|
||||||
{:ok, profile} <- ElevationClient.fetch_elevation_profile(lat1, lon1, lat2, lon2, 256) do
|
{:ok, profile} <- safe_fetch_elevation(lat1, lon1, lat2, lon2) do
|
||||||
freq_ghz = band_to_ghz(contact.band)
|
freq_ghz = band_to_ghz(contact.band)
|
||||||
dist_km = haversine_km(lat1, lon1, lat2, lon2)
|
dist_km = haversine_km(lat1, lon1, lat2, lon2)
|
||||||
analysis = TerrainAnalysis.analyse(profile, dist_km, freq_ghz)
|
analysis = TerrainAnalysis.analyse(profile, dist_km, freq_ghz)
|
||||||
|
|
@ -869,6 +871,14 @@ defmodule MicrowavepropWeb.ContactLive.Show do
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp safe_fetch_elevation(lat1, lon1, lat2, lon2) do
|
||||||
|
ElevationClient.fetch_elevation_profile(lat1, lon1, lat2, lon2, 256)
|
||||||
|
rescue
|
||||||
|
e ->
|
||||||
|
Logger.warning("Elevation profile failed: #{Exception.message(e)}")
|
||||||
|
{:error, :elevation_unavailable}
|
||||||
|
end
|
||||||
|
|
||||||
defp band_to_ghz(nil), do: 10.0
|
defp band_to_ghz(nil), do: 10.0
|
||||||
|
|
||||||
defp band_to_ghz(band) do
|
defp band_to_ghz(band) do
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue