В этой статье я расскажу как найти расстояние между двумя адресами. Это можно сделать используя api карт Google и PHP.
API предоставляемый Google позволяет вычислять расстояние между двумя точками, а так же время в пути для преодоления этого расстояния.
Формат для задания точек:
- Название места (например Bhopal,India)
- Почтовый индекс (например 462016)
- Координаты широты/долготы (например23.77xxx, 77.30xxx)
Для того чтобы больше узнать о разрешенных форматах посетите официальную страницу документации Google.
Поиск расстояния между двух адресов
Шаг 1. Получение ключа API.
Получите ключ API на этой странице.
Нажмите кнопку — Получение ключа.
Далее нажмите +Create new project
Далее введите название проекта:
После этого будет показано окно в котором будет указан ваш ключ API.
Шаг 2. Исходный код.
Пример как это работает можно посмотреть здесь.
<!DOCTYPE html>
<html>
<body>
<form action="" method="post">
<label>Местоположение:</label> <input type="text" name="o" placeholder="Введите местоположение" required> <br><br>
<label>Место назначения:</label> <input type="text" name="d" placeholder="EВведите место назначения" required> <br><br>
<input type="submit" value="Вычисить расстояние и время" name="submit"> <br><br>
</form>
<?php
if(isset($_POST['submit'])){
$origin = $_POST['o']; $destination = $_POST['d'];
$api = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&language=ru&origins=".$origin."&destinations=".$destination."&key=YOUR_API_KEY");
$data = json_decode($api);
?>
<label><b>Расстояние: </b></label> <span><?php echo ((int)$data->rows[0]->elements[0]->distance->value / 1000).' км'; ?></span> <br><br>
<label><b>Время в пути: </b></label> <span><?php echo $data->rows[0]->elements[0]->duration->text; ?></span>
<?php } ?>
</body>
</html>
замените в коде приведенном выше YOUR_API_KEY на ваш ключ API (из шага 1) .











