2016-09-16 41 views
-1

我有兩個型號,userslocations沒有連接到對方,他們都與latitudelongitude列。軌,地理編碼 - 得到附近其他記錄和組記錄由第二組記錄

我需要每一個給定的半徑和他們組由locations

實際上內查詢所有users和所有locations,我需要一組結果的那組users具有相同locations內的某個他們的半徑

將有足夠的users,這將是不切實際的只是在他們重複,所以我在尋找無論是選擇它們

的SQL或者Rails這樣我能USI納克導軌地址解析器(https://github.com/alexreisner/geocoder

回答

0

問題是downvoted,但我會後我結束了在反正

答案我不得不廢除地理編碼器的寶石,因爲它沒有與臉蛋兒打得好或選擇並只使用方程手動,結束了使用:

User.select("ARRAY_AGG(users.id) as user_list, (SELECT array(SELECT locations.id from locations WHERE (6371.0 * 2 * ASIN(SQRT(POWER(SIN((users.latitude - locations.latitude) * PI()/180/2), 2) + COS(users.latitude * PI()/180) * COS(locations.latitude * PI()/180) * POWER(SIN((users.longitude - locations.longitude) * PI()/180/2), 2)))) <= CAST(<whatever radius> AS float))) as location_list").group("location_list")