Skip to content

Exibir no mapa pontos adicionais referentes às denúncias de aglomeração #234

@manoelcampos

Description

@manoelcampos

Atualmente a função getMarkersRecentes() do componente Mapa obtém a lista dos dispositivos ativos nos últimos 5 minutos. Em tal função, é preciso fazer um get no novo endpoint /notificacao (acesse http://servidor/api-docs/ para mais detalhes) para obter as notificações recentes.

Tal endpoint retorna um vetor de objetos como abaixo:

[
   { "latitude": 90.00000, "longitude": 180.00000, "estimativa_media_pessoas": 54 }, 
   { "latitude": 92.00000, "longitude": 150.00000, "estimativa_media_pessoas": 42 }
]

Cada objeto no vetor fornece a média de pessoas entre as várias notificações recentes em um local.
O app deve obter tal vetor e percorrê-lo. Para cada objeto do vetor, deve-se criar um total de markers igual ao valor do atributo estimativa_media_pessoas. Se existirem 10 notificações recentes para um local, o valor 54 do primeiro item significa que em média, os usuários notificaram que existem 54 pessoas aglomerando no local indicado.

Desta forma, no exemplo acima, para o 1º item do vetor, devem ser criados 54 markers. Para o 2º item, 42 markers.
Em cada item, para que os markers não apareçam no mapa no mesmo exato local, deve-se adicionar um valor aleatório à latitude e longitude usando Math.random() * 0.0000099. Isto vai adicionar um valor aleatório nas duas últimas casas decimais da latitude e longitude.

Detalhes

Você deve apenas alterar a função getMarkersRecentes() para, além de chamar getLocalizacoesRecentes()
e exibir os markers para o retorno desta última função, chamar uma função a ser criada e exibir markers adicionais conforme descrito acima.

Esta função a ser criada vai acessar o novo endpoint /notificacao por meio de GET (sem parâmetros).

Issues Relacionadas

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions