алгоритм проверки точки внутри заданной области / координат - PullRequest
0 голосов
/ 31 января 2019

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

(https://i.stack.imgur.com/zR9VX.png) (та, что покрыта линией)

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

Пожалуйста, помогите мне здесь

1 Ответ

0 голосов
/ 31 января 2019

Начнем с формулы для площади земли между линией широты и северным полюсом.

A = 2*pi*R*h

где R - радиус земли, а h - перпендикулярное расстояние от плоскостисодержащий линию широты до полюса.Мы можем вычислить h, используя тригонометрию как

h = R*(1-sin(lat))

Таким образом, область к северу от линии широты равна

A = 2*pi*R^2(1-sin(lat))

Область между двумя линиями широты - это разница между областью к северу отодна широта и область к северу от другой широты:

A = |2*pi*R^2(1-sin(lat2)) - 2*pi*R^2(1-sin(lat1))|
= 2*pi*R^2 |sin(lat1) - sin(lat2)|

Площадь прямоугольника длинной широты пропорциональна разности долгот.Область, которую я только что вычислила, является областью между линиями долготы, отличающимися на 360 градусов.Поэтому область, которую мы ищем, является

A = 2*pi*R^2 |sin(lat1)-sin(lat2)| |lon1-lon2|/360
= (pi/180)R^2 |sin(lat1)-sin(lat2)| |lon1-lon2|
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...