<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16825" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Pablo,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=pscamara@gmail.com href="mailto:pscamara@gmail.com">Pablo Câmara</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=asteriskbrasil@listas.asteriskbrasil.org
href="mailto:asteriskbrasil@listas.asteriskbrasil.org">asteriskbrasil@listas.asteriskbrasil.org</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Thursday, September 10, 2009 8:56
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> [AsteriskBrasil] Calcula
distâncias entre cidades utilizando latitude e longitude. MYSQL - ASTERISK
1.6</DIV>
<DIV><BR></DIV>
<DIV>Olá pessoal...</DIV>
<DIV><BR></DIV>
<DIV>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.</DIV>
<DIV><BR></DIV>
<DIV>Logo resolvi apelar. Calcular as distancias utilizando latitude e
longitude utilizando os dados da Tabela cnlfixo da anatel.</DIV>
<DIV>E uma tabela de preferencias (filiais) que tem as informações da
filial.</DIV>
<DIV><BR></DIV>
<DIV>Porem não tenho certeza se esses cálculos estão corretos.</DIV>
<DIV><BR></DIV>
<DIV>Passo como paramento o número discado. ('11', '9999'
'9999')</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>DELIMITER $$</DIV>
<DIV><BR></DIV>
<DIV>DROP FUNCTION IF EXISTS `asterisk`.`fn_calculaDistancia` $$</DIV>
<DIV>CREATE DEFINER=`root`@`%` FUNCTION `fn_calculaDistancia`(varDDD
varchar(2), varFaixa1 varchar(6), varFaixa2 varchar(4)) RETURNS varchar(10)
CHARSET latin1</DIV>
<DIV>BEGIN</DIV>
<DIV><BR></DIV>
<DIV>declare radiano float default 0;</DIV>
<DIV>declare unidade float default 0;</DIV>
<DIV>declare area varchar(2) default 0;</DIV>
<DIV>declare latitude_1 float default 0;</DIV>
<DIV>declare longitude_1 float default 0;</DIV>
<DIV>declare latitude_2 float default 0;</DIV>
<DIV>declare longitude_2 float default 0;</DIV>
<DIV>declare distancia float default 50;</DIV>
<DIV><BR></DIV>
<DIV> set radiano = 180/PI();</DIV>
<DIV> set unidade = 60 * 1.1515 * 1.609344;</DIV>
<DIV><BR></DIV>
<DIV> select substr(prefixo,1,2), substr(latitude,1,4)/100,
substr(longitude,1,4)/100</DIV>
<DIV> into area, latitude_1, longitude_1</DIV>
<DIV> from asterisk.preferencias</DIV>
<DIV> where principal = 1;</DIV>
<DIV><BR></DIV>
<DIV> if (area = varDDD) then</DIV>
<DIV> select substr(latitude,1,4)/100,
substr(longitude,1,4)/100</DIV>
<DIV> into latitude_2, longitude_2</DIV>
<DIV> from asterisk.cnlfixo</DIV>
<DIV> where prefixo = concat(varDDD,varFaixa1)</DIV>
<DIV> and varFaixa2 between faixainicial and
faixafinal;</DIV>
<DIV><BR></DIV>
<DIV> set distancia = ((ACOS(SIN(latitude_1/radiano) *
SIN(latitude_2/radiano) +</DIV>
<DIV> COS(latitude_1/radiano) *
COS(latitude_2/radiano) *</DIV>
<DIV> COS(longitude_2/radiano -
longitude_1/radiano))) * unidade);</DIV>
<DIV><BR></DIV>
<DIV> end if;</DIV>
<DIV><BR></DIV>
<DIV> if (distancia >= 50) then</DIV>
<DIV> return 0; -- usa ddd</DIV>
<DIV> else</DIV>
<DIV> return 1; -- remove ddd</DIV>
<DIV> end if;</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>END $$</DIV>
<DIV><BR></DIV>
<DIV>DELIMITER ;</DIV>
<DIV><BR></DIV>
<DIV>Porem meus resultados não estao muito confiáveis. </DIV>
<DIV>Alguem consegue ver algum problema nessa procedure?</DIV>
<DIV><BR></DIV>
<P>
<HR>
<P></P><BR>_______________________________________________<BR>Participe do IV
Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.<BR>VoIP, Asterisk e
Convergência de Redes.<BR>http://www.encontrovoipcenter.com.br<BR><BR>Compre
uma camiseta da
AsteriskBrasil.org!<BR>http://www.voipmania.com.br<BR><BR>Acesse o canal IRC
de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net:
#asterisk-br<BR>_______________________________________________<BR>Lista de
discussões
AsteriskBrasil.org<BR>AsteriskBrasil@listas.asteriskbrasil.org<BR>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</BLOCKQUOTE></BODY></HTML>