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

Pablo Câmara pscamara em gmail.com
Quinta Setembro 10 10:21:06 BRT 2009


Gustavo
Valeu pela indicação do site:  http://www.teleco.com.br/tarif_alocal.asp

No site da Anatel não existe tal informação. Mas esses são os municípios que
preciso avaliar!

BASALVADORCAMACARI, CANDEIAS, DIAS D'AVILA, ITAPARICA, LAURO DE FREITAS,
MADRE DE DEUS, SALVADOR, SIMOES FILHO e VERA CRUZ

PBJOAOPESSOABAYEUX, CABEDELO, JOAO PESSOA e SANTA RITA


SPSÃOPAULO ARUJA, BARUERI, BIRITIBA-MIRIM, CAIEIRAS, CAJAMAR, CARAPICUIBA,
COTIA, DIADEMA, EMBU, EMBU-GUACU, FERRAZ DE VASCONCELOS, FRANCISCO MORATO,
FRANCO DA ROCHA, GUARAREMA, GUARULHOS, ITAPECERICA DA SERRA, ITAPEVI,
ITAQUAQUECETUBA, JANDIRA, JUQUITIBA, MAIRIPORA, MAUA, MOJI DAS CRUZES,
OSASCO, PIRAPORA DO BOM JESUS, POA, RIBEIRAO PIRES, RIO GRANDE DA SERRA,
SALESOPOLIS, SANTA ISABEL, SANTANA DE PARNAIBA, SANTO ANDRE, SAO BERNARDO DO
CAMPO, SAO CAETANO DO SUL, SAO LOURENCO DA SERRA, SAO PAULO, SUZANO, TABOAO
DA SERRA e VARGEM GRANDE PAULISTA


Pablo


2009/9/10 Ciro A. Toscano <ciro em sntbsb.com.br>

>  Julio, estou no DF e ligo para uma cidade do GO que fica a mais de 40km
> de distância e não digitamos o Código de Área nem pra fixo e nem pra
> celular. Portanto o que vc afirmou não é regra.
>
>
>
> Ciro
>
>
>
> -----Mensagem original-----
> *De:* asteriskbrasil-bounces em listas.asteriskbrasil.org [mailto:
> asteriskbrasil-bounces em listas.asteriskbrasil.org] *Em nome de *JP Telecom-
> Julio
> *Enviada em:* quinta-feira, 10 de setembro de 2009 09:13
> *Para:* asteriskbrasil em listas.asteriskbrasil.org
> *Assunto:* Re: [AsteriskBrasil]Calcula distâncias entre cidades utilizando
> latitude e longitude. MYSQL - ASTERISK 1.6
>
>
>
> 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/50641faa/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil