Как я могу узнать, находятся ли координаты (lat & lot) в диапазоне двух других координат? - PullRequest
0 голосов
/ 16 октября 2019

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

У меня есть две точки, которые представляют геолокации, a и b:

const a = {
  lat: 0,
  lon: 0,
}

const b = {
  lat: 0,
  lon: 0
}

И учитывая вход c, это c в a и b?

a представляет верхний левый угол, а b представляет нижний правый угол, например:

пример 1 и пример 2

Примерный пример реализации:

type Coordinate = {
  lat: number
  lon: number
}

const a: Coordinate = {
  lat: 48.881366,
  lon: 2.327037
}

const b: Coordinate = {
  lat: 48.878525,
  lon: 2.331655
}


function isWithinGeoRange(c: Coordinate): boolean {
  return false
}

const c = {
  lat: 48.879971,
  lon: 2.329885
}

isWithinGeoRange(c) // true | false

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

Спасибо.

1 Ответ

0 голосов
/ 16 октября 2019

Формула для определения того, находится ли точка в прямоугольнике:

if (pt.x >= rect.x && pt.x <= rect.x + rect.width 
  && pt.y >= rect.y && pt.y <= rect.y + rect.height)

Итак, все, что вам нужно сделать, - это вычислить горизонтальные и вертикальные расстояния между вашими двумя точками и проверить, является ли третья точкав пределах двух, используя приведенную выше формулу

...