Mapa brasileiro de qualidade do ar

 

Desde a versão 2.0 do aplicativo Post Fumaça Preta, disponibilizada para iOS, passamos a informar a qualidade do ar a partir da localização do usuário. Além de ter acesso às informações oriundas da estação de monitoramento mais próxima, o usuário passou a poder visualizar o mapa que apresenta toda a rede de monitoramento. Cada estação posicionada no mapa informando: a data e a hora de publicação dos dados, a classificação e o índice da qualidade do ar, o poluente determinante no cálculo do índice, e ainda a evolução do IQA através de um gráfico histórico.

Para que isso fosse possível, muitas linhas de código e uma técnica particular, chamada web scraping. Com ela, foi possível extrair de forma automatizada e constante as informações de qualidade do ar publicadas nos sites dos diversos órgãos ambientais brasileiros que possuem rede de monitoramento (para realizar essa extração, utilizamos o Jsoup), e centralizá-las numa base de dados estruturada. Criamos então algo ainda inexistente no momento, o mapa brasileiro de qualidade do ar!

Como nem tudo são flores, algumas dificuldades são encontradas para manter o mapa atualizado, como aumentar a abrangência à medida que mais órgãos passam a publicar os dados, se adaptar a novos formatos adotados pelos órgãos nos seus sites, e conhecer a localização das estações de monitoramento. E apesar dos órgãos se basearem nos padrões definidos pelo Ministério do Meio Ambiente, podem possuir tabelas de classificação e nomenclaturas diferentes, que o mapa precisa seguir à risca.

Hoje são 7 os órgãos ambientais cujos dados publicados de qualidade do ar são obtidos: CETESB (Companhia Ambiental do Estado de São Paulo), FEAM (Fundação Estadual do Meio Ambiente – MG), IAP (Instituto Ambiental do Paraná), IEMA (Instituto Estadual de Meio Ambiente e Recursos Hídricos – ES), INEA (Instituto Estadual do Ambiente – RJ), INEMA (Instituto do Meio Ambiente e Recursos Hídricos – BA) e SMAC (Secretaria Municipal de Meio Ambiente – Rio de Janeiro). Nos avise se souberem de mais órgãos!

O módulo de qualidade do ar faz parte atualmente do Post Denúncia, mas dada sua relevância, queremos separá-lo. É nosso desejo usá-lo como base para a construção de uma plataforma aberta voltada especificamente para a qualidade do ar. O Post Fumaça Preta passaria então a ser cliente dessa nova plataforma, que disponibilizaria uma API para uso não somente por aplicativos, mas por sites e pessoas em geral. Esperamos que curtam a ideia e se engajem no projeto!

Google Maps Geocoding API

 

A plataforma do Post Denúncia usa a Google Maps Geocoding API para identificar a localização do denunciante. Quando as coordenadas (latitude e longitude) são recebidas, são submetidas à API. Ela então retorna várias informações, dentre elas o endereço, o bairro, a cidade e o estado onde o problema urbano foi reportado. Desta forma, a denúncia pode seguir para o órgão com toda a informação necessária para seu tratamento.

Para se comunicar com a API, foi desenvolvido um módulo cliente, apesar da própria equipe do Google Maps disponibilizar no GitHub uma implementação cliente em Java, aqui. Não tínhamos necessidade de algo complexo, enquanto a solução oficial contemplava não apenas a Geocoding API, mas outras APIs do Google Maps também. Construímos então uma biblioteca Java simples, que no momento deste post está na versão 1.2, e que pode ser obtida no GitHub da mesma forma, aqui.

No projeto google-geocode são duas as principais classes: GoogleGeocode e GeocodeResponse. A classe GoogleGeocode faz a comunicação com a Google Maps Geocoding API propriamente dita, passando como parâmetro as coordenadas geográficas ou um endereço específico, e convertendo a resposta em formato JSON para um objeto da classe GeocodeResponse (para realizar essa conversão, utilizamos o Jackson). Com a classe GeocodeResponse é possível conhecer o status da resposta e percorrer a lista com os resultados fornecidos pela API.

Como o Post Denúncia se restringe ao território brasileiro, as classes foram estendidas em BrazilGoogleGeocode e BrazilGeocodeResponse. Elas podem ser visualizadas aqui. Deste modo, pôde-se definir PT_br como idioma para o retorno dos resultados, e também implementar métodos específicos que retornassem adequadamente o nome do bairro e da cidade.

Tenha em mente que, ao usar o serviço de geolocalização do Google, você está criando uma dependência para sua aplicação, e precisa gerenciar isso. A Google garante disponibilidade para quem estiver em conformidade com os Termos de Serviço, que requer dentre outras coisas que sua aplicação seja pública e gratuita.

A Google define também limites de utilização. Os usuários da API padrão, não paga (nosso caso), podem fazer até 2.500 requisições por dia, e no máximo 10 solicitações por segundo. Isso é controlado através da chave da aplicação, que é passada como parâmetro na requisição. Apesar de ser uma recomendação da Google, na solução que demos não passamos a chave. O controle, nesse caso, é feito a partir do IP de onde as requisições estão sendo feitas. Se você for usar a nossa biblioteca google-geocode, tenha consciência disso. Caso queira colaborar com o projeto e implementar esta melhoria, basta fazer um pull request no repositório do Github.

Se não desejar o código do google-geocode, mas quiser usá-lo no seu projeto Maven, basta adicionar no pom.xml:

    <repositories>
        <repository>
            <id>esign-repo</id>
            <name>Esign Maven Repository</name>
            <url>http://maven.esign.com.br</url>
        </repository>
    </repositories>

É necessário informar o repositório da Esign, para que o Maven saiba de onde baixar a dependência:

    <dependencies>
        <dependency>
            <groupId>br.com.esign</groupId>
            <artifactId>google-geocode</artifactId>
            <version>1.2.0</version>
        </dependency>
    </dependencies>

Fique à vontade para usar! 🙂

3 anos de Post Denúncia

Há 3 anos nasceu o Post Denúncia, serviço da Esign para cidadãos denunciarem problemas urbanos aos órgãos competentes, através de aplicativos para smartphones. Com o propósito de promover a cidadania e a qualidade de vida, foi criada uma plataforma capaz de receber os problemas reportados e encaminhá-los aos órgãos públicos responsáveis por tratá-los. Nosso objetivo foi empoderar as pessoas, disponibilizando uma ferramenta que as tornassem agentes da mudança, e ajudar o poder público, indicando onde se faz necessária sua atuação.

O projeto então lançou o aplicativo Post Fumaça Preta, que permite a denúncia de veículos que poluem o ar, emitindo fumaça irregularmente. Ele está disponível na Apple Store e no Google Play. A partir da versão 2.0, passou a informar a qualidade do ar obtida da rede de monitoramento mantida por órgãos públicos ligados ao meio ambiente. No estado de São Paulo, as denúncias feitas pelo aplicativo são enviadas para a CETESB, que é o órgão responsável também pela divulgação das informações de qualidade do ar obtidas das suas diversas estações de monitoramento.

Embora tenhamos orgulho do projeto, e vários motivos de satisfação como a indicação para o Prêmio Cidadão Sustentável, encontramos muitas dificuldades em mantê-lo. Apesar dos esforços, não conseguimos torná-lo rentável, e não foi possível lançar os demais aplicativos para denunciar outros tipos de problemas urbanos. De toda forma, não desistimos do nosso sonho, e por isso estamos abrindo o código fonte da plataforma, na esperança de mais desenvolvedores colaborarem. O código está disponível no Github, e contamos com você que acredita que o Post Denúncia pode fazer a diferença 🙂

Post Denúncia nas redes sociais:       

Editado em 24/02/2017: Infelizmente o Post Denúncia foi encerrado. Mais informações em Fim do Post Denúncia.