]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4984'
authorTom Hughes <tom@compton.nu>
Sun, 14 Jul 2024 14:40:39 +0000 (15:40 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 14 Jul 2024 14:40:39 +0000 (15:40 +0100)
1  2 
app/controllers/geocoder_controller.rb
test/controllers/geocoder_controller_test.rb

index ca6bab6df88a1e79ed4947391d22864e639c6d80,02ebc8a1bccb565796a62cafb911bbd7bdd17647..43f276efa020a35cfdbb1719155c4a3f5e61c1fe
@@@ -224,8 -220,16 +220,16 @@@ class GeocoderController < ApplicationC
      params.permit(:query, :lat, :lon, :latlon_digits, :zoom, :minlat, :minlon, :maxlat, :maxlon)
    end
  
+   def dms_regexp(name_prefix)
+     /
+       (?: (?<#{name_prefix}d>\d{1,3}(?:\.\d+)?)°? ) |
+       (?: (?<#{name_prefix}d>\d{1,3})°?\s*(?<#{name_prefix}m>\d{1,2}(?:\.\d+)?)['′]? ) |
+       (?: (?<#{name_prefix}d>\d{1,3})°?\s*(?<#{name_prefix}m>\d{1,2})['′]?\s*(?<#{name_prefix}s>\d{1,2}(?:\.\d+)?)["″]? )
+     /x
+   end
    def to_decdeg(captures)
 -    ns = captures.fetch("ns").casecmp("s").zero? ? -1 : 1
 +    ns = captures.fetch("ns").casecmp?("s") ? -1 : 1
      nsd = BigDecimal(captures.fetch("nsd", "0"))
      nsm = BigDecimal(captures.fetch("nsm", "0"))
      nss = BigDecimal(captures.fetch("nss", "0"))