SQLite - получить набор значений lat, long из таблицы - PullRequest
0 голосов
/ 20 февраля 2012

Я сохранил некоторые значения широты и долготы в базе данных SQLite, как показано на скриншоте.

enter image description here

Имя базы данных: database

Имя таблицы: table

Поля в таблице Таблица:

* Name

* Score

Я занимаюсь разработкой приложения для iPhone.При этом, если я дам latitude, longitude и range (расстояние) в качестве входных данных, я должен получить набор latitudes & longitudes из базы данных для данного range в качестве результата,Например,

Если я задаю входные параметры как

Latitude -> 40.7000, Longitude -> -73.9500 and Range -> 30 miles, он должен проверить базу данных на наличие Latitude & Longitude в данном range и вернуть result.Итак, result должно быть

40.752199, -73.996696
40.793019, -73.969574
40.750898, -73.86898
40.675431, -73.954811
40.68194, -73.927689

Как я могу решить это в iPhone?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

То, что вы ищете, называется функцией Haversine. На этой странице есть отличная функция SQLite, которая работает хорошо и быстро.

http://www.thismuchiknow.co.uk/?p=71

Если этот не работает для вас, найдите Haversine, и вы найдете тот, который работает.

Вам нужно добавить «ГДЕ расстояние <30» к вашему SQL. Вам также может понадобиться скорректировать числа, используемые для получения миль вместо километров. </p>

1 голос
/ 20 февраля 2012

Я вижу два разных способа решения вашей задачи.

  1. Чтобы сделать довольно сложный запрос SQL, с некоторыми математическими.ВЫБРАТЬ ОТ ГДЕ (x-center_x) ^ 2 + (y - center_y) ^ 2 <радиус ^ 2 (не прощайте, покажите радиус не в милях, а в град.) </p>

  2. читатьвсе координаты из DB с широтой в диапазоне r-30 миль

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