:: Visual Foxpro, Foxpro for DOS
Запрос близости береговой линии
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Пакет gmt среди прочего
позволяет вывести во внешний
файл береговую линию или границу.
Это точки, линия между ними представляется линеаментами
Есть точки, рассыпанные по территории
Задача, найти только те,
что лежат не далее 5 км от береговой линии.
Если бы нужно было найти минимальные расстояния
до точек береговой линии, тогда не проблема.
Понять, внутри береговой линии или нет, тоже
делается легко. А так решения не вижу.
Конечно, хотелось бы sql select
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Не совсем понятно:
Как рассчитывать расстояние от точки до побережья: по оси координат или до ближайшей точки побережья по радиусу окружности.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
До ближайшей точки побережья
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Что то подобное askdev.ru
если по табличным данным: min(abs(X1-X2)) and min(abs(Y1-Y2))
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Так файл то береговой линии
это точки. А между ними должна аппроксимация линией,
которой нет в таблице
Это и была суть вопроса
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Ну да: в таблице координаты точек береговой линии. Координаты проверяемой точки известны. min(abs(X1-X2)) and min(abs(Y1-Y2)).
Где X1,Y1 координаты точки береговой линии, X2,Y2 координаты проверяемой точки.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
danton1973
Ну да: в таблице координаты точек береговой линии. Координаты проверяемой точки известны. min(abs(X1-X2)) and min(abs(Y1-Y2)).
Где X1,Y1 координаты точки береговой линии, X2,Y2 координаты проверяемой точки.

так находится ближайшая известная точка береговой линии, а Володе надо найти минимальное расстояние до береговой линии, типа (отмечено красной линией), те строит треугольник и находить высоту:

[attachment 35540 Search.png]


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 02.07.21 12:27
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Кстати, точки береговой линии упорядочены, те можно определить "предыдущую" и "последующую" точки для точки с минимальным расстоянием? Если Да, то строить ДВА треугольника и определять мин расстояние до береговой линии, в вырожденном случае мин расстояние может быть до двух или нескольких берегов.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Написал уже
Критерий не удается удачно индексировать
Каталог событий, с которым нужно сравнивать
береговую линию- больше двух с половиной миллионов событий.
Нужен такой алгоритм, который бы работал в реальные сроки.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
_vit

Сообщений: 5173
Дата регистрации: 29.07.2002
Сделать поиск за два прохода.
на первом, отбросить все события где расстояния до точек задающих береговую линии больше 5 * sqrt(2) (ну или какое то более обоснованное значение).
Оставшие обрабатывать точным алгоритмом.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
leonid

Сообщений: 3202
Откуда: Рига
Дата регистрации: 03.02.2006
_vit
Сделать поиск за два прохода.
на первом, отбросить все события где расстояния до точек задающих береговую линии больше 5 * sqrt(2) (ну или какое то более обоснованное значение).
Оставшие обрабатывать точным алгоритмом.

Нельзя так делать. Событие может быть очень далеко от всех заданных береговых точек, но при этом оказаться очень близко от линии, соединяющую пару последовательных точек.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
_vit

Сообщений: 5173
Дата регистрации: 29.07.2002
leonid
_vit
Сделать поиск за два прохода.
на первом, отбросить все события где расстояния до точек задающих береговую линии больше 5 * sqrt(2) (ну или какое то более обоснованное значение).
Оставшие обрабатывать точным алгоритмом.

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

Если береговая линия задана точками то я могу предположить что между точками она апроксимируется либо кусочно-линейно либо сплайнами либо еще не знаю как.
Сплайнами довольно накладно а для кусочно-линейной апроксимации мое решение должно подходить.
Вобщем для решения задачи это необходимо уточнить.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
leonid

Сообщений: 3202
Откуда: Рига
Дата регистрации: 03.02.2006
_vit
а для кусочно-линейной апроксимации мое решение должно подходить.

Как раз нет.

[attachment 35541 bereg.png]

От точки О до двух ближайщих точек С и D достаточно близко. Но если мы отбросим из рассмотрения две далекие точки А и В, то расстояние до берега будет вычислено неверно.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
_vit

Сообщений: 5173
Дата регистрации: 29.07.2002
Ну так я и написал (ну или какое то более обоснованное значение).;)

есть ведь некое значение больше которого события можно отбросить.
Впрочем это зависит от деталей которые не указаны.
Может все события приграничные а точки задающие береговую линию могут быть сильно удалены.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
leonid

Сообщений: 3202
Откуда: Рига
Дата регистрации: 03.02.2006
Я понимаю, на самом деле задача может быть совсем другой, может там еще куча условий, которые мы не знаем. Но в той формулировке, как она была приведена, ничего отбрасывать нельзя.
Ratings: 0 negative/0 positive
Re: Запрос близости береговой линии
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
функция (предел) от точности карты м.б.

() занесло меня сюда не вовремя, изв.

() все у физиков , как "предел" все время...

() толькол не слово "фрактал", это пустое, мтк...



Исправлено 3 раз(а). Последнее : of63, 08.07.21 01:04
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 34 leonid  (Гостей: 33)

© 2000-2024 Fox Club 
Яндекс.Метрика