По-моему - да. Google умеет вычислять расстояние между 2 LatLng, потому что дает вам расстояние с помощью улиц и дорог, а не расстояние по прямой между 2 точками (что было бы легко рассчитать в php).
Сохранение LatLng из этих 4000 адресов не принесет вам никакой пользы, потому что вам все равно нужно спросить Google о расстоянии от адреса пользователя до каждого из них. Вы не можете рассчитать это сами, даже если у вас есть все LatLng (вам нужна карта ).
Я думаю, вы можете сохранить каждый пользовательский ввод и сохранить этот адрес с 4000 расстояниями до каждого местоположения ... но это было бы полезно только для того, чтобы пользователь возвращался на сайт во второй раз.
...
Хорошо, у меня есть идея:
- ли хранить LatLng-х каждого из 4000 мест.
- Магазин Расстояние между всего 4000 мест (так что если вы выберете один, вы можете получить список всех остальных, заказанных по расстоянию).
- Когда вы получаете адрес от пользователя, конвертируете его в LatLng и используете простую математику, чтобы найти ближайший местоположение в прямо линия.
- Используя список расстояний до всех других местоположений из базы данных, попросите Google получить расстояние доступа к этому местоположению и примерно 10-20 ближайших к нему мест; для остальных используют расстояния от ближайшего к базе .
Таким образом, вы получите первые 10-20 точных расстояния до ближайших мест от пользовательского ввода, а остальное будет выведены из базы данных - они фактически было бы расстояние от места ближе к в других местах.
И вы можете использовать Google API только в том случае, если вы показываете карту Google. - В какой стране находятся адреса? – Matt
@Andrew Когда вы определяете расстояние, вы ищете расстояние до улицы или воздушное расстояние или даже прямолинейное расстояние? – Jeffrey