Как найти точки (широта, долгота) на фиксированном расстоянии от береговой линии?

У меня есть данные о широте, долготе и геохэше для некоторых мест в городе у моря (например, Майами). Я хочу знать, какие из этих мест находятся рядом с береговой линией (скажем, в пределах 100 м от береговой линии). Как я могу подойти к этой проблеме?

Имеющиеся у меня данные: название места, широта места, долгота места, геохэш места, глобальные данные о береговой линии (файл формы, но это не точно)

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

Подход, который я думаю попробовать: я думаю найти все геохеши (уровень 6), которые пересекают береговую линию, а затем, если место присутствует внутри этих геохешей, я классифицирую их как прибрежные места. Считаете ли вы этот подход хорошим и даст ли он желаемые результаты? Также я действительно уверен, как я найду геохэши, которые разрезают полигон.

введите здесь описание изображения


person swapnil agashe    schedule 10.09.2020    source источник
comment
Пожалуйста, включите в свой вопрос то, что вы пробовали до сих пор. SO не является фабрикой кода для написания вашего кода. См. Как задать хороший вопрос. Включите минимальный воспроизводимый пример.   -  person LeoE    schedule 10.09.2020
comment
Я не прошу код, я просто хочу знать, как вы подошли бы к проблеме.   -  person swapnil agashe    schedule 10.09.2020
comment
Каков ваш подход? Какие исследования по этому поводу вы проводили? Какова ваша идея? В каком формате у вас есть данные? У вас уже есть береговая линия? Слишком много открытых вопросов, поэтому ваш вопрос расплывчатый, см. Как мне задать хороший вопрос   -  person LeoE    schedule 10.09.2020
comment
У вас уже есть береговая линия в виде набора точек с широтой и долготой?   -  person le_lemon    schedule 10.09.2020
comment
@le_lemon Нет, у меня нет данных о береговой линии. Есть ли источник, где я могу получить широту и долготу всех береговых линий по всему миру?   -  person swapnil agashe    schedule 10.09.2020
comment
Вот один для Европы, для поиска которого потребовался всего один поиск в Google, поэтому вам не потребуется много времени, чтобы найти его для своего места. eea.europa.eu/data-and-maps/data/eea-coastline-for-analysis-1/   -  person le_lemon    schedule 10.09.2020
comment
@le_lemon Я обновил вопрос, пожалуйста, проверьте один раз.   -  person swapnil agashe    schedule 11.09.2020


Ответы (2)


Насколько это большой город? Если вам нужна грубая аппроксимация, вы можете сначала превратить свои координаты wgs84 в плоскость X, Y в UTM, а затем просто попытайтесь получить неравенство путем аппроксимации береговой линии прямой линией и определения того, какую часть уравнения вы хотите сохранить. Вы можете сделать это с большим количеством линий, чтобы лучше представить береговую линию, а затем сместить их на 100 метров, чтобы получить многоугольник.

person BrunoSE    schedule 10.09.2020
comment
Я не хочу аппроксимировать береговую линию прямой линией, так как это требует ручного выбора точек для прямой линии (поскольку мне приходится выполнять этот процесс для многих городов) и не даст результатов с достаточной точностью. - person swapnil agashe; 10.09.2020

Один из способов приблизиться к этому — если у вас уже есть береговая линия в виде набора точек, которые можно найти в Интернете, например, в виде файлов shp. Перебираем эти точки и вычисляем расстояние до места и берем минимальное. Если это менее 100 м, у вас есть совпадение.

person le_lemon    schedule 10.09.2020