5

適切なSQL標準を使用してMYSQLで特定の緯度と経度を使用して目的の半径または距離を計算する方法について知る必要がありますか?私はインターネット上で多くの解決策を見つけましたが、彼らはcosや他の用語を含むのに多くの時間を費やしています。助けてください!

4

2 に答える 2

3

2つのGPSポイント間の距離を計算するには、MySQL関数を使用しています。

CREATE FUNCTION `distance`(lat1 FLOAT(10,7), lng1 FLOAT(10,7), lat2 FLOAT(10,7), lng2 FLOAT(10,7)) RETURNS FLOAT(20,2)
    RETURN ROUND(6371 * 2 * ASIN(SQRT( POWER(SIN((lat1 -ABS( lat2 )) * PI()/180 / 2),2) + COS(lat1 * PI()/180 ) * COS( ABS ( lat2 ) *  PI()/180) * POWER(SIN((lng1 - lng2) *  PI()/180 / 2), 2) )), 2);

そしてそれを使うのはとても簡単です:

SELECT
    distance( city1.latitude, city1.longtitude, city2.latitude, city2.longtitude) AS distanceKM
FROM
    city1, city2 ...

キロメートルへの座標がどのように変換されているかをここで読むことができます

注: 6371はキロメートル単位の地球半径であるため、マイル単位の距離が必要な場合は、次のように置き換える必要があります。3959

于 2013-01-14T10:37:09.607 に答える
3

このリンクを見てください。これが役立つ場合があります。

距離を計算します。

于 2013-01-14T10:29:44.987 に答える