在 Ruby 中,如何从城市白名单中找到范围内的城市



我有一个城市的白名单。我有一个用户指定了他们的位置。我想找出哪些城市在用户 50 英里半径范围内。

我需要采取哪些步骤才能获得此信息?也许有一些地理编码 gem 可以帮助完成此任务?

查看地理编码器 Gem。它将为您提供距离计算方法。

下面是一个快速示例,向您展示如何继续:

require 'geocoder'
cities = %w( Paris Tokyo Berlin New-York )
geocoded_cities = cities.map{ |city| Geocoder.search( city ).first }
user_city = "London"
geocoded_user_city = Geocoder.search( user_city ).first
close_cities = geocoded_cities.select do |city|
  Geocoder::Calculations.distance_between( city.coordinates, geocoded_user_city.coordinates, { units: :mi } ) < 800
end

最新更新