我有一个城市白名单。我有一位用户指定了他们的位置。我想知道哪些城市在用户半径50英里范围内。
为了获取此信息,我需要采取哪些步骤?也许有一些地理编码宝石可以帮助完成这项任务?
答案 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