0

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

有谁知道这是否可以实现?因为我迫切需要一些帮助。提前致谢!

4

1 回答 1

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”

于 2013-08-19T17:54:40.720 回答