Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложное усовие 
:(
    Опции темы
Areostar
Дата 9.10.2015, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: нет
Всего: -2



есть таблица с координатами для гугловских карт.

надо выбрать те толки которые находятся в определённом радиусе от заданной точки!

нащёл функцию на js которая вычисляет растояние между двумя точками на карте:

Код

var getDistance = function(p1, p2) {
  var R = 6378137; // Earth’s mean radius in meter
  var dLat = rad(p2.lat() - p1.lat());
  var dLong = rad(p2.lng() - p1.lng());
  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
    Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) *
    Math.sin(dLong / 2) * Math.sin(dLong / 2);
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  var d = R * c;
  return d; // returns the distance in meter
};




пытаюсь переписать в условие для sql запроса. Получилось так:

Код

$formula = $radius." * (2 * ATAN2(SQRT(POW(SIN(RADIANS(`coor_x` - ".$main_lat.")), 2) +
                    COS(RADIANS(".$main_lat.")) * COS(RADIANS(`coor_x`)) * POW(SIN(RADIANS(`coor_y` - ".$main_lgn.") / 2), 2),
                    SQRT(1 - POW(SIN(RADIANS(`coor_x` - ".$main_lat.")), 2)) + 
                    COS(RADIANS(".$main_lat.")) * COS(RADIANS(`coor_x`)) * POW(SIN(RADIANS(`coor_y` - ".$main_lgn.") / 2), 2))))";


$main_lat - х координата заданной точки. $main_lgn - y координата заданной точки
coor_x, coor_y - координаты точек из таблицы

подставляю в запрос

Код

$sth = $dbh->prepare("SELECT `point_id`, `point_name`, `coor_x`, `coor_y` FROM `points_table`   WHERE (".$formula.") < 1000";


 запускаю. выполняется но возвращает пустой запрос. где я ошибся??
PM MAIL   Вверх
Akina
Дата 9.10.2015, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Приведи найденную функцию заменами переменных на вычисляющие их выражения к виду
Код

var getDistance = function(p1, p2) {
  return (выражение);
};

и сразу поймёшь, где накосячил.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Areostar
Дата 9.10.2015, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: нет
Всего: -2



Мне Sql запрос нужен. Функция на js работает. Проверено!

Это сообщение отредактировал(а) Areostar - 9.10.2015, 18:25
PM MAIL   Вверх
Akina
Дата 9.10.2015, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Ты сперва сделай, что тебе посоветовали. Тогда сразу увидишь, где накосячил. 

А если постишь только для того, чтобы спорить с теми, кто тебе решил подсказать - так хоть предупреждай заранее. Мне с тобой бодаться нафиг не надо.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Areostar
Дата 10.10.2015, 05:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: нет
Всего: -2



Разобрался. Скобки не там закрыл.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.