I am trying to use geocoder to find all objects within a certain radius. Below is an example from the official Github site:
Venue.near([40.71, -100.23], 50)
This query will return me all venues that is in the 50-miles radius from the given location (40.71, -100.23).
However, in my case, the model Venue (table venues) has these columns representing 3 possible locations:
- latitude1
- longitude1
- latitude2
- longitude2
- latitude3
- longitude3
How do I force geocoder to look into all these 3 locations? Here,
Venue.near([40.71, -100.23], 50)
instead of looking only into
- latitude1
- longitude1
I'd need to check all 3 coordinations (maybe the 1st coordination isn't within the given radius from [40.71, -100.23], but the 2nd one might be - and in that case, it's a match). How do I achieve that?
Please see Advanced Database Queries section.
If you store multiple sets of coordinates for each object, you can specify latitude and longitude columns to use for a search:
Venue.near("Paris", 50, latitude: :secondary_latitude, longitude: :secondary_longitude)In this case you need to do 3 queries:
Venue.near([40.71, -100.23], 50, latitude: :latitude1, longitude: :longitude1)Venue.near([40.71, -100.23], 50, latitude: :latitude2, longitude: :longitude2)Venue.near([40.71, -100.23], 50, latitude: :latitude3, longitude: :longitude3)Don't forget to remove duplicates.