D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys_ant
/
adm
/
vendor_Ant
/
api
/
Filename :
calculaDistancia_1.php
back
Copy
<?php require_once 'conectaPdo.php'; header('Content-Type: application/json; charset=utf-8'); //if (empty($_POST['destino']) || empty($_POST['empr_id'])) { // echo json_encode(['erro' => 'Parâmetros inválidos']); // exit; //S} $destino = trim($_POST['destino']); $empr_id = (int) $_POST['empr_id']; /* Busca origem */ $sql = "SELECT concat(e.endereco,', ',e.numero,', ',m.nome,', ', m.uf) endereco FROM adms_empresas e inner join adms_municipios m on m.id = e.municipio_id where e.id = :empr_id limit 1"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':empr_id', $empr_id, PDO::PARAM_INT); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (!$row || empty($row['endereco'])) { echo json_encode(['erro' => 'Endereço da empresa não encontrado']); exit; } $origem = $row['endereco'] . ', Brasil'; /* Google Distance Matrix */ $apiKey = 'AIzaSyAFXNZ0Qh_YP1s05oEtusz_SpkLBh5iaqY'; $url = 'https://maps.googleapis.com/maps/api/distancematrix/json?' . http_build_query([ 'origins' => $origem, 'destinations' => $destino . ', Brasil', 'mode' => 'driving', 'units' => 'metric', 'key' => $apiKey ]); $resp = file_get_contents($url); $data = json_decode($resp, true); if ( !$data || $data['status'] !== 'OK' || $data['rows'][0]['elements'][0]['status'] !== 'OK' ) { echo json_encode(['erro' => 'Rota não encontrada']); exit; } $km = round( $data['rows'][0]['elements'][0]['distance']['value'] / 1000, 2 ); echo json_encode(['distancia' => $km]);