私は緯度と経度の情報があるmysqlテーブルに約15の場所を持っています。複数の場所の距離を決定してソートする
PHPとGoogleマップAPIの使用2つの場所の距離を計算できます。
function GetDrivingDistance($lat1, $lat2, $long1, $long2)
{
$url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=".$lat1.",".$long1."&destinations=".$lat2.",".$long2."&mode=driving&language=en-US";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response, true);
$dist = $response_a['rows'][0]['elements'][0]['distance']['text'];
$time = $response_a['rows'][0]['elements'][0]['duration']['text'];
return array('distance' => $dist, 'time' => $time);
}
固定であるものを選択したいとします。
緯度と長い$query="SELECT lat, long from table WHERE location=1"
$locationStart = $conn->query($query); =
所与の行1私は距離
によってソート結果がそれぞれ単独一方と端を計算しようとしたテーブル内のすべての他の場所(他の行)までの距離を計算して返すようにしたいです非常に長いコードでアップし、api経由でそれをフェッチするのに時間がかかりすぎて、まだこのように並べ替えることができません!
ヒント?
[ 'curl_multi_init'](http://php.net/manual/en/function.curl-multi-init.php)要求を処理する方法は、それが*「複数の処理を可能かもしれませんcURLは非同期に処理されます。 "*あなたのcURL要求をスピードアップするための1つの方法です。すべての 'cURL'コードを減らしたければ、[' file_get_contents() '](http://php.net/manual/en/function.file-get-contents.php)を実行することもできます。並べ替えに関しては、距離の数値を取り出して配列に格納しておけば、 'natsort()'のような組み込みソート関数を使うことができると思います。 – Mikey
こんにちはピジョンこれ以上の詳細やコードサンプルをテストしたいのですか?私はPHPで非常に良いを持っていない – Mike
私はいくつかの荒い作業で、私が考えていた大まかなアイデアを追加しました、任意の質問は私に知らせてください。 – Mikey