PHP / Mysql Радиус поиска между координатами x y

Я получил (голландские) x y координаты человека и x y координаты из разных мест в базе данных, например:

x = 158322
y = 460782

Теперь я хотел бы найти все местоположения в радиусе 15 км вокруг местоположения человека.
Каков наилучший способ найти это, и можете ли вы привести пример?

0

Решение

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

Чтобы рассчитать расстояние в php, вы можете сделать что-то вроде этого:

$distance = sqrt(($x-$x2)^2+($y-$y2)^2 // = pythagoras a^2+b^2=c^2

Конечно, это предполагает, что земля плоская. Если вам нужно компенсировать кривизну Земли, выполните поиск в Google для «расчета расстояния между двумя координатами».

Если я правильно помню, «голландские координаты», о которых вы говорите, указаны в метрах, поэтому получение 15-километрового ограничивающего прямоугольника должно быть таким простым, как: x +/- 15000 а также y +/- 15000

Кстати, mysql имеет функцию sqrt, так что технически вы можете сделать все это в mysql.

Кроме того, если вам нужен код для преобразования Rijksdriehoekscoördinaten в GPS-координаты, дайте мне знать;)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]