Могу ли я использовать функции Postgres, чтобы найти точки внутри вращающегося прямоугольника фиксированного размера?

Я использую Postgres 9.5, и я только что установил PostGIS для некоторых расширенных функций. У меня есть таблица с (x, y) точками, и я хочу найти прямоугольник, который соответствует максимальному количеству точек. Ограничение состоит в том, что длина стороны прямоугольника фиксирована. Пока я подсчитываю, сколько точек в коробке без вращения. Мои точки сосредоточены вокруг происхождения,(0,0).

SELECT Sum(CASE
             WHEN x > -5
                  AND x < 5
                  AND y > -10
                  AND y < 10 THEN 1
             ELSE 0
           END) AS inside_points,
       Count(1) AS total_points
FROM   track_t;  

Этот запрос дает мне количество точек внутри прямоугольника с происхождением(0,0) и длинах = 10 а такжеу = 20.

Отсюда я бы создал вспомогательную таблицу из угловых точек повернутого прямоугольника (угол, x1, y1, x2, y2), затем перекрестное соединение с моими данными и подсчет точек на угол, в то время как угол GROUP BY. Затем я могу выбрать, какой угол дает мне больше точек внутри прямоугольника.

Но это кажется немного старомодным и, возможно, неэффективным. Кроме того, подсчет точек внутри повернутого прямоугольника не являетсятривиальный расчет.

Есть ли более эффективные и элегантные способы, возможно, используя PostgresГеометрические типы данных или PostGISBox2D, повернуть прямоугольник с фиксированной длиной, а затем посчитать количество точек внутри? Геометрические функции выглядят хорошо, но, кажется, они обеспечивают минимальные ограничивающие рамки, а не наоборот.

В дополнение к Postgresql я использую инфраструктуру Python, которую можно использовать в случае, если SQL не может сделать эту работу.

Обновление: одна вещь, которую я пытался использоватьГеометрические типыконкретно КОРОБКА

  SELECT deg, Box(Point(-5, -10), Point(5, 10)) * Point(1, Radians(deg)) 
        FROM   Generate_series(0, 360, 90) AS deg

К сожалению,Функция поворота по точкене работает для полигонов.

Ответы на вопрос(1)

Ваш ответ на вопрос