在Ruby中,我怎样才能找到城市白名单范围内的城市?

时间:2014-02-14 06:29:39

标签: ruby geolocation

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

为了获取此信息,我需要采取哪些步骤?也许有一些地理编码宝石可以帮助完成这项任务?

1 个答案:

答案 0 :(得分:1)

查看geocoder宝石。它会为您提供distance calculation methods

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

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