Предположим, у меня есть 1000 объектов с широтой/долготой.Rails Сравнение Широта/Долгота
Что бы я хотел сделать, это отправить широту/долготу пользователя и вернуть 50 ближайших объектов. Я знаю, как я мог бы сделать это с одним значением - если бы у меня была только широта, но расположение кажется другим с двумя значениями, поэтому я не уверен, как это сделать.
Что было бы лучшим способом добиться этого? Не стесняйтесь указывать мне учебник или что-то еще - я очень новичок в использовании места в рельсах :).
проверить https://github.com/geokit/geokit-rails –
также проверить геокодер: https://github.com/alexreisner/geocoder – srecnig
Драгоценный камень геокодера является выдающимся. Если вы посмотрите журналы выполнения, вы увидите, как ваш простой вопрос переводится в некоторые расширенные вычисления, такие как ... [1m [36mLocation Load (93.8ms) [0m [1mSELECT местоположения. *, 3958.755864232 * 2 * ASIN (SQRT (POWER (SIN ((30.267153 - location.latitude) * PI()/180/2), 2) + COS (30.267153 * PI()/180) * COS (location.latitude * PI()/180) * POWER (SIN ((- 97.7430608 - location.longitude) * PI()/180/2), 2))) AS distance, MOD (CAST ((ATAN2 (((location.longitude - -97.7430608)/57.2957795), ((местоположения .latitude - 30.267153)/57.2957795)) * 57.2957795) ... – Elvn