モバイル アプリから提供された緯度/経度に最も近い場所を取得するために、harsine クエリを使用しています。
クエリは次のようになります。
SELECT *,(((acos(sin(($latitude *pi()/180)) * sin((`lat`*pi()/180))+cos(($latitude *pi()/180)) * cos((`lat`*pi()/180))* cos((($longitude - `lon`)*pi()/180))))*180/pi())*60*1.1515) AS dist_x
FROM `work_places`
HAVING dist_x <= '1'
ORDER BY dist_x ASC
LIMIT 10
これはうまく機能しており、取得すべき場所を正確に取得しています。
問題は、dist_x をユーザーが読み取り可能なものに変換することです。現在、dist_x が 0.00996273036944 のように読み取られるとしましょう (floatval と文字列が同じように表示されるため、適切に変換されます)
クエリは 1 マイル以内で検索しているため、これをフィートに変換しようとしているので、dist_x を 5280 で割っています。
$distance = (float)( $dist_x / 5280 );
返されるのは $distance = 1.88688075179E-6 です
私は何を間違っていますか?