записей
Считаю расстояние по такой формуле
WHERE (pow(pickup_longitude - 73, 2) + pow(pickup_latitude - 72, 2)) < pow((180 * 300) / ((6371 * 1000) * pi()), 2)) OR (pow(pickup_longitude - 55, 2) + pow(pickup_latitude - 56, 2)) < pow((180 * 300) / ((6371 * 1000) * pi()), 2)).....
Но у меня больше тысячи таких окружностей из-за чего кликхаус уходит в таймаут
Что можно придумать для решения такой проблемы?
Я думал программно на стороне бекенда искать пересекающиеся круги, строить полигоны и уже по ним смотреть лежит ли точка в полигоне, но увидел где-то в чате. что это не оосбо эффективно вроде как, какие еще варианты есть?
Ээ а greatCircleDistance? А h3? https://clickhouse.tech/docs/ru/sql_reference/functions/geo/
Обсуждают сегодня