NAME

Geo::CEP - Resolve Brazilian city data for a given CEP

VERSION

version 1.0

SYNOPSIS

    use common::sense;
    use utf8::all;

    use Data::Printer;

    # 'memoize' é extremamente vantajoso em casos aonde a mesma
    # instância é utilizada para resolver lotes grandes de CEPs
    use Geo::CEP qw(memoize);

    my $gc = Geo::CEP->new;
    p $gc->find("12420-010");

    # Saída:
    # \ {
    #     cep_final    12449999
    #     cep_initial  12400000
    #     city         "Pindamonhangaba",
    #     ddd          12,
    #     lat          -22.9166667,
    #     lon          -45.4666667,
    #     state        "SP",
    #     state_long   "São Paulo"
    # }

DESCRIPTION

Obtém os dados como: nome da cidade, do estado, número DDD e latitude/longitude (da cidade) para um número CEP (Código de Endereçamento Postal) brasileiro.

Diferentemente do WWW::Correios::CEP, consulta os dados armazenados localmente. Por um lado, isso faz Geo::CEP ser extremamente rápido (5 mil consultas por segundo); por outro, somente as informações à nível de cidade são retornadas.

ATTRIBUTES

data, index

FileHandle para os respectivos arquivos.

length

Tamanho do índice.

states

Mapeamento de código de estado para o nome do estado (AC => 'Acre').

idx_len

Tamanho do registro de índice.

METHODS

find($cep)

Busca por $cep (no formato 12345678 ou "12345-678") e retorna HashRef com:

  • cep_initial: o início da faixa de CEPs da cidade;

  • cep_final: o término da faixa de CEP da cidade;

  • state: sigla da Unidade Federativa (SP, RJ, MG);

  • state_long: nome da Unidade Federativa (São Paulo, Rio de Janeiro, Minas Gerais);

  • city: nome da cidade;

  • ddd: código DDD (pode estar vazio);

  • lat/lon: coordenadas geográficas da cidade (podem estar vazias).

Retorna undef quando não foi possível encontrar.

list()

Retorna HashRef com os dados de todas as cidades.

SEE ALSO

CONTRIBUTORS

AUTHOR

Stanislaw Pusep <stas@sysd.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Stanislaw Pusep.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.