0

私は採用データベースを設計していますが、距離を計算する方法を統合することを含むいくつかのタスクを実行するためにデータベースが必要です。

1)候補者がクライアントから住んでいる距離を計算しますか?

2)特定の日に仕事に利用できる候補者の半径内のクライアントを計算しますか?

3)クライアントの半径内の空室の正しい資格を持つ候補者の数を計算します。

ご覧のとおり、2つの主な方法で距離を計算する必要があります。1)半径2)カラスが飛ぶので、正確な距離を好みますが、最初の方法で計算します。Googleマップやその他のWebベースのマッピングを統合できることは知っていますが、インターネットに接続しなくても機能できるように、システムをスタンドアロンにしたいです。システムにはHTML5フロントエンドがあり、バックエンドはMysqlとPHPにあります。

ありがとうbiagio

4

3 に答える 3

9

2点間の距離は、次の式で計算できます。

6371*acos(cos(LatitudeA)*cos(LatitudeB)*cos(longitudeB-longitudeA)+sin(LatitudeA)*sin(latitudeB))

もちろん、これはKmでの「カラスハエ」の近似値です。

Wichは次の方法でphpに翻訳できます:

$longA     = 2.3458*(M_PI/180); // M_PI is a php constant
$latA     = 48.8608*(M_PI/180);
$longB     = 5.0356*(M_PI/180);
$latB     = 47.3225*(M_PI/180);

$subBA       = bcsub ($longB, $longA, 20);
$cosLatA     = cos($latA);
$cosLatB     = cos($latB);
$sinLatA     = sin($latA);
$sinLatB     = sin($latB);

$distance = 6371*acos($cosLatA*$cosLatB*cos($subBA)+$sinLatA*$sinLatB);
echo $distance ;

これにより、2つのポイント(人)間の距離を計算し、もちろん、ポイントが他のポイントの半径内にあるかどうかを判断できます。

于 2012-05-03T09:35:57.510 に答える
2

考えてみてください。クライアントと候補者が非常に限られた地域に住んでいる場合は、長方形の地図を使用して、その地域のすべての都市のx値とy値をデータベースに入力します。

ピタゴラスの定理により、次のように言うことができます。

距離²=(x値クライアント-x値候補)²+(y値クライアント-y値候補)²

于 2012-05-03T10:05:48.887 に答える
0

まず、半径は実際には「カラスが飛ぶように」クライアントから候補者までの距離ではありませんか?とにかく...ポイント間の距離に基づいて必要なものを計算するためのアルゴリズムを理解する必要があります。

システムをスタンドアロンにする場合は、ポイントの座標(緯度、経度)の値を設定する必要があります。このためには、おそらくインターネット接続と、ポイントのアドレスに基づいて座標を見つけるためのグーグルマップのようなサービスの使用が必要になります。ただし、データベースに保存すると、インターネット接続は不要になります。

座標に基づいて2点間の距離を計算する式があり、簡単に見つけることができます:)

于 2012-05-03T09:27:16.313 に答える