Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Razzyel

converter km para R$ com o resultado do Google maps

Recommended Posts

Ola preciso de ajuda, ja tentei de varias formas mas não consegui, estou tendo dificuldade em converter km para R$ .
eu preciso que o resultado do google maps em km seja multiplicado por R$ 1,50 . assim o usuario teria o valor por km.. veja o codigo abaixo...

===============================================================================================

 

<!DOCTYPE html>
<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>
<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"></div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas o excerto relevante:

 $('#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 +
      " <br /><strong>Preço</strong>: R$ " + (parseFloat(response.rows[0].elements[0].distance.text.substring(0, response.rows[0].elements[0].distance.text.length - 3).split(",").join(".")) * 1.5).toFixed(2).toString().split(".").join(",")
); 

Exemplo.

 

Explicando a expressão (se necessário):

  1. Extrair o valor da distância ("descartando" unidade de medida)
  2. Trocar a vírgula (separador decimal) por um ponto de modo a poder calcular o preço.
  3. Voltar a formatar o preço de forma adequada para mostrar ao utilizador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo funcionou perfeitamente . surgiu um problema que ponho para pesquisar

DESTINO: Rua Alvaro de Carvalho - Anhagabau- SP

ORIGEM: Av. Teodoro Sampaio - SP

AGUARDE........

Fica aguardando e não da o resultado. mas quando pesquiso por estado funciona.

eu acho que me atrapalhei com alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@hgkiller, que parte do cálculo é que não está correcto?

 

Se reparares, utilizei um multiplicador de 1.5 no exemplo. Terás que alterar esse valor para o que pretendes.

 

Para te podermos ajudar melhor, mostra o código que tens de momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por helkton
      galera me desculpem se estou postando no lugar errado....
      estou em um dilema, estou usando as api do googleMaps para calcular a distancia entre 2Pontos para poder calcular a área de atuação de determinadas empresas e consequentemente o frete
      o retorno estou jogando em um id="total" até aqui blz, porem como faço para tipo usar essa variável tipo em PHP pra poder fazer as devidas comparações, tipo tem como salvar esta variável que esta me retornando a distancia total, em uma SESSION?????
    • Por Douglas Fabiano
      Olá amigos.
       
      Estou precisando desenvolver um mapa colaborativo como esse:https://pontosdealagamento.crowdmap.com/
       
      Mas um fora desse serviço que foi baseado o site acima, ou seja com o Google Maps.
       
      Podem me indicar por onde devo começar?
       
      Obrigado
    • Por dlucas2002
      Bom dia, estou querendo calcular a distância entre dois pontos(ponto1 e ponto2) no google maps, alguém pode me ajudar?Já tenho os dois pontos representados por marcadores e a rota, só falta a distância entre eles.Conferi a bibliografia atual do google maps sobre Distance Matrix mas ela não tem nenhum código que funcionasse pra esse meu problema específico.
       
       
      <!DOCTYPE html> <html>   <head>     <style>        /* Set the size of the div element that contains the map */       #map {         height: 400px;  /* The height is 400 pixels */         width: 100%;  /* The width is the width of the web page */        }     </style>   </head>   <body>     <div id="map"></div>     <script>                  function initMap() {             var directionsService = new google.maps.DirectionsService();             var directionsRenderer = new google.maps.DirectionsRenderer();               var ponto1 = new google.maps.LatLng(-5.577833,-36.913061);;             var ponto2 = new google.maps.LatLng(-22.934894,-47.060696);                var map = new google.maps.Map(document.getElementById('map'), {zoom: 4, center: ponto2});             directionsRenderer.setMap(map);                var marker = new google.maps.Marker({position: ponto1, map: map});             var marker1 = new google.maps.Marker({position: ponto2, map: map});               var request = {                 origin: ponto1,                 destination: ponto2,                 travelMode: 'DRIVING'             };             directionsService.route(request, function(result, status) {                 if (status == 'OK') {                 directionsRenderer.setDirections(result);                 }             });                     }                </script>            <script async defer     src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB9RfaC0_ixdYkUQokkZqO93mzvLBCrvr4&callback=initMap">     </script>   </body> </html>
    • Por Karoline Arias
      Olá, Boa tarde!
      Fizemos um redesign de um e-commerce nacional, onde inserimos recursos do Google Maps na página de localização de lojas deste varejista. O maps incorporado nesta página apresenta o mapa, porem não apresenta a localização do usuário e a marcação (marker) das lojas ou pins.
      Observação: Ao substituirmos a chave Google do varejista, pela chave Google do desenvolvedor, as marcações aparecerem normalmente. Será que pode estar faltando alguma configuração ou componente associado a chave/conta Google do varejista?
      Obrigada!

    • Por isaque_cb2
      Bom, eu estou trabalhando em um app que depende de um mapa, gps e coisas do tipo, não é nada grande, e é mais pra estudos mesmo, quero conhecer melhor essa api, mais eu não encontro nenhum tutorial do tipo, todos que encontro são antigos e têm algum erro, alguém pode me ajudar? com tutoriais, dicas, video-aulas (que ainda funcionem...) eu já reproduzi vários, mais sempre tem um erro...
       
      grato por qualquer ajuda!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.