Я пытаюсь создать запрос на основе расстояния между двумя географическими точками, рассчитанного по формуле Хаверсайна. (К вашему сведению, я использую Flask.)
Это мой метод, который должен функционировать как условие фильтра в запросе:
@hybrid_method
def is_nearby(self, latitude, longitude, radius):
return acos(sin(radians(latitude)) * sin(radians(self.latitude)) + cos(radians(latitude)) * cos(radians(self.latitude)) * cos(radians(self.longitude) - (radians(longitude)))) * 6371 <= radius
Но sqlalchemy.func
не содержит математических функций, таких как acos
, radians
и sin
et c. Этот метод не работает без них.
Я заметил, что для этого есть расширение . Но как, черт возьми, реализовать это расширение (я не привык использовать другие языки программирования, кроме Python, Javascript et c.)?
Я нашел руководство , где я должен был загрузить, казалось бы, огромное количество программного обеспечения, чтобы все это заработало, и я это сделал. Но затем, когда я открыл оболочку MSYS2 и набрал gcc -fPIC -lm -shared extension-functions.c -o libsqlitefunctions.dll
, я получил сообщение об ошибке bash: gcc: command not found
. И когда я попытался установить набор инструментов MinGW-w64 с помощью этой команды:
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-cairo mingw-w64-x86_64-xz mingw-w64-x86_64-lz4
, он просто не удался: Aborted (core dumped)
Как мне установить это расширение? И есть ли необязательный обходной путь к установке этого?
Этот вопрос является продолжением этого