SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.10.2008 03:31:18

dimonomid
Участник
Зарегистрирован: 18.10.2008
Сообщений: 2

Найти ближайшие значения float

Доброго всем времени суток!

Помогите пожалуйста: нужно хранить в БД mysql данные о некоторых точках на карте, соотв. будет храниться кроме прочего широта и долгота каждой точки.

И вот юзер кликает в какую-то точку на карте, и надо сделать так, чтобы нашлась ближайшая точка из БД, то есть найти строку с ближайшими значениями широты и долготы.

Как такое можно реализовать?

Заранее вам спасибо!

Неактивен

 

#2 20.10.2008 03:16:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Найти ближайшие значения float

Пусть координаты ($x, $y). Можно сделать в лоб:
SELECT * FROM table ORDER BY (table.x - $x)*(table.x - $x) + (table.y - $y)*(table.y - $y) LIMIT 1;

Если много точек, то посмотрите в сторону SPATIAL-индексов.

Неактивен

 

#3 20.10.2008 06:00:08

dimonomid
Участник
Зарегистрирован: 18.10.2008
Сообщений: 2

Re: Найти ближайшие значения float

Большое спасибо.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson