在所选城市的特定公里范围内展示餐厅

时间:2013-08-19 10:31:27

标签: api codeigniter scripting

我需要在codeigniter中执行一项新任务,我的餐馆详细信息包含城市,州,国家和邮政编码,现在如果用户输入城市或邮政编码,他可以选择km (公里)。我需要在公里范围内显示可用的数据库。为此,我能做的是我需要使用的任何脚本或任何api需要使用。有可能吗?

任何人都知道这是否可以实现?因为我迫切需要一些帮助。提前谢谢!

1 个答案:

答案 0 :(得分:2)

您首先需要存储所有餐馆的经度和纬度,然后您可以轻松地在您的模型中轻松到达这样的餐馆:

function getNear($lat =false,$lng=false,$distance = false /*km range*/){

$multiplier = 112.12; // use 69.0467669 if you want miles

$query = $this->db->query("SELECT *, (SQRT(POW((restaurants.lat - $lat), 2) + POW((restaurants.long - $lng), 2)) * $multiplier) AS distance FROM restaurants WHERE POW((restaurants.lat - $lat), 2) + POW((restaurants.long - $lng), 2) <= POW(($distance / $multiplier), 2)  ORDER BY distance ASC ;");

return $query->result();

}

然后调用它

$this->model->getNear($lat,$long,$distance_in_kilometers);

此查询在名为“restaurants”的表上运行,该表具有包含位置坐标

的“lat”和“long”字段