首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter与SQL/Haversine公式

Codeigniter与SQL/Haversine公式
EN

Stack Overflow用户
提问于 2015-05-21 06:48:38
回答 2查看 1.2K关注 0票数 2

我在一个项目中使用Codeigniter,并且在数据库中有一些纬度和经度输入的位置。我试图在某一距离(50公里)内获得点数,并尝试使用Haversine公式。然而,在我的控制器和视图上,它没有打印结果。我需要知道的是,如果有任何调整,我需要使模型功能发挥作用。

注意: DB表有列名location_latitude和location_longitude。

代码语言:javascript
复制
//base function to compare distance with
$setlat = 13.5234412; 
$setlong = 144.8320897; 
//query with Haversin formula 
$awaka = "SELECT 'location_id',
    ( 3959 * acos( cos( radians(?) ) * cos( radians('location_latitude') ) * cos( radians('location_longitude') - radians(?) )
    + sin( radians(?) ) * sin( radians('location_latitude') ) ) ) AS 'distance'
    FROM 'locations' HAVING 'distance < 5'";
 $result = $this->db->query($awaka, array($setlat, $setlong, $setlat));  
 echo $result; 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-21 07:00:38

看来你被哈弗森公式绊倒了。您在第三个$setlong项中切换了location_longitudecosine项。我把他们转过来拿这个:

代码语言:javascript
复制
$setlat = 13.5234412; 
$setlong = 144.8320897; 
$awaka = "SELECT 'location_id',
    ( 3959 * acos( cos( radians(?) ) * cos( radians('location_latitude') ) * cos( radians(?) - radians('location_longitude') )
    + sin( radians(?) ) * sin( radians('location_latitude') ) ) ) AS 'distance'
    FROM 'locations' HAVING 'distance < 5'";
$result = $this->db->query($awaka, array($setlat, $setlong, $setlat));  
echo $result;

看看此页,它表明您必须对Haversine公式进行编码,以找到两点之间的距离。

票数 1
EN

Stack Overflow用户

发布于 2015-05-21 07:06:20

这是一个积极的记录,帮助你,它为我工作。

代码语言:javascript
复制
$this->db->select("location_id,round((6371 * acos(cos(radians($setlat)) * cos(radians(location_latitude)) * cos(radians('$setlong') - radians(location_longitude)) + sin(radians('$setlat')) * sin(radians(location_latitude)))),2) AS distance", false);
$this->db->having('distance < 5', false);
$data = $this->db->get('locations')->result_array();
return $data;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30366466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档