diff --git a/app/models/place.rb b/app/models/place.rb index c7cbacef..836358c8 100644 --- a/app/models/place.rb +++ b/app/models/place.rb @@ -31,4 +31,20 @@ class Place < ApplicationRecord def reverse_geocoded? geodata.present? end + + def osm_id + geodata['properties']['osm_id'] + end + + def osm_key + geodata['properties']['osm_key'] + end + + def osm_value + geodata['properties']['osm_value'] + end + + def osm_type + geodata['properties']['osm_type'] + end end diff --git a/app/services/visits/detector.rb b/app/services/visits/detector.rb index 9ea730cb..13a2d64b 100644 --- a/app/services/visits/detector.rb +++ b/app/services/visits/detector.rb @@ -5,7 +5,7 @@ module Visits class Detector MINIMUM_VISIT_DURATION = 3.minutes MAXIMUM_VISIT_GAP = 30.minutes - MINIMUM_POINTS_FOR_VISIT = 3 + MINIMUM_POINTS_FOR_VISIT = 2 attr_reader :points @@ -57,7 +57,8 @@ module Visits # Calculate distance from visit center distance = Geocoder::Calculations.distance_between( [visit[:center_lat], visit[:center_lon]], - [point.lat, point.lon] + [point.lat, point.lon], + units: :km ) # Dynamically adjust radius based on visit duration diff --git a/app/services/visits/place_finder.rb b/app/services/visits/place_finder.rb index adb9b65a..72a35e72 100644 --- a/app/services/visits/place_finder.rb +++ b/app/services/visits/place_finder.rb @@ -38,7 +38,7 @@ module Visits { main_place: main_place, - suggested_places: all_suggested_places.uniq { |place| place.name } + suggested_places: all_suggested_places.uniq(&:name) } end