Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Calcular distancia entre cidades (mapas e rotas)</title>
- <script src="http://code.jquery.com/jquery-1.8.1.js" type="text/javascript"></script>
- </head>
- <body>
- <!-- Parâmetro sensor é utilizado somente em dispositivos com GPS -->
- <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
- <script type="text/javascript">
- function CalculaDistancia() {
- $('#litResultado').html('Aguarde...');
- //Instanciar o DistanceMatrixService
- var service = new google.maps.DistanceMatrixService();
- //executar o DistanceMatrixService
- service.getDistanceMatrix(
- {
- //Origem
- origins: [$("#txtOrigem").val()],
- //Destino
- destinations: [$("#txtDestino").val()],
- //Modo (DRIVING | WALKING | BICYCLING)
- travelMode: google.maps.TravelMode.DRIVING,
- //Sistema de medida (METRIC | IMPERIAL)
- unitSystem: google.maps.UnitSystem.METRIC
- //Vai chamar o callback
- }, callback);
- }
- //Tratar o retorno do DistanceMatrixService
- function callback(response, status) {
- //Verificar o Status
- if (status != google.maps.DistanceMatrixStatus.OK)
- //Se o status não for "OK"
- $('#litResultado').html(status);
- else {
- //Se o status for OK
- //Endereço de origem = response.originAddresses
- //Endereço de destino = response.destinationAddresses
- //Distância = response.rows[0].elements[0].distance.text
- //Duração = response.rows[0].elements[0].duration.text
- $('#litResultado').html("<strong>Origem</strong>: " + response.originAddresses +
- "<br /><strong>Destino:</strong> " + response.destinationAddresses +
- "<br /><strong>Distância</strong>: " + response.rows[0].elements[0].distance.text +
- " <br /><strong>Duração</strong>: " + response.rows[0].elements[0].duration.text
- );
- //Atualizar o mapa
- $("#map").attr("src", "https://maps.google.com/maps?saddr=" + response.originAddresses + "&daddr=" + response.destinationAddresses + "&output=embed");
- }
- }
- </script>
- <table width="100%" cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td>
- <label for="txtOrigem"><strong>Endereço de origem</strong></label>
- <input type="text" id="txtOrigem" class="field" style="width: 400px" />
- </td>
- </tr>
- <tr>
- <td>
- <label for="txtDestino"><strong>Endereço de destino</strong></label>
- <input type="text" style="width: 400px" class="field" id="txtDestino" />
- </td>
- </tr>
- <tr>
- <td>
- <input type="button" value="Calcular distância" onclick="CalculaDistancia()" class="btnNew" />
- </td>
- </tr>
- </tbody>
- </table>
- <div><span id="litResultado"> </span></div>
- <div style="padding: 10px 0 0; clear: both">
- <iframe width="750" scrolling="no" height="350" frameborder="0" id="map" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?saddr=são paulo&daddr=rio de janeiro&output=embed"></iframe>
- </div>
- { "destinationAddresses" : [ "Rio de Janeiro - RJ, República Federativa do Brasil" ],
- "originAddresses" : [ "São Paulo - SP, República Federativa do Brasil" ],
- "rows" : [ { "elements" : [ { "distance" : { "text" : "430 km",
- "value" : 430395
- },
- "duration" : { "text" : "4 horas 42 minutos",
- "value" : 16942
- },
- "status" : "OK"
- } ] } ]
- }
Add Comment
Please, Sign In to add comment