Jump to content
Rodrigo Razzyel

Api google maps calcular tempo do frete

Recommended Posts

Eu não estou conseguindo fazer ele adicionar um valor no tempo da viagem ..tipo assim depois que eu colocar o endereço ai me gera o valor do frete mas eu quero calcular o tempo estimado sambem Ex. se o tempo for 60 minutos e o motorista demorar 120 minutos, apos os 60 minutos ja calculado somaria a cada minuto adiciona $0,05 centavos ..não sei se estou sendo especifico,

e tambem não estou conseguindo fazer com que a posição de origem ser enviada para o banco de dados
o banco de dados seleciona o motoboy que esta conectado mais proximo do ponto de origem, quando o motoboy chega na origem e pega o documento ele ja clica em iniciar 
para dar o destino para ele... tem alguma maneira de fazer isso sem usar o banco de dados...

 

poderia me ajudar

 

o codigo é 

 <body>
      <div class="upage" id="mainpage" data-role="page" style="background:url(img/back.jpg); background-size:cover">
        <div id="moto" class="upage-content vertical-col left hidden">
           <div class="table-thing widget uib_w_7 d-margins" data-uib="twitter%20bootstrap/input" data-ver="1">
                  <label class="narrow-control label-inline" for="txtOrigem">Retirada</label>
                  <input class="wide-control form-control default" type="text" placeholder="Digite o endereço para retirar" id="txtOrigem">
               </div>
               <div class="table-thing widget uib_w_8 d-margins" data-uib="twitter%20bootstrap/input" data-ver="1">
                  <label class="narrow-control label-inline" for="txtDestino">Entrega</label>
                  <input class="wide-control form-control default" type="text" placeholder="Digite  endereço de entrega" id="txtDestino">
               </div>
               <!-- codigo botao xdk -->
               <button class="btn widget uib_w_9 d-margins btn-info" data-uib="twitter%20bootstrap/button" data-ver="1" onclick="CalculaDistancia()"><i class="glyphicon glyphicon-search" data-position="icon only"></i>
               </button>

              
               <div class="grid grid-pad urow uib_row_3 row-height-3" data-uib="layout/row" data-ver="0">
                  <div><span id="litResultado">&nbsp;</span>
                  </div>
                  <div class="col uib_col_5 col-0_12-12" data-uib="layout/col" data-ver="0">
                     <div class="widget-container content-area vertical-col">
                        <span class="uib_shim"></span>
                     </div>
                  </div>
                  <span class="uib_shim"></span>
               </div>
            </div>

         </div>
      </div>

<script src="http://code.jquery.com/jquery-1.8.1.js" type="text/javascript"></script>
<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
 var valor = (parseFloat(response.rows[0].elements[0].distance.text.substring(0, response.rows[0].elements[0].distance.text.length - 3).split(",").join(".")) * 1.68 + 5.39).toFixed(2).toString().split(".").join(",");
$('#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$ " + valor
);
$("input[name='item_valor_1']").val(valor);

                    //Atualizar o mapa
                    $("#map").attr("src", "https://maps.google.com/maps?saddr=" + response.originAddresses + "&daddr=" + response.destinationAddresses + "&output=embed");
                }
            }
      </script>
   </body>

</html>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By biakelly
      Meninos, criei esta função em PHP para coletar dados de uma API, consigo fazer funcionar com outras APIs de empresas parecidas mas esta empresa especificamente não trás os dados apontados. Poderiam me ajudar?
       
      Código:
      $cache_cointrade = 'cointrade'; if (file_exists($cache_cointrade)) { if (time() - filemtime($cache_cointrade) > $cachetime) { $cache = file_get_contents("https://api.cointradecx.com/public/ticker?market=BTC_BRL"); file_put_contents($cache_cointrade, $cache); $json_cointrade = file_get_contents($cache_cointrade); } else { $json_cointrade = file_get_contents($cache_cointrade); } } $data_coin_trade = json_decode($json_cointrade, true); $cointrade_price = $data_coin_trade['success']['last']; $cointrade_volume = $data_coin_trade['success']['vol24h']; $varcointrade = $cointrade_price * $cointrade_volume; Talvez o erro esteja aqui:
       
      $cointrade_price = $data_coin_trade['success']['last'];
      $cointrade_volume = $data_coin_trade['success']['vol24h'];
       
       
      Mas não tenho certeza porque não aparece 
    • By Lenon John
      Estou começando no PHP e preciso criar um simples sistema para emitir boletos na web com o SICOOB.
      OBS: Que quero me conectar a API SICOOB e não sei por onde começar.
       
      O SICOOB disponibiliza na página de developers.sicoob.com.br essas informações:
      GET https://sandbox.sicoob.com.br/oauth2/authorize?response_type=code&redirect_uri=[[callback_url]]&client_id=[[client_id]]&cooperativa=[[cooperativa]]&contaCorrente=[[conta]]&versaoHash=3&scope=[[escopos]]
      PARÂMETRO: response_type = Tipo de resposta gerada pelo fluxo authorize
      PARÂMETRO :redirect_uri = Endereço que será redirecionado após a autorização
      PARÂMETRO: client_id = Chave de acesso às APIs
       
      RESPOSTA:
      [[callback_url]/code=2eb7fd2c-aaf9-3655-bcf5-71972b50eb3d&state=0.3549351162541514

       
      Obtendo Access Token:
      POST https://sandbox.sicoob.com.br/token Headers Content-type: "www/form-url-encoded" Authorization: Basic [[token_basic]] Payload grant_type=authorization_code&code=2eb7fd2c-aaf9-3655-bcf5-71972b50eb3d&redirect_uri=[[callback_url]] E mais umas informações complementares aqui. Se alguém puder me ajudar, passo mais informações.
       
       
    • By ilbett
      Boa noite prezados.
       
      Estou com um problema há alguns dias. Espero que um de vocês tenha uma luz para ele haha.
       
      Estou fazendo uma integração entre a loja de um cliente hospedada na NuvemShop e a automatizadora de marketing RD Station.
      Através do Postman eu faço um GET da NuvemShop e um POST dos dados pegos da NuvemShop para a RD Station.
      O Problema, nesse caso, é que eles nomeiam as strings de formas diferentes.
       
      Vocês conhecem algum intermediador que receba esse POST com os dados da NuvemShop e traduza, por exemplo, "costumer.name" para "name" e envie para a RD?
      Ou algum script que eu possa rodar no Postman para fazer essas "traduções" das strings?
       
      Desde já, muito obrigado!
    • By ZioNN
      Estou tentando implementar lazy loading em um mapa do Google Maps que temos na home-page do site do cliente. É um iframe padrão do Maps no formato
       
      <iframe  src="https://www.google.com/maps/d/u/1/embed?mid=1qBlmrpdrcg46Esp-C88T1AMseNdz9k" width="100%" height="530"></iframe>
      Já tentei 3 plug-ins que encontrei em pesquisas na net, e nenhum deles funcionou. 

      O mapa é o item que mais pesa no carregamento inicial da home-page e está nos custando muito tempo e peso de loading.

      Foram:

      Lazyframe master
      Lazy Maps
      Jquery Lazy Master

      Qual a melhor solução para este caso, sem remover o mapa? 

      Obrigado
    • By PAULO FRÓES
      Opa, pessoal!
       
      Alguém conhece alguma API que calcula ICMS-ST, IPI e ICMS normais, sobre alguma transação, sem ser um emissor de NF-e?
      Seria útil para estimarmos custos em uma compra de mercadorias, ou, no caso de venda, para o cliente saber as incidências na fonte sobre determinada venda (muito comum em indústrias - IPI e ST).
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.