Я пытаюсь создать квадрат (или круг) вокруг вершины мили вокруг центральной точки, где все стороны квадрата будут на расстоянии х миль от центра. Мне нужны 4 угловые координаты.
Это затягивает мой мозг, пытаясь обвести мою голову? Я могу рассчитать расстояние между двумя точками, используя формулу haversine, но математика - это не моя сильная сторона, и я не понимаю греха, потому что и т. Д., И попытка разобраться в этом потеряла меня!
Я сталкивался с Расчетом Широты / Долготы X миль от точки? но я просто не понимаю!
Кто-нибудь будет достаточно любезен, чтобы объяснить, как я делаю это с точки зрения яблок и груш?
Чтобы точно объяснить, что я пытаюсь сделать;
У меня есть веб-сайт, где пользователи могут искать здания в определенной области. Они войдут в город или место (о котором я буду знать в последнее время) и будут искать в определенном радиусе, скажем, в 10 милях от места.
Мне нужно найти min / max lat и long для 10-мильного радиуса, чтобы я мог запросить свою базу данных, используя предложение where, подобное:
Where buildingLat <= maxLat
and buildingLat <= minLat
and buildingLong >= minLong
or buildingLong >= maxLong
Мне нужна какая-то формула!
Мои координаты в десятичных градусах
источник
Наконец мой ответ: (в C #)
Мне, вероятно, не нужны 4 координаты, но я думаю, что они довольно точные.
РЕДАКТИРОВАТЬ
Просто осознав, что если я выставлю углы своего квадрата на x миль от центральной точки, края моего квадрата не будут такими же, как на x миль. (сказал, что математика не моя сильная сторона) Поэтому, чтобы получить угловые точки от центральной точки, если я хочу, чтобы грани моих квадратов составляли x миль, я использовал теорему Пифагора для определения расстояния по диагонали. (в прямоугольном треугольнике квадрат на гипотенузе (диагональ) равен квадрату двух других сторон)
источник
* cos(lat)
при преобразовании градусов в мили и/ cos(lat)
при преобразовании миль в градусы.Если вы используете пространственно-ориентированную базу данных, вы можете преобразовать интересующую вас область в ту же систему координат, в которой хранятся ваши данные, а затем сравнить яблоки с яблоками.
Например:
источник
Я использовал то, что на этой странице
Для θ я использовал -45 градусов (в радианах) для «верхней левой точки» и 135 градусов для «нижней правой»
(Я недавно задавал тот же вопрос на сайте по математике )
источник