Возможно, вам придется пойти на некоторые эвристики здесь.Возможно, вы можете оценить время в пути, основываясь на нескольких факторах, таких как геометрическое расстояние и некоторые особенности начальной и конечной точек (город или сельская местность, страна, ...).Вы можете получить несколько расстояний, попытаться подогнать свои параметры по подмножеству их и посмотреть, насколько хорошо вы можете предсказать другие.Мой прогноз, например, будет заключаться в том, что время в пути во многих случаях приближается к линейной зависимости от расстояния по мере увеличения расстояния.
Я знаю, что это грязно, но эй, вы пытаетесь оценить 12,5 миллионов точек данных (или любую другую сумму:)
Вы также можете постепенно добавлять знания из уже извлеченных "реальных""время в пути, находя точки, близкие к тем, которые вы ищете:
- получите ближайшие точки StartApprox, EndApprox к начальной и конечной позиции, так что у вас есть время перемещения между StartApprox и EndApprox
- вычисление расстояний StartError, EndError между start и StartApprox, end и EndApprox
- , если StartError + EndError> Distance (StartApprox, EndApprox) * 0.10 (или независимо от вашего порога) -> вычислить расстояние через API (и сохранитьэто), иначе используйте известное время в пути плюс время накладных расходов, основанное на StartError + EndError
(если у вас 100 адресов в Нью-Йорке и 100 в SF, все значения будут более или менее одинаковыми(т.е. разница между ними, вероятно, ниже, чем неопределенность, связанная с этими прогнозами) и такой подходбудет удерживать вас от выдачи 10000 запросов, где 1 будет делать)