Closed vaniaon closed 5 years ago
Can this be a django app running with serializers? The API will receive CRUD and store on database, the data will be displayed as json that will be consumed by the front-end.
I've sent a PR withe the project, hope it helps.
Gotta work to do in it like change the database used (actually using SQLite but not recommended), and find a server to host it.
Later after my work i'll refine this, and sure all hel is needed to develop it.
Just saw your comment and updated the project readme. As I said there, the first in the project can choose the language and technology :)
PR #43
O projeto está em https://github.com/dieegom/brumadinho_location/tree/develop/geolocations_service/service na branch develop
As a suggestion, I propose adding optional fields for date, radius (i.e. 30m around marker point) and observations (Something like: This place needs to be revisited with special equipment).
The radius would allow a circumference to be drawn on the map and give a better perspective one the area covered.
@brunolcarli Tudo certo cara? tou com tua aplicação rodando aqui, eu so nao entendi o intuito dos 2 endpoints, no /geolocations/ ele cadastra os locais por Lat e Long via POST e via GET ele mostra os locais que ja foram visitados em Lat e Long, beleza.
Mas nao entendi porque no /visited_locations/ eu posso escolher uma Lat e uma Long cadastra no /geolocations/ e dar um nome a ela se no /visited_locations/ quando a gente pega a lista completa via GET eu nao tenho acesso ao nome que eu dei a sua respectiva Lat e Long, qual o intuito desse endpoint?
@JBezerra criei o endpoint /api/geolocations/
para poder cadastrar, listar e recuperar todas as localizações de que tenhamos certeza que pertence a zona afetada.
No endpoint /api/visited_locations/
poderá cadastrar e uma região específica baseada em sua localização, e identificá-la por uma referencia. Na última atualização que estou a trabalhar agora este endpoint receberá mais um campo para data de investigação desta localização e número de pessoas encontradas nesta localização.
Adicionarei também um endpoint /api/found_people/
para cadastrar e recuperar informações de pessoas encontradas, incluindo nome, localização, gênero e condição de saúde.
@brunocroh Fala Bruno! tudo certo? tou fazendo um front com seu back em que pego os seus dados do /api/geolocations/
e ploto no mapa de calor pra saber onde eles ja foram ou nao, preciso o mais rapido que voce puder que voce mude o retorno pelo menos desse endpoint para um retorno GeoJSON, é bem simples, ao inves de voce retornar um JSON normal voce retorna um JSON nesse formato aqui:
{
"type": "FeatureCollection",
"features": [
{
"geometry": {
"type": "Point",
"coordinates": [-44.1264581,-20.1255982] // Long e Lat
},
"type": "Feature",
"properties": {}
},
{
"geometry": {
"type": "Point",
"coordinates": [-43.1264581,-20.1195982] // Long e Lat
},
"type": "Feature",
"properties": {}
}]
}
Pra cada long e lat voce so precis retornar um objeto geometry desse dentro da lista "features", seria possivel?
@JBezerra vou fazer!
Ok to meio perdido aqui tentando fazer funcionar nesse padrão.
Ajustei todos os paranauês pra rodar com posgresql e tenho a tela do enpoint sem dados assim:
Mas não sei como inserir dados aqui, todas as formas que tento ele da um erro diferente:
# Models
class Geolocation(models.Model):
coordinates = gis_models.PointField()
# serializers
class GeolocationSerializer(gis_serializer.GeoFeatureModelSerializer):
class Meta:
model = Geolocation
fields = "__all__"
geo_field = "coordinates"
# views
class GeolocationViewSet(viewsets.ModelViewSet):
queryset = Geolocation.objects.all()
serializer_class = GeolocationSerializer
I never have used this before, what am i missing? what have a done wrong?
Someone could help?
@brunolcarli tu tem como fazer diferente, acompanha: 1 - Salva os Dados como tu tava salvando antes, certo? lat e long tudo certinho 2- Na hora de MOSTRAR tu cria um grande objeto
{
"type": "FeatureCollection",
"features": []
}
3 - Cria um array, vamo chamar ele de features, e vai colocando esses objetos:
{
"geometry": {
"type": "Point",
"coordinates": [Long,Lat]
},
"type": "Feature",
"properties": {}
}
4 - Adiciona no teu array 5 - "Features": features 6 - retorna tudo pra pagina
Nao é como se tu precisasse mudar o banco, mas talvez mais simples é so trocar como ele lida com o dado
desta forma está correto @JBezerra ?
@brunolcarli perfeito!!!! valeu monstro, so da push que eu ja modifico o meu aqui pra pegar da API
Vou dar push aqui pra que vc possa dar continuidade no seu trabalho, ams tenho que corrigir várias coisas ainda, a começar pelo campo de input deste endpoint.
ele está esperando:
{
"latitude": Float,
"longitude": Float,
"coordinates": null
}
Deixei o coordinates como opcional pois ele NAO DEVE ser preenchido, se preencher ele de forma que não receba um objeto Point() definido pelo django.contrib.gis.geos
vai retornar um erro. Então não forneça nada ou forneça null
para este campo e preencha somente latitude
e longitude
pelo menos até eu achar uma forma de consertar isso.
:D
Ah e tive um trabalhinho pra ajustar as novas configs, me avise aqui se tiver problemas pra configurar o serviço, agora está rodando com postgis
@brunolcarli da uma olhadinha nesse erro, nao roda nenhum comando
@JBezerra como sugerido pelo @cacarrara as settings devem ser criadas em um arquivo .env
na raiz desta aplicação, padronizando com o projeto em /core
deste repositório.
para lhe adiantar tempo eis aqui o arquivo modo como eu usei:
DEBUG=TRUE
SECRET_KEY=&@9mr668o!*p1=jk$=#i+l5z4*qg)s1_ey!+i*o@&%!t#c+ra2
ALLOWED_HOSTS=*
DB_NAME=geoservice
DB_USER=lem4fia
DB_PASSWORD=root
DB_HOST=localhost
DB_PORT=5432
provavelmente vc vai precisar modificar o valor das variáveis DB para coincidir com as configurações rodando em sua máquina.
crie um arquivo chamado .env
contendo estas configurações e coloque-o na raiz do serviço:
isso deve funcionar
@brunolcarli me da teu contato pessoal pra agt conseguir se comunicar com mais facilidade, eu consegui aqui instalar o postgre na minha maquina mas estou tendo outros erros, por exemplo da uma olhadinha aqui
isso acontece eu creio porque eu nao rodei o migrate, mas quando eu tento rodar da isso
ai eu tou meio perdido pq nunca fiz nada com Django
@JBezerra meu whats: 41 99828-7053
Create a service that receives geolocations info as parameter and stores it in a data repository. This service also needs to provide a list of all locations already visited.
Related #40