Предполагая, что вы ищете географическое расстояние , сначала вам нужно получить широту и долготу ваших двух почтовых индексов с помощью серверных служб геокодирования Карт Google , как показано ниже пример:
$url = 'http://maps.google.com/maps/geo?q=EC3M,+UK&output=csv&sensor=false';
$data = @file_get_contents($url);
$result = explode(",", $data);
echo $result[0]; // status code
echo $result[1]; // accuracy
echo $result[2]; // latitude
echo $result[3]; // longitude
Затем вы можете рассчитать расстояние между координатами двух ваших почтовых индексов, используя расстояние по большому кругу , например, следующее:
Обратите внимание, что служба геокодирования на стороне сервера может использоваться только в сочетании с отображением результатов на карте Google; Результаты геокодирования без отображения их на карте запрещены Условиями использования Google Maps API Условия лицензии .
ОБНОВЛЕНИЕ:
Если вы ищете расстояние вождения, а не географическое расстояние, обратите внимание, что в настоящее время не существует документированного и утвержденного метода доступа к API Google Maps Directions через HTTP-запрос на стороне сервера.
Тем не менее недокументированный метод, который возвращает вывод JSON, выглядит следующим образом:
http://maps.google.com/maps/nav?q=from:London%20to:Dover
Это вернет вам маршруты проезда, а также общее расстояние в формате JSON: "meters":122977
.
Формат параметра q
должен быть from:xxx%20to:yyy
. Замените xxx и yyy на начало и пункт назначения соответственно. Вы можете использовать координаты широты и долготы вместо полных адресов:
http://maps.google.com/maps/nav?q=from:51.519894,-0.105667%20to:51.129079,1.306925
Обратите внимание, что это не только недокументировано, но и может нарушать ограничения 10.1 и 10.5 Общих положений и условий API Карт Google .
Вам также может быть интересно проверить следующие связанные статьи: