これが私を何日も目覚めさせている質問です。私がこれまでに思いついた唯一の結論は、RedBullは通常コーダーを助けないということです。
私のアプリケーションには、いくつかの仕事(1から50)があるシナリオがあります。ジョブには住所があり、住所には郵便番号、緯度、経度のプロパティがあります。
私には労働者のテーブルもあり、彼らにも住所があります。ジョブまたはワーカーは画面から作成されますが、Googleマップのクエリを使用して、提供された郵便番号が有効であり、英国にあることを確認して、すべての住所が確認されるようにします。
スケジューラーコントロールを使用して、y軸に一部のワーカーを表示し、x軸にタイムラインを表示しています。すべてのジョブには日付があり、ジョブの日付のスケジューラー上でのみ垂直方向に移動できます。ユーザーがいくつかのジョブを選択すると、それらはスケジューラーの近くのバスケットに表示されます。その後、ユーザーはワーカーに対してジョブをドラッグアンドドロップできます。これはすべて手動なので、機能します。
私の仕事は、これを自動化して、ユーザーがジョブを確認して割り当てる以外に多くのことを行わないようにすることです。したがって、プロセスを自動化する必要があります。
すべての労働者は、マイルを表す整数であるWillingMaximumDistanceTravelと呼ばれるプロパティを持っており、労働者は仕事のために旅行する用意があります。
今ここに頭痛の種があります:私には1500人以上の労働者がいます。NewtonsoftのJsonConvertを使用して、Googleマップからの応答ストリームを逆シリアル化するユーティリティ関数があります。郵便番号AとBをフィードする必要があります。
また、DBに新しいテーブルを導入して、距離の検索結果を郵便番号A、郵便番号B、および距離として保存する予定です。したがって、同じ郵便番号をもう一度比較していることに気付いた場合は、代わりにDBから結果をゆっくりと取得し、最終的には、このテーブルが非常に包括的であるため、Googleを煩わせる必要がなくなります。
ここではカラスフライパスが私の要件ではないため、単純な半正矢関数を使用することはできません。これの問題は、計算に多くの時間がかかることです。一部の労働者は10マイル以上移動できますが、一部の労働者は15〜80マイルです。リストから最初の仕事を取り、システムの該当するすべての労働者と一緒に実行する必要があります。英国の郵便番号にはパターンがあるのではないかと思っていました。英国の郵便番号のリストを並べ替える場合、英数字のパターンから、100マイルのマーク、200マイルのマークなど、どこに到達するかを概算できますか?
誰かがコードに興味があるなら、行をドロップしてください、そして私はそれを貼り付けます。