Похоже, это должно быть возможно. Вы ищете точность 0,1 градуса. Конечно, сколько это в метрах, зависит от того, где вы находитесь на планете, и говорим ли мы о долготе или широте. Но вы можете рассчитать это. Исходя из этого, вы можете выяснить, каким должен быть минимальный префикс вашего геша для его прямоугольной формы. Более длинные хэши с тем же префиксом содержатся в прямоугольнике, который описывает меньший префикс.
Для более тонкой детализации используйте несколько более длинных прямоугольников. Это также помогает вам охватывать случаи, когда любой диапазон, на который вы смотрите, пересекает край вашего прямоугольника.
Тогда, если вам нужно сгенерировать набор геохешей достаточной длины, который точно покрывает круг с началом координат с диапазоном, который вы ищете, запрос диапазона становится вопросом выяснения, если геохэш вашей координаты разделяет длинный достаточно префикса с этим набором геохешей.
Возможно, вы захотите проверить мою библиотеку https://github.com/jillesvangurp/geogeometry. Он имеет алгоритмы и функции для всего вышеперечисленного. Вы можете создавать круги, ограничивающие прямоугольники или многоугольники и покрывать их геохэшами заданной максимальной длины. Вы можете вычислить, какое значение подходит для этой максимальной длины, с помощью другой функции.
Он основан на Java, но должен легко переноситься на python или что-то еще, что вы хотите, учитывая, как я его структурировал. В основном это просто циклы и простая математика с использованием двойников.
Я фактически использовал это для реализации простого геопространственного поискового движка шесть лет назад. Очень хорошо масштабируется, если у вас есть база данных или поисковая система, которая может обрабатывать десятки миллионов геохешей Для небольших наборов данных вы можете легко сделать это в памяти.