ホームページ >データベース >mysql チュートリアル >PHP で緯度と経度を使用して半径内の距離を計算するにはどうすればよいですか?
緯度と経度からの距離の計算
このシナリオでは、半径 15 マイル以内のポイントを決定しようとしています。ユーザーが入力した座標。これを実現するには、数式を利用して距離を計算します。
次の PHP 関数を検討してください:
<code class="php">function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') { // Calculate the angle difference $theta = $longitude1 - $longitude2; // Calculate the distance $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); // Convert to degrees $distance = acos($distance); $distance = rad2deg($distance); // Convert to miles or kilometers $distance = $distance * 60 * 1.1515; // Round the distance return (round($distance,2)); }</code>
あるいは、データベース クエリを利用してこれを実現できます:
<code class="sql">$query = "SELECT *,(((acos(sin((".$latitude."*pi()/180)) * sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)* pi()/180))))*180/pi())*60*1.1515 ) as distance FROM `MyTable` HAVING distance > ".$distance.";</code>
以上がPHP で緯度と経度を使用して半径内の距離を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。