From: Tom Hughes Date: Tue, 2 Jul 2024 20:07:27 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/4938' X-Git-Tag: live~787 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/f9db802c7b2f8ee9582cb2c9f7196d6abafdfced?hp=fffaacb49eac749230ab6346c510281d6fe7f45f Merge remote-tracking branch 'upstream/pull/4938' --- 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