openstreetmap-website/lib/country.rb
2022-09-09 22:45:58 +01:00

36 lines
874 B
Ruby

class Country
attr_reader :code, :min_lat, :max_lat, :min_lon, :max_lon
def initialize(code, min_lat, max_lat, min_lon, max_lon)
@code = code
@min_lat = min_lat
@max_lat = max_lat
@min_lon = min_lon
@max_lon = max_lon
end
def self.find(code)
countries[code]
end
def self.countries
@countries ||= load_countries
end
def self.load_countries
countries = {}
xml = REXML::Document.new(Rails.root.join("config/countries.xml").read)
xml.elements.each("geonames/country") do |ele|
code = ele.get_text("countryCode").to_s
minlon = ele.get_text("west").to_s
minlat = ele.get_text("south").to_s
maxlon = ele.get_text("east").to_s
maxlat = ele.get_text("north").to_s
countries[code] = Country.new(code, minlat.to_f, maxlat.to_f, minlon.to_f, maxlon.to_f)
end
countries
end
end