MySQL半径搜索

时间:2015-07-03 19:14:39

标签: mysql geolocation geometry cartesian-coordinates great-circle

我正在使用半径搜索创建应用程序,这是我从

学到的示例

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

就我而言

我做

SELECT(3959 * acos(cos(弧度(-37.814107))* cos(弧度(lat))* cos(弧度(lng) - 弧度(144.96327999999994))+ sin(弧度(-37.814107))* sin(弧度(纬度))))AS距离;

当lat = -37.8141070000时,lng = 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,为什么?我做错了吗?

我是如何解决的?对不起,我真的不擅长数学。

1 个答案:

答案 0 :(得分:0)

基本SQL查询

SELECT * FROM table

您的查询中必须有一个MySql表,其中包含lat&作为领域。 即

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;