Вот вопрос, который заставляет меня бодрствовать уже несколько дней.Пока я пришел к единственному выводу, что Red Bull обычно не помогает программистам.
В моем приложении есть сценарий, где у меня есть пара заданий (от 1 до 50).У задания есть адрес, и у меня есть следующие свойства адреса: почтовый индекс, широта и долгота.
У меня есть таблица рабочих, и у них тоже есть адреса.В то время как задания или работники создаются с помощью экранов, я использую запросы Google Map, чтобы убедиться, что предоставленный почтовый индекс действителен и находится в Великобритании, поэтому все адреса проверены.
Я использую элемент управления планировщика для отображения некоторых работниковпо оси Y и временной шкале по оси X.Каждое задание имеет дату и может перемещаться в планировщике только вертикально на дату задания.Пользователь выбирает несколько заданий, и они отображаются в корзине рядом с планировщиком.Пользователь может затем перетащить работу против рабочих.Все это вручную, поэтому оно работает.
Моя задача состоит в том, чтобы автоматизировать это, чтобы пользователь ничего не делал, кроме как просто проверяя и распределяя задания.Поэтому я должен автоматизировать процесс.
У каждого работника есть свойство WillingMaximumDistanceTravel, которое представляет собой целое число, представляющее мили, и работник готов отправиться на работу.
Теперь вот головная боль: У меня более 1500 рабочих.У меня есть служебная функция, которая использует Json Convert от Newtonsoft для десериализации потока ответа из Google Maps.Мне нужно скормить его Почтовый индекс A и B.
Я также планирую представить новую таблицу в DB для хранения результатов поиска в виде почтового индекса A, почтового индекса B и расстояния.Поэтому, если я обнаружу, что снова сравниваю те же самые почтовые индексы, я просто и медленно и постепенно получу результат из БД, и мне больше не потребуется беспокоить Google, поскольку эта таблица будет очень полной.
Я не могуиспользуйте простую формулу Haversine, так как путь Crow-fly здесь не мой.Беда в том, что на это уходит много времени.Некоторые работники могут проехать более 10 миль, а некоторые - от 15 до 80. Мне нужно взять первую работу из списка и запустить ее с каждым соответствующим работником системы!Мне было интересно, что почтовый индекс Великобритании имеет образец для этого.Если мы отсортируем список британских почтовых индексов, можем ли мы сделать приблизительную оценку по алфавитно-цифровому шаблону, где мы достигнем отметки 100 миль, отметки 200 миль и т. Д.?
Если кого-то интересуеткод, пожалуйста, напишите строку, и я вставлю его.