Como calcular distância usando uma api do Google Maps


Nesse tutorial, vou ensinar como  fazer uma ferramenta que calcula a distância e o tempo  de um local até outro.

O que vai precisar fazer e apenas digitar os dois CEP’s.

cep de origem e o cep destino

 

*para usar as ferramentas do google, é preciso criar uma KEY

Leia…

https://developers.google.com/maps/documentation/distance-matrix/start

e também.

https://developers.google.com/maps/documentation/distance-matrix/get-api-key

 

Seus projetos ficam nessa página

https://console.cloud.google.com/project/_/billing/enable

depois de criar sua key coloque aqui.

$link="https://maps.googleapis.com/maps/api/distancematrix/xml?origins=$origem&destinations=$destino&mode=driving&language=pt-BR&sensor=false&key=SUAKEY";

<form name="form1" method="get" action="">
  Coloque endere&ccedil;o, CEP ou bairro para saber o tempo(carro) e a dist&acirc;ncia<br>
  <br>
  Origem 
  <input name="origem" type="text" value="<?=$_GET["origem"]?>" size="50">
  Destino 
  <input name="destino" type="text" value="<?=$_GET["destino"]?>" size="50">
  <input type="submit" value="Calcular">
</form>

<?
if($_GET["origem"] AND $_GET["destino"])
{
header("Content-Type: text/html; charset=UTF-8");

$origem = str_replace(" ", "%20",$_GET["origem"]);
$destino = str_replace(" ", "%20",$_GET["destino"]);
$link="http://maps.googleapis.com/maps/api/distancematrix/xml?origins=$origem&destinations=$destino&mode=driving&language=pt-BR&sensor=false&key=SUAKEY";
$novolink = curl_init();
curl_setopt($novolink, CURLOPT_URL, "$link");
curl_setopt($novolink, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($novolink, CURLOPT_CONNECTTIMEOUT,5);
curl_setopt ($novolink, CURLOPT_MAXCONNECTS, 10);
curl_setopt($novolink, CURLOPT_TIMEOUT ,5);
$output = curl_exec($novolink);
curl_close($novolink);

$output = str_replace("\n", " ", $output);

preg_match_all("/<origin_address>(.*?)<\/origin_address>/",$output, $a); //origem

preg_match_all("/<destination_address>(.*?)<\/destination_address>/",$output, $b); //destino

preg_match_all("/<duration>(.*?)<\/duration>/",$output, $c0);
preg_match_all("/<text>(.*?)<\/text>/",$c0[1][0], $c);  //duracao

preg_match_all("/<distance>(.*?)<\/distance>/",$output, $d0);
preg_match_all("/<text>(.*?)<\/text>/",$d0[1][0], $d);  //distancia

echo nl2br("<b>
Origem: ".utf8_decode($a[1][0])." 
Destino: ".utf8_decode($b[1][0])."
Distância: ".utf8_decode($d[1][0])."
Duração: ".utf8_decode($c[1][0])."</b>");


echo '<br><br><iframe id="map" src="https://maps.google.com/maps?saddr='.$a[1][0].'&amp;daddr='.$b[1][0].'&amp;output=embed" width="820" height="520" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>';
}
?>

Para testar
acesse o exemplo abaixo:

exemplos/calculardistanciagoogle.php

 

Categoria: php | Tags: , , , | Postado por joemaster em 14/ago/2020

<< Anterior

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *