[AsteriskBrasil] Calcula distâncias entre cidades utilizando latitude e longitude. MYSQL - ASTERISK 1.6

Pablo Câmara pscamara em gmail.com
Quinta Setembro 10 09:31:50 BRT 2009


Olá Julio,
Aqui em Salvador a regra dos 50 km e diferencias entre cidades também não se
aplica em alguns casos.
E por exemplo: Salvador / Lauro de Freitas / Camaçari
Todas tem o mesmo código de área (71), distancias maior que 50 km entre elas
, são cidades diferentes e não precisam do código de área para realizar uma
ligação.

Pablo


2009/9/10 JP Telecom- Julio <juliojptelecom em gmail.com>

>  Pablo,
>
> O uso de DDD não é só apenas qdo ultrapassar 50KM, pode ser mesmo sendo bem
> menos, essa regra não existe mais ( é uma regra antiga), agora a regra é se
> for cidade diferente mesmo tendo o mesmo DDD tem que discar o Código de área
> ( isso para telefones fixo) e para celular sendo o mesmo DDD não precisa de
> código de área.
>
>
> ----- Original Message -----
> *From:* Pablo Câmara <pscamara em gmail.com>
> *To:* asteriskbrasil em listas.asteriskbrasil.org
> *Sent:* Thursday, September 10, 2009 8:56 AM
> *Subject:* [AsteriskBrasil] Calcula distâncias entre cidades utilizando
> latitude e longitude. MYSQL - ASTERISK 1.6
>
> Olá pessoal...
>
> Quando devo utilizar o código de area dentro de um mesmo estado? Não sei se
> a informação procede, mas quando a distancia ultrapassa 50 km, o uso do
> código da area é obrigatório.
>
> Logo resolvi apelar. Calcular as distancias utilizando latitude e longitude
> utilizando os dados da Tabela cnlfixo da anatel.
> E uma tabela de preferencias (filiais) que tem as informações da filial.
>
> Porem não tenho certeza se esses cálculos estão corretos.
>
> Passo como paramento o número discado. ('11', '9999' '9999')
>
>
> DELIMITER $$
>
> DROP FUNCTION IF EXISTS `asterisk`.`fn_calculaDistancia` $$
> CREATE DEFINER=`root`@`%` FUNCTION `fn_calculaDistancia`(varDDD varchar(2),
> varFaixa1 varchar(6), varFaixa2 varchar(4)) RETURNS varchar(10) CHARSET
> latin1
> BEGIN
>
> declare radiano float default 0;
> declare unidade float default 0;
> declare area varchar(2) default 0;
> declare latitude_1 float default 0;
> declare longitude_1 float default 0;
> declare latitude_2 float default 0;
> declare longitude_2 float default 0;
> declare distancia float default 50;
>
>   set radiano = 180/PI();
>   set unidade = 60 * 1.1515 * 1.609344;
>
>   select substr(prefixo,1,2), substr(latitude,1,4)/100,
> substr(longitude,1,4)/100
>   into area, latitude_1, longitude_1
>   from asterisk.preferencias
>   where principal = 1;
>
>   if (area = varDDD) then
>    select substr(latitude,1,4)/100, substr(longitude,1,4)/100
>    into latitude_2, longitude_2
>    from asterisk.cnlfixo
>    where prefixo = concat(varDDD,varFaixa1)
>    and   varFaixa2 between faixainicial and faixafinal;
>
>    set distancia = ((ACOS(SIN(latitude_1/radiano) * SIN(latitude_2/radiano)
> +
>         COS(latitude_1/radiano) * COS(latitude_2/radiano) *
>         COS(longitude_2/radiano - longitude_1/radiano))) * unidade);
>
>    end if;
>
>    if (distancia >= 50) then
>       return 0; -- usa ddd
>    else
>       return 1; -- remove ddd
>    end if;
>
>
> END $$
>
> DELIMITER ;
>
> Porem meus resultados não estao muito confiáveis.
> Alguem consegue ver algum problema nessa procedure?
>
>  ------------------------------
>
>
> _______________________________________________
> Participe do IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
> VoIP, Asterisk e Convergência de Redes.
> http://www.encontrovoipcenter.com.br
>
> Compre uma camiseta da AsteriskBrasil.org!
> http://www.voipmania.com.br
>
> Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na
> rede Freenode.net: #asterisk-br
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
>
>
> _______________________________________________
> Participe do IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
> VoIP, Asterisk e Convergência de Redes.
> http://www.encontrovoipcenter.com.br
>
> Compre uma camiseta da AsteriskBrasil.org!
> http://www.voipmania.com.br
>
> Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na
> rede Freenode.net: #asterisk-br
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090910/11a58e1a/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil