Точность App Engine Geo Поиск больших кругов?
Я использую App Engine Search, чтобы ограничить результаты в пределах определенного круга.
distance("points", geopoint(%f,%f)) < %d" % (latitude, longitude, radii)
Для радиусов 10, 100 и 1000 метров я получаю правильные результаты. Но для радиусов, скажем, 400 000 (то есть 400 км) возвращаются результаты за пределами определенного круга.
Кто-нибудь знает, что это предел этой платформы? Мне трудно поверить, что большой круг не учитывается.
1 ответ
У Google есть ошибка; сообщили в феврале 2013 года и до сих пор присутствует сегодня. Система отслеживания проблем помечает свой приоритет как средний.
Одно из предложений - посмотреть на каждый возвращенный результат и проверить, верен ли он.
Бывает, что если вы добавите этот корректирующий шаг на платформу Google, то вы платите дважды за эту функцию - один раз за выполнение кодирования Google для получения неправильного набора результатов и один раз за ваш код исправления.
Это нетривиальный обходной путь, так как любое количество итоговых результатов может быть совершенно неверным (например, Google возвращает 100 с результатами, но фактическое число равно нулю).
И если вам приходится публиковать результаты по соображениям производительности, то эта ошибка убивает этот подход, поскольку каждый набор страниц может не содержать никаких действительных результатов после того, как вы отфильтровали недействительные.
Это ответ или я и другие упустили некоторые важные детали?