Ваша проблема не является встроенным максимумом для :within
, но отсутствует предел (и проверка работоспособности внутри геокита).
Похоже, что запрос :within
заканчивается выполнениемдо Geokit::Bounds.from_point_and_radius
, чтобы создать ограничивающую рамку.from_point_and_radius
выполнит небольшую тригонометрию (см. endpoint
в mappable.rb
), и результатом будет Geokit::Bounds
экземпляр.
Я подозреваю, что в тригонометрии у вас что-то не так;тригонометрические функции являются периодическими, поэтому ваш радиус 100 000 в конечном итоге будет охватывать что-то между 0 и ~ 40 000 км (окружность Земли, ~ 25 000 миль), и ограничивающий прямоугольник не будет ограничивать 100 000 миль.Если вы играете со своими 100 000 битами, вы, вероятно, можете получить геокит, чтобы получить ограничивающий прямоугольник, который составляет всего пару сантиметров на сторону (или нулевой радиус, если вы можете разобраться с обычными проблемами с плавающей запятой).
Резюме: если вы хотите их всех, вообще не используйте :within
;если вы хотите использовать :within
, тогда дайте ему разумное расстояние (то есть достаточно маленькое, чтобы поместиться на поверхности планеты без обтекания).