Код: Выделить всё
Pseudo:
`Function checkOverlap(thisRectangle, otherRectangle):
if thisRectangle.UpperRight.Longitude < otherRectangle.LowerLeft.Longitude
return false
if thisRectangle.LowerLeft.Longitude > otherRectangle.UpperRight.Longitude
return false
if thisRectangle.UpperRight.Latitude < otherRectangle.LowerLeft.Latitude
return false
if thisRectangle.LowerLeft.Latitude > otherRectangle.UpperRight.Latitude
return false
return true`
Редактировать
Ограничительная рамка в основном состоит из двух координат с долготой и широты между -180 и 180. У нас есть LowerLeft и Upperright для определения ограничивающей рамки. Мы определяем нижнюю левую координату по двум заданным координатам, сравнивая их значения широты и долготы с помощью функции min. Мы делаем то же самое, чтобы получить координату UpperRight, используя функцию max как для широты, так и для долготы. Используя это, мы имеем нижние левые и верхние правые координаты ограничивающего прямоугольника, поэтому мы можем использовать приведенную выше логику для проверки пересечений. Однако я сомневаюсь в пересечении линии даты, поскольку мы переходим от -180 к +180 и наоборот
Подробнее здесь: https://stackoverflow.com/questions/785 ... es-overlap