1

前言:我在这方面不是最擅长的,所以如果我忽略了一些基本的东西,请原谅。

我正在使用 API 来提取“附近地点”的业务数据,并且我想在其中使用距离函数来计算以英里为单位的距离(使用每个位置的坐标)。

单独运行,每个都可以正常工作,但是当我尝试将距离计算器嵌入到 API 请求中时,出现了问题。

例如,这很好用(坐标在这里是硬编码的):

<?php
function distance($lat1, $lon1, $lat2, $lon2, $unit) {
    $theta = $lon1 - $lon2;
    $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +  cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
    $dist = acos($dist);
    $dist = rad2deg($dist);
    $miles = $dist * 60 * 1.1515;
    $unit = strtoupper($unit);

    if ($unit == "K") {
        return ($miles * 1.609344);
    } else if ($unit == "N") {
        return ($miles * 0.8684);
    } else {
        return $miles;
    }
}
echo distance($latitude, $longitude, 29.46786, -98.53506, "M") . " Miles<br>";
?>

现在,$latitude$longitude引入业务 A 及以上的长/纬度,我在这里硬编码了一些坐标,只是为了测试它是否计算距离。这行得通。

当我尝试将此代码放入从 API 中提取“附近”业务的脚本中时(我可以毫无问题地提取坐标),我遇到了问题。

如何在函数中运行函数,以便我可以提取附近企业的坐标并将它们放入上面(我有硬编码的数字)?

编辑:这是我试图将上面的代码放在里面的代码......我想在下面显示“交易通过”之前使用上面的函数 - 以显示业务的距离(以英里为单位)

<?php
if  (! in_array('curl', get_loaded_extensions())) {
    die("Curl Extension is not loaded");
}

$key = 'REMOVED FOR EXAMPLE';

$search = "http://api.yipit.com/v1/deals/?key=$key&lat=$latitude&lon=$longitude&radius=10";

$search_init = curl_init();
curl_setopt($search_init, CURLOPT_HTTPHEADER, array( 'Expect:' ) );
curl_setopt($search_init, CURLOPT_URL, $search);
curl_setopt($search_init, CURLOPT_RETURNTRANSFER, TRUE);

$yipit = curl_exec($search_init);

$obj = json_decode($yipit, true);


if (isset($obj["response"]["deals"])) {
    $cnt = count($obj["response"]["deals"]);

    for($i=0;$i<$cnt;$i++) {
        echo "<p>

<h3>".$obj["response"]["deals"][$i]["business"]["name"]." - ".$obj["response"]["deals"][$i]["price"]["formatted"]." for ".$obj["response"]["deals"][$i]["yipit_title"]." (".$obj["response"]["deals"][$i]["value"]["formatted"]." Value)</h3><br>

<img src=".$obj["response"]["deals"][$i]["images"]["image_small"].">

    <b></b><br>
    Deal via ".$obj["response"]["deals"][$i]["source"]["name"]."<br>
    Expires: ".$obj["response"]["deals"][$i]["end_date"]."<br>
    <h3><a href=". $obj["response"]["deals"][$i]["url"].">See more information on this deal</a></h3><br>
    </p><br><br> ";
    }
} else {
    var_dump($yipit);
}

?>
4

0 回答 0