-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementar endpoint de frequência média de pessoas por hora em uma área visível do mapa (zoom / viewport) #43
Comments
Closed
manoelcampos
changed the title
Implementar endpoints REST para estatísticas de localização
Implementar endpoint de tempo médio de permanência das pessoas por local
Jun 23, 2020
This was referenced Jun 23, 2020
Closed
manoelcampos
changed the title
Implementar endpoint de tempo médio de permanência das pessoas por local
Implementar endpoint de tempo médio de permanência das pessoas por área visível do mapa (zoom / viewport)
Jun 25, 2020
manoelcampos
changed the title
Implementar endpoint de tempo médio de permanência das pessoas por área visível do mapa (zoom / viewport)
Implementar endpoint de tempo médio de permanência das pessoas no raio de uma área visível do mapa (zoom / viewport)
Jun 25, 2020
manoelcampos
changed the title
Implementar endpoint de tempo médio de permanência das pessoas no raio de uma área visível do mapa (zoom / viewport)
Implementar endpoint de tempo médio de permanência das pessoas em uma área visível do mapa (zoom / viewport)
Jun 25, 2020
manoelcampos
changed the title
Implementar endpoint de tempo médio de permanência das pessoas em uma área visível do mapa (zoom / viewport)
Implementar endpoint de média de pessoas em uma área visível do mapa (zoom / viewport)
Jun 25, 2020
manoelcampos
changed the title
Implementar endpoint de média de pessoas em uma área visível do mapa (zoom / viewport)
Implementar endpoint de frequência média de pessoas em uma área visível do mapa (zoom / viewport)
Jun 25, 2020
manoelcampos
assigned manoelcampos and silvioantonio and unassigned silvioantonio and manoelcampos
Jun 25, 2020
Closed
Closed
Merged
Merged
manoelcampos
added a commit
that referenced
this issue
Jul 8, 2020
manoelcampos
changed the title
Implementar endpoint de frequência média de pessoas em uma área visível do mapa (zoom / viewport)
Implementar endpoint de frequência média de pessoas por hora em uma área visível do mapa (zoom / viewport)
Jul 9, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
O sistema não saberá qual o nome do local selecionado pelo usuário, mas o usuário como usará o mapa para encontrar o lugar desejado (clicando ou digitando o nome do lugar), ele sabe a que local se refere.
Ele pode controlar o zoom para definir a área visível do mapa. A partir daí podemos obter o viewport, que é um retângulo para a área visivel. Desta forma, conseguimos filtrar os pontos que estejam dentro deste retângulo e computar estatísticas.
O viewport representa dois pontos de um retângulo: o ponto superior esquerdo e o ponto inferior direito. Com estes pontos podemos facilmente filtrar os dados no select que estejam dentro de tal área. Para as cada estatística será uma consulta diferente, agrupando os dados por hora, dia, semana ou mês.
No app/frontend usuário terá então algumas possibilidades (isto deve ser outra issue):
No app/frontend, tais informações podem aparecer no Marker onde o usuário clicou/selecionou (que será implementado em issue específica).
Detalhes de implementação
Cada endereço tem um ID único no Google Maps chamado Place ID.
Este ID pode ser salvo no banco para uso posterior, sem infringir as políticas de uso do serviço.
Como o servidor irá receber um único ponto, ele fará uma única requisição à API de reverse geocoding para obter o Place ID.
Mas como a Places API aparentemente só aceita o nome do endereço, deve ser usada a API de reverse geocoding do Maps para, a partir de um ponto, descobrir qual o endereço/nome do local.
Um exemplo de uso da Places API está disponível aqui (lá tem outro link para o código fonte do exemplo, abaixo do mapa).
Depois de termos o Place ID, podemos obter os detalhes do local.
A resposta será um objeto
PlaceResult
. Na requisição devemos indicar quais detalhes queremos obter.Um dos detalhes indicados no link acima é o atributo geometry.
Tal atributo é um objeto contendo o campo
viewport
que representa um retângulo delimitando a área visiível no mapa. No link anterior, tem outro link para a documentação deste atributo que mostra isso.Se o viewport for muito grande, é preciso pedir que o usuário selecione uma área mais específica aumentando o zoom.
AVISO
Observar que o atributo
geometry
deviewport
é opcional, então teremos problema se ele não existir.Issues Relacionadas
The text was updated successfully, but these errors were encountered: