Как получить различную широту и долготу для данного расстояния в 1 милю в Java, используя запрос MySql? - PullRequest
0 голосов
/ 08 декабря 2011

Я работаю над Java-приложением.Я создал свою таблицу в MySql для хранения различной широты и долготы.Я должен выяснить из базы данных разные широты и долготы для данного 1 мили радиус.

Здесь у меня есть входной параметр мили (радиус) = 1

Мне нужна любая функция в Java, которая может принимать ввод в 1 милю и возвращать разные значения широты и длины из базы данных.

т.е. ввод = 1 миля

output = lat = 23,45, долгота= 72.12
широта = 23.4501, долгота = 72.1201
широта = 24.01, долгота = 73.12
широта = 23.451, долгота = 72.121
широта = 22.45, долгота = 70.12
широта = 20.45, долгота= 74,12
широта = 25,45, долгота = 73,12
широта = 26,45, долгота = 71,12

Обязательно:

1) Java-функция, которая принимает расстояниев качестве входных данных
2) MySql-запрос, который дает разные значения широты и длины из базы данных с заданного расстояния в 1 милю.
3) Любые вычисления, которые требуются для выполнения вышеуказанного кода, или любой другой API для расчета.

Пожалуйста, помогите мне с любой полезной JavaКод, а также запрос mySql для получения данных из таблицы?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 декабря 2011

Вы должны использовать формулу haversine , чтобы вычислить расстояние между двумя точками, вы получили начальную точку и расстояние, которое составляет 1 милю.

Формула Haversine:

a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)
c = 2.atan2(sqrt(a), sqrt(1−a))
d = R.c

где:

 - R is earth's radius (`mean radius = 6,371km`);
 - Δlat = lat2 - lat1
 - Δlong = long2 - long1
 - atan2(y,x) = arc tan(y/x)
 - d = 1 mile

или вы можете использовать Равноугольное приближение , которое намного проще:

x = Δlong.cos(lat)
y = Δlat
d = R.sqrt(x² + y²)

Итак, что у вас естьрасстояние d = 1 и начальная точка, скажем (lat1, long1), поэтому вам нужно решить уравнение и получить все пары (lat, long), которые проверяют ваше уравнение.

Наслаждайтесь.

0 голосов
/ 08 декабря 2011

Возможно, вам следует нанять разработчика?Поскольку ваш «вопрос» больше похож на запрос на работу, который вы увидите на таких сайтах, как oDesk, чем на вопрос, который поможет вам решить проблему, с которой вы столкнулись после выполнения некоторой работы самостоятельно…Кроме того, что означает «1 миля»?(ответ = ничего)

Вам действительно необходимо предоставить, наряду с ДИСТАНЦИЕЙ 1 (в милях), СПРАВКУ!И тот факт, что вы не знаете / не понимаете, подтверждает предложение: вам следует нанять кого-нибудь, чтобы сделать это.

Lol.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...