Поиск радиуса MySQL

Я делаю приложение с радиусным поиском, вот пример, который я извлек из

https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql

В моем случае

I do

SELECT (3959 * acos(cos(радианы(-37,814107)) * cos(радианы(лат)) * cos(радианы(lng) - радианы(144,96327999999994)) + sin(радианы(-37,814107)) * sin(радианы(лат) )))) Расстояние АС;

когда широта = -37,8141070000, долгота = 144,9632800000

SELECT (3959 * acos(cos(радианы(-37,814107)) * cos(радианы(-37,8141070000)) * cos(радианы(144,9632800000) - радианы(144,96327999999994)) + sin(радианы(-37,814107)) * sin(радианы( -37,8141070000)))) Расстояние AS;

MySQL выводит расстояние как NULL, почему? Я сделал что-то неправильно?

Как мне это исправить? Извините, я действительно НЕ силен в математике.


person Jerr Wu    schedule 03.07.2015    source источник
comment
Я думаю, что получил ответ, пожалуйста, см. баг-тригонометрия   -  person Jerr Wu    schedule 04.07.2015


Ответы (1)


Базовый SQL-запрос

SELECT * FROM table

В вашем запросе должна быть таблица MySql с полями lat и lng. то есть

SELECT (3959 * acos(cos(radians(-37.814107)) 
       * cos(radians(lat)) * cos(radians(lng) - radians(144.96327999999994))
        + sin(radians(-37.814107))
        * sin(radians(lat)))) AS distance FROM table;
person david strachan    schedule 04.07.2015
comment
Привет, Дэвид, у меня есть таблица, в которой есть строка с широтой = -37,8141070000, долготой = 144,9632800000. Но mysql всегда выводит расстояние как NULL этой строки. - person Jerr Wu; 04.07.2015
comment
НО вы должны иметь имя таблицы в запросе. В обоих ваших запросах нет базы данных - person david strachan; 05.07.2015
comment
Спасибо, Дэвид, я знаю это. Поскольку мои запросы очень сложны, я упростил свой вопрос. - person Jerr Wu; 05.07.2015