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ビジネス$longitudeA の経度/緯度を取得します。上記では、距離を計算することをテストするためだけに、ここでいくつかの座標をハードコーディングしました。これは機能します。

このコードを、API から「近くの」ビジネスをプルするスクリプト (問題なく座標をプルできる場所) に挿入しようとすると、問題が発生します。

関数内で関数を実行して、近くのビジネスの座標を取得して上記 (ハードコードされた番号がある場所) に配置するにはどうすればよいですか?

編集:これは、上記のコードを内部に入れようとしているコードです...下の「Deal Via」と書かれている直前に上記の関数を使用したいと思います-ビジネスがどれだけ離れているかをマイルで示します

<?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