В этой статье я расскажу как найти расстояние между двумя адресами. Это можно сделать используя 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) .