diff --git a/app/controllers/map_controller.rb b/app/controllers/map_controller.rb index aeef5dc2..ef44981b 100644 --- a/app/controllers/map_controller.rb +++ b/app/controllers/map_controller.rb @@ -37,7 +37,7 @@ class MapController < ApplicationController @coordinates.each_cons(2) do @distance += Geocoder::Calculations.distance_between( - [_1[0], _1[1]], [_2[0], _2[1]], units: current_user.safe_settings.distance_unit + [_1[0], _1[1]], [_2[0], _2[1]], units: current_user.safe_settings.distance_unit.to_sym ) end diff --git a/app/controllers/settings/maps_controller.rb b/app/controllers/settings/maps_controller.rb index 58e2fef6..3cee8e0e 100644 --- a/app/controllers/settings/maps_controller.rb +++ b/app/controllers/settings/maps_controller.rb @@ -24,6 +24,6 @@ class Settings::MapsController < ApplicationController private def settings_params - params.require(:maps).permit(:name, :url) + params.require(:maps).permit(:name, :url, :distance_unit) end end diff --git a/app/controllers/settings_controller.rb b/app/controllers/settings_controller.rb index 82a934af..73f758b0 100644 --- a/app/controllers/settings_controller.rb +++ b/app/controllers/settings_controller.rb @@ -31,7 +31,8 @@ class SettingsController < ApplicationController params.require(:settings).permit( :meters_between_routes, :minutes_between_routes, :fog_of_war_meters, :time_threshold_minutes, :merge_threshold_minutes, :route_opacity, - :immich_url, :immich_api_key, :photoprism_url, :photoprism_api_key + :immich_url, :immich_api_key, :photoprism_url, :photoprism_api_key, + :distance_unit ) end end diff --git a/app/models/visit.rb b/app/models/visit.rb index 4e452a11..794cfe06 100644 --- a/app/models/visit.rb +++ b/app/models/visit.rb @@ -25,7 +25,9 @@ class Visit < ApplicationRecord return area&.radius if area.present? radius = points.map do |point| - Geocoder::Calculations.distance_between(center, [point.lat, point.lon]) + Geocoder::Calculations.distance_between( + center, [point.lat, point.lon], units: user.safe_settings.distance_unit.to_sym + ) end.max radius && radius >= 15 ? radius : 15 diff --git a/app/services/users/safe_settings.rb b/app/services/users/safe_settings.rb index 13275332..0b057e48 100644 --- a/app/services/users/safe_settings.rb +++ b/app/services/users/safe_settings.rb @@ -93,6 +93,6 @@ class Users::SafeSettings end def distance_unit - settings['distance_unit'] || 'km' + settings['maps']['distance_unit'] || 'km' end end diff --git a/app/views/settings/_navigation.html.erb b/app/views/settings/_navigation.html.erb index 8b5e51e0..1f61e86b 100644 --- a/app/views/settings/_navigation.html.erb +++ b/app/views/settings/_navigation.html.erb @@ -1,8 +1,8 @@ -