From: nertc Date: Tue, 2 Jul 2024 10:17:23 +0000 (+0400) Subject: Accept coordinates with a slash in search X-Git-Tag: live~689^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/4b593412c2f18160b0ddf45b27dd253411a98ad9 Accept coordinates with a slash in search --- diff --git a/app/controllers/geocoder_controller.rb b/app/controllers/geocoder_controller.rb index 4a593f86a..ee3c3479c 100644 --- a/app/controllers/geocoder_controller.rb +++ b/app/controllers/geocoder_controller.rb @@ -218,7 +218,7 @@ class GeocoderController < ApplicationController query.match(/^(\d{1,3})°?\s*(\d{1,2})['′]?(?:\s*(\d{1,3}(\.\d*)?)?["″]?)?\s*([NS])\W*(\d{1,3})°?\s*(\d{1,2})['′]?(?:\s*(\d{1,3}(\.\d*)?)?["″]?)?\s*([EW])$/).try(:captures) # degrees, minutes, decimal seconds [NSEW] params.merge!(dms_to_decdeg(latlon)).delete(:query) - elsif latlon = query.match(/^([+-]?\d+(\.\d*)?)(?:\s+|\s*,\s*)([+-]?\d+(\.\d*)?)$/) + elsif latlon = query.match(%r{^([+-]?\d+(\.\d*)?)(?:\s+|\s*[,/]\s*)([+-]?\d+(\.\d*)?)$}) params.merge!(:lat => latlon[1].to_f, :lon => latlon[3].to_f).delete(:query) params[:latlon_digits] = true unless params[:whereami] diff --git a/test/controllers/geocoder_controller_test.rb b/test/controllers/geocoder_controller_test.rb index 029ccbbd5..d32521c3b 100644 --- a/test/controllers/geocoder_controller_test.rb +++ b/test/controllers/geocoder_controller_test.rb @@ -37,9 +37,11 @@ class GeocoderControllerTest < ActionDispatch::IntegrationTest def test_identify_latlon_basic [ "50.06773 14.37742", + "50.06773/14.37742", "50.06773, 14.37742", "+50.06773 +14.37742", - "+50.06773, +14.37742" + "+50.06773, +14.37742", + "+50.06773/+14.37742" ].each do |code| latlon_check code, 50.06773, 14.37742 end