stan++ On Mar 19, 2012 11:23 AM, "Stanislaw Pusep" <[email protected]> wrote:
> Uma fórmula de cálculo de distância entre latitudes/longitudes que tem > precisão razoável e baixo custo computacional é "Spherical Law of Cosines". > Aqui tem várias outras fórmulas, com prós, contras e implementações (em > JavaScript): http://www.movable-type.co.uk/scripts/latlong.html > Em Perl, os módulos Geo::Distance e Geo::Distance::XS implementam o > cálculo de distância. > A propósito, uma lista "oficial" (da Embratel) vinculando DDD aos nomes de > cidades é esta: > http://www.embratel.com.br/Embratel02/cda/portal/0,1446,RE_P_365,00.html > Por obséquio, cruzei essa lista com as coordenadas das cidades, para o meu > módulo Geo::CEP (DDD é a 5-a coluna): > > 01000000,05999999,SP,São Paulo,11,-23.5333333,-46.6166667 > 06000000,06299999,SP,Osasco,11,-23.5666667,-46.7833333 > 06300000,06399999,SP,Carapicuíba,11,-23.5166667,-46.8333333 > 06400000,06499999,SP,Barueri,11,-23.5166667,-46.8833333 > 06500000,06549999,SP,Santana de Parnaíba,11,-23.45,-46.9166667 > ... > 99965000,99965970,RS,Água Santa,54,-28.1666667,-52.0333333 > 99970000,99970970,RS,Ciríaco,54,-28.35,-51.8833333 > 99975000,99975970,RS,São João Bosco,54,, > 99980000,99980974,RS,David Canabarro,54,, > 99990000,99990999,RS,Muliterno,54,-28.3333333,-51.7666667 > > (arquivo completo em > http://api.metacpan.org/source/SYP/Geo-CEP-0.4/share/cep.csv) > > ABS() > > > > On Mon, Mar 19, 2012 at 10:06, Renato Santos <[email protected]>wrote: > >> Não existe em algum lugar publico a geoposição de cidades >> (talvez algum lugar do >> http://www.ibge.gov.br/home/disseminacao/online/catalogo2/digitaltema.php?tema=Organizacaoterrit&pagatual=inicio#sub_download >> que >> não consegui fazer funcionar) >> e depois, tentar antes do DDD relacionar a cidade com a cidade do usuário >> e depois (pra não depender do banco) fazer a conta: >> math.max(math.abs(s.x - c.x), math.abs(s.y - c.y)) >> >> onde c = {x => longitude, y=>latitude} da cidade e >> s = {x => longitude, y=>latitude} do cliente. >> >> Se quiser pode usar hipotenusa também, já que o calculo acima é pra jogos >> 2d. >> >> >> 2012/3/19 Leonardo Ruoso <[email protected]> >> >>> Em Seg, 2012-03-19 às 00:06 -0300, Thiago Rondon escreveu: >>> > Pessoal, >>> > >>> > O Lucas Mateus neste artigo esta compartilhando um cenário onde ele >>> > precisa realizar >>> > o calculo entre dois pontos baseado no DDD, em alguns cenários esta >>> > solução pode >>> > ser aplicada muito bem ! >>> > >>> > http://sao-paulo.pm.org/equinocio/2012/mar/19 >>> >>> Xi³ >>> >>> Vou atacar de muito chato agora! >>> >>> Exemplos fáceis para complementar os de SP que constam no artigo: >>> >>> - O DDD de Curitiba é 41, o de São Paulo é 11 e o de Belo Horizonte é >>> 31. Curitiba não é mais perto de Belo Horizonte do que de SP! >>> - O DDD de Fortaleza é 85, o do interior é 88, mas o de Teresina e do >>> Piauí quase todo é 86 e há cidades fora do Ceará com DDD 87 e 89! >>> >>> Para usar esse recurso seria necessário criar uma tabela auxiliar com a >>> delimitação geográfica de cada código DDD. Você teria também de mapear >>> os MCDU para as regiões menos populosas, mas eu tenho a impressão que o >>> esforço seria em vão, pois se em SP todos os MCDU do DDD 11 correspondem >>> à capital e em cidades do interior seja frequente que uma cidade inteira >>> disponha de um único MCDU —o roteamento tandem é (era?) feito pelo MCDU— >>> hoje isso mudou é válido apenas por acidente. >>> >>> Quem sempre morou em cidade grande (capitais populosas) pode lembretar >>> que antigamente as pessoas «adivinhavam» o bairro ou a região pelo MCDU, >>> mas com as centrais digitais o número do telefone (DDD e MCDU) do >>> assinante não correspondem mais necessariamente à central em que o >>> assinante está conectado. >>> >>> Era como se antigamente o número do telefone fosse o IP do assinante e >>> esse número tenha sido transformado num registro de DNS para um endereço >>> interno da rede de pacotes. >>> >>> Some-se a isso o fato de que em Fortaleza eu tinha um número com DDD 11 >>> e em SP eu tenho um número de Santos :-) >>> >>> Há também grande possibilidade de que uma cidade com um determinado DDD >>> esteja muito mais próxima de uma cidade grande com um outro DDD do que >>> da cidade «grande» que tem o mesmo DDD que ela. Isso vai acontecer o >>> tempo todo nas cidades próximas a fronteiras estatuais. >>> >>> > Abs! >>> > -Thiago Rondon >>> > =begin disclaimer >>> > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> > SaoPaulo-pm mailing list: [email protected] >>> > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> > =end disclaimer >>> >>> >>> -- >>> Leonardo Ruoso <[email protected]> >>> (11) 2368-2228 - (11) 3522-9612 >>> http://leonardo.ruoso.com >>> >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: [email protected] >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> =end disclaimer >>> >> >> >> >> -- >> Saravá, >> Renato CRON Santos >> http://www.renatocron.com/blog/ >> @renato_cron <http://twitter.com/#!/renato_cron> >> >> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
