Saturday, December 12, 2015

Pausa no Hardware - Usando a API do Google Maps para criar um Mapa de Calor: Qual escolher?

Fala Pessoal,

Agora que fiquei em paz com o Intel Edison e estou começando uma pequena briga com o Raspberry Pi, vou dar uma pausa no hardware e focar um pouco no desenvolvimento de aplicações.

Como falei no post anterior, estou ajudando o pessoal do Hacker Clube de SJC a criar uma aplicação chamada SmartCitzen, que terá como objetivo criar uma plataforma para que makers, escolas e afins possam enviar dados coletados por seus dispositivos e depois ter uma visão consolidada, rodar ferramentas de análise, etc.

Para isso estamos usando o ThingWorx, plataforma de IoT da PTC. Entre os vários motivos para usar a plataforma, eu trabalho na PTC e sou um entusiasta da tecnologia - curioso - como alguns dizem! Como não tenho background como programador, o ThingWorx é uma mão na roda para acelerar o desenvolvimento e abstrair várias necessidades que não conheço muito - desenvolver em HTML, segurança dos dados, persistir os dados, etc.

Em outro post falo mais sobre ThingWorx!


Hoje vai ser sobre outra surra: usar a API do Google Maps para criar um HeatMap ou mapa de calor (?) para o SmartCitzen. A ideia é consolidar os dados como feito aqui:

O ThingWorx já possui uma extensão para o Google Maps mas essa função não está disponível na extensão provida pela PTC.

USANDO AS APIs

As APIs do Google Maps  possuem ao menos 2 formas para criar um Mapa de Calor

  1. Fusion Tables - é um produto experimental do Google que facilita esse tipo de trabalho. A grande vantagem é o HeatMap ser rodado no servidor e não no cliente, portanto a performance para um alto volume de dados será melhor. Como desvantagem, o fato de que os dados tenham que estar em uma Fusion Table no Google, ou seja, os dados tem que sair da plataforma (sic) e alterá-los dinâmicamente é difícil.
  2. Função Heatmap Layer - mais flexível, porém tem cotas para utilização e cãlculo do layer no cliente.
Vejam uma tabela de comparação retirada da documentação:

Heatmap Layer
Fusion Table Layer
A large number of data points may result in reduced performance.
More data points will have little impact on performance.
Able to customize the appearance of the heatmap by changing such options as: the color gradient, the radius of data points, and the intensity of each data point.
No ability to customize the appearance of the heatmap.
Able to control whether heatmap data dissipates at higher zoom levels or not.
All heatmap data will dissipate as you zoom in.
Data can be stored with your HTML, stored on a server, or calculated on the fly. Data can be changed at runtime.
All data must be stored in a Fusion Table. Data cannot be easily changed at runtime.

Decidi escolher a segunda opção para evitar ter que colocar os dados na Fusion Table. Na verdade vou colocar as 2 opções na extensão, mas meu foco será na Função Heatmaps.

No próximo post irei descrever meu "Hello World" usando a função HeatMaps.







No comments:

Post a Comment