Получить ограничивающий прямоугольник из массива точек - PullRequest
0 голосов
/ 07 июня 2019

У меня есть проект только на Rails 5 API. У меня есть узлы, в которых хранятся latitude / longitude данные. Я использую гем Rails Geokit для выполнения некоторых других географических работ.

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

1 Ответ

1 голос
/ 08 июня 2019

Все, что вам нужно для определения ограничивающего прямоугольника для набора координат, - это минимальное и максимальное значения широты и долготы, то есть крайние значения для запада, востока, севера и юга. Из них вы можете построить юго-западные и северо-восточные точки, которые охватывают ограничивающую рамку.

Теперь я не знаком с geokit, поэтому я не знаю имя класса координаты, но вы должны иметь возможность преобразовать это в правильное имя класса (я его называю Point):

points = [...] # List of nodes
west, east = points.map(&:longitude).minmax
south, north = points.map(&:latitude).minmax
sw = Point.new(longitude: west, latitude: south)
ne = Point.new(longitude: east, latitude: north)
...