Страница 1 из 1
Как узнать входит ли точка в квадрат?
Добавлено: 05 июл 2020, 20:28
k0de
Здравствуйте.
Имейте ввиду я совсем нуб в этом деле, так что сильно по почкам не бейте.
Если у меня есть координаты двух точек, как я могу узнать входит ли третья координата в этот квадрат?
К примеру первая точка имеет координаты X1; Y1, вторая точка имеет координаты X2; Y2
Координаты искомая точки : N, M
Могу ли я посчитать так:
Если (N > X1) и (N < X2) и (M > Y1) и (M < Y2) = точка входит в этот квадрат.
Или с картами и координатами это так не работает?
// приложил картинку что бы было понятнее что я имею ввиду

- map_in.png (390.15 КБ) 8589 просмотров
Re: Как узнать входит ли точка в квадрат?
Добавлено: 06 июл 2020, 06:16
trir
а это квадрат?
Re: Как узнать входит ли точка в квадрат?
Добавлено: 06 июл 2020, 06:30
tikhpetr
По 2 точкам - что угодно, но и квадрат тоже.
Re: Как узнать входит ли точка в квадрат?
Добавлено: 06 июл 2020, 06:52
gamm
trir писал(а): ↑06 июл 2020, 06:16а это квадрат?
зависит от проекции, может и нелинейной трапецией оказаться. Постановка некорректная.
Re: Как узнать входит ли точка в квадрат?
Добавлено: 06 июл 2020, 17:01
Sergey Astakhov
k0de писал(а): ↑05 июл 2020, 20:28Или с картами и координатами это так не работает?
Зависит от размера квадрата и вида проекции. Надо просто помнить, что тут у нас не плоская геометрия, а сферическая, на поверхности шара (или эллипсоида, или, если быть совсем точным - геоида).
На равноугольных проекциях и небольших размерах можно считать и таким образом. Или если брать в качестве значений не координаты проекции, а координаты в градусах.
К примеру такие проверки часто используют в пространственных индексах.
Re: Как узнать входит ли точка в квадрат?
Добавлено: 06 июл 2020, 18:49
tikhpetr
Мне кажется, ТС имел ввиду, что при заданном выражении точка попадает внутрь полигона некоей формы.
Re: Как узнать входит ли точка в квадрат?
Добавлено: 07 июл 2020, 17:44
k0de
Ну может и не квадрат, может полгон. Я же прям сразу предупредил что нуб полный.
Если "некорректный", то подскажите как корректно ставить вопрос.
Как вообще определяют вхождения координат в ту или иную область? Просто получить координаты двух точек можно легко. И третью координату тоже. Но как проверить правильно что она входит в этот регион или нет.
Re: Как узнать входит ли точка в квадрат?
Добавлено: 07 июл 2020, 19:33
tikhpetr
На мой взгляд, проще всего визуально. Например, в SAS. Planet. На крайняк, в Google Earth. А аналитически координаты искомой точки должны удовлетворять условиям:
Х1<N<X2
Y1>M>Y2
Важно! X - долгота, Y - широта
А, забыл! X1, Y1 - координаты левого верхнего угла полигона, X2, Y2 - левого нижнего.
Re: Как узнать входит ли точка в квадрат?
Добавлено: 08 июл 2020, 03:53
Sergey Astakhov
k0de писал(а): ↑07 июл 2020, 17:44Ну может и не квадрат, может полгон.
Это сильно меняет дело. Опишите тогда исходную задачу, чего вы этой проверкой хотите добиться?
k0de писал(а): ↑07 июл 2020, 17:44Как вообще определяют вхождения координат в ту или иную область?
Алгоритмов много разных, можете начать со списка из википедии:
https://ru.wikipedia.org/wiki/%D0%97%D0 ... 0%BA%D1%83
Re: Как узнать входит ли точка в квадрат?
Добавлено: 08 июл 2020, 21:56
Svility
Если на PG, то можно так:
Код: Выделить всё
SELECT ST_AsText(ST_Intersection('POINT(42.12897878 47.54734956)'::geometry, (SELECT ST_Envelope('LINESTRING(42.04946049 47.55376783, 42.07536541 47.54070914)'::geometry))));
Строим рамку по 2-м точкам и проверяем пересекает ли точка полученную область.
Re: Как узнать входит ли точка в квадрат?
Добавлено: 09 июл 2020, 14:13
k0de
Спасибо. Но что такое PG?
Re: Как узнать входит ли точка в квадрат?
Добавлено: 09 июл 2020, 14:22
trir
https://postgis.net/
топология везде работает, просто надо понимать - что в одной проекции квадрат, в другой - им не является
Re: Как узнать входит ли точка в квадрат?
Добавлено: 09 июл 2020, 18:45
granit201z
k0de писал(а): ↑05 июл 2020, 20:28Координаты искомая точки : N, M
Могу ли я посчитать так:
Если (N > X1) и (N < X2) и (M > Y1) и (M < Y2) = точка входит в этот квадрат.
Или с картами и координатами это так не работает?
почему не работает? чем карта отличается от координатной плоскости в рамках данной задачи??