6 Replies Latest reply: Jun 23, 2016 8:59 AM by Clever Anjos RSS

    Calculo distância entre 2 Clientes levando em consideração data de inicio visita.

    marcio teixeira

      Bom dia Pessoal,

       

      Estou com uma situação em que preciso calcular a distância percorrida e a distância planejada entre Clientes, levando em consideração a data de início da visita, por essa data eu sei a ordem em que o Vendedor efetuou os atendimentos, efetuei alguns teste mas não estou conseguindo passar os dados de latitude e longitude do próximo cliente visitado, segue abaixo os dados:

       

      Select que estou fazendo no Banco para subir a carga:

       

      SELECT  R.[usuario]

            ,'CNPJ' CNPJ

            ,'CLIENTE' CLIENTE

            ,R.[dta_rota]

            ,DB.[dat_final]

            ,DB.[dat_inicio]

            ,DB.[vlr_longitude]

            ,DB.[vlr_latitude]

          ,Ceiling(Round((6371*ACOS(COS(PI()*(90(DB.[vlr_latitude]))/180)*COS((90(latitude proximo cliente visitado ?)*PI()/180)+

        SIN((90(DB.[vlr_latitude]))*PI()/180)*

        SIN((90(latitude proximo cliente visitado ?))*PI()/180)*COS(((DB.[vlr_longitude])(longitude proximo cliente visitado?))*PI()/180))) /10,2)) as Distância_planejada

        

        FROM [dbo].[ROTA] R

        inner join [dbo].[DB] DB

        on DB.[cod_cliente] = R.[cod_cliente]

          where R.[usuario] = '62152'

      and substring(R.[dta_rota],1,10) between substring(DB.[dat_inicio],1,10) and substring(DB.[dat_final],1,10)

      and R.[dta_rota] = '2014-12-15         '

       

      order by DB.[dat_inicio] asc

       

      Para o meu teste eu passei os dados manualmente, peguei a latitude e longitude do primeiro cliente visitado e do segundo assim tive o resultado que precisava, mas como vocês vão ver a abaixo, fica a mesma distância para todos, preciso de ajudar para passar os dados dinamicamente conforme a data de inicio, segue o resultado:

       

      CLIENTEdta_rotadat_finaldat_iniciovlr_longitudevlr_latitudeDistância_planejada
      CLIENTE2014-12-15        2014-12-15 08:43:222014-12-15 08:43:22-46,6023-23,45570 - Iniciou o dia aqui
      CLIENTE2014-12-15        2014-12-15 09:49:442014-12-15 09:49:44-46,6461-23,4945930 - cliente 2 - cliente 1
      CLIENTE2014-12-15        2014-12-15 10:47:462014-12-15 10:47:46-46,629-23,5101750 - cliente 3 -cliente 2
      CLIENTE2014-12-15        2014-12-15 11:17:312014-12-15 11:17:31-46,6584-23,5561200 - cliente 4 - cliente 3
      CLIENTE2014-12-15        2014-12-15 15:21:222014-12-15 15:21:22-46,6546-23,543350 - cliente 5 - cliente 4

       

      Espero que tenha ficado claro a minha dúvida.

       

      Muito Obrigado a todos.