序文: 私はこれが得意ではないので、初歩的なことを見落としていたらすみません。
「近くの場所」のビジネス データを取得するために 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 から「近くの」ビジネスをプルするスクリプト (問題なく座標をプルできる場所) に挿入しようとすると、問題が発生します。
関数内で関数を実行して、近くのビジネスの座標を取得して上記 (ハードコードされた番号がある場所) に配置するにはどうすればよいですか?
編集:これは、上記のコードを内部に入れようとしているコードです...下の「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);
}
?>