|
|
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть таблица в БД, в которой хранятся координаты (широта и долгота) различных гео-объектов. Мне нужно выбрать из нее те объекты, которые находятся от заданной точки на определенном расстоянии (по радиусу). Имеем входные данные: 1. Широта и долгота точки (представленные в виде десятичного числа), для которой ищем места рядом 2. Радиус в киломметрах, в пределах которого ищем места рядом. Мои идеи: 1. Определяем диапазон широт и долгот относительно имеющейся точки, зная радиус 2. Выбираем объекты, выполняя подобный запрос: Код: sql 1. Вопрос: как узнать этот минимальную широту и долготу, зная радиус в километрах? Всем заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 18:35:51 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
Сейчас подумал - таким способом я нахожу точки в пределах квадрата. А мне нужно найти в пределах окружности, т.е. по радиусу. Есть у кого какие идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 18:44:06 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
urukhayСейчас подумал - таким способом я нахожу точки в пределах квадрата. А мне нужно найти в пределах окружности, т.е. по радиусу. Есть у кого какие идеи?Правильно, сначала отбираете в пределах "квадрата", поскольку это легко делается на большинстве СУБД с использованием индексов. А уже потом из них отбираете по радиусу. А расстояние на сфере описано даже википедии . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 18:51:20 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 19:09:20 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
в мускуле вродь тоже должны быть всякие финтифлюшки для работы с гео-координатами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 21:42:13 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
в мускуле вродь тоже должны быть всякие финтифлюшки для работы с гео-координатами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 21:42:13 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
авторпоскольку это легко делается на большинстве СУБД с использованием индексов Кстати, насчет индексов: в старых версиях мускула, насколько я знаю, индексы не работали в случае операторов сравнения. Т.е. на запросы вида: Код: sql 1. рабочий индекс построить было нельзя. Хотя, возможно, у меня недостоверная информация, я сам не проверял. Скажите, а как сейчас с этим дела. Как в данном конеретном примере построить индекс? Такой будет работать? Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 22:25:50 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
urukhay, Как раньше, так и сейчас индекс не будет применяться, если по статистике данных MySQL решит, что будет выбрано более 5% записей (точную величину могу путать, точно не помню, но не суть). А вообще по данному вопросу у нас есть FAQ: Нахождение записей, где заданное значение находится между значениями полей Модератор: Тема перенесена из форума "PHP, Perl, Python". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 23:22:22 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
Условие < или > может быть обработано с помощью индекса только в случае если индекса состоит только из одного этого поля или это поле является завершающим в составном индексе и все остальные поля составного индекса присутствуют в условии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 08:14:17 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
Hettтолько в случае если индекса состоит только из одного этого поля или это поле является завершающим в составном индексе и все остальные поля составного индекса присутствуют в условии.а как же третий случай - когда индекс начинается с этого поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 08:21:34 |
|
||
|
Определение близлежащих мест
|
|||
|---|---|---|---|
|
#18+
на да, простите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 08:37:36 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38724921&tid=1834333]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 314ms |

| 0 / 0 |
