cmdalbem / ciclomapa Goto Github PK
View Code? Open in Web Editor NEWBeautiful, interactive & open bike maps of Brazilian cities. Powered by OpenStreetMap.
Home Page: https://ciclomapa.org.br
License: GNU General Public License v3.0
Beautiful, interactive & open bike maps of Brazilian cities. Powered by OpenStreetMap.
Home Page: https://ciclomapa.org.br
License: GNU General Public License v3.0
Existem diferentes formas de se mapear travessias cicloviárias no OSM. Por exemplo:
Os elementos no iD "Travessia de bicicleta marcada", Travessia de bicicleta não marcada", ou "Travessia de pedestres com ciclovia", possuem as etiquetas "highway=cycleway" + "cycleway=crossing". Por causa da etiqueta principal "highway=cycleway", o CicloMapa classifica como ciclovia;
Os elementos no iD "Travessia de pedestres ..." (não marcada, elevada, etc), ou "Faixa de pedestres", ou "Faixa de pedestres elevada" possuem as etiquetas "highway=footway" + "footway=crossing". Se incluir nestes elementos a etiqueta "bicycle=designated" para mapear a travessia de bicicleta no mesmo elemento, o CicloMapa classifica como calçada compartilhada, por causa das etiquetas ""highway=footway" + "bicycle=designated".
A solução para este problema seria atualizar o filtro para ciclovias e calçadas compartilhadas, excluindo destas camadas as situações com "cycleway=crossing" ou "footway=crossing", e incluindo estas situações na camada de ciclofaixas.
Talvez precise explorar um pouco mais para ver se existem outras combinações que cairiam nesta mesma situação
Mostre à comunidade do OpenStreetMap quais dados você está usando. Adicione seu projeto à lista de Projetos Taginfo.
Show the OpenStreetMap community what data you are using. Add your project to the list of Taginfo Projects.
Mostrar um símbolo na tela que identifique se o mapeamento está completo/preciso ou não.
Perguntas em aberto: (dê sua opinião!)
O projeto já evoluiu bastante e o código já está bem complexo, acho que já está mais do que na hora de implementar testes!
Faz bastante tempo que não implemento testes em software no mercado, então agradeceria quem estiver um pouco mais inteirado das mais recentes melhores práticas e puder ajudar a nos aconselhar em como fazer isso :)
Ideia para trazer mais visibilidade aos dados de cada cidade e facilitar o trabalho de jornalistas etc. que não precisarão calcular na mão essa métrica.
Aqui estão algumas ideias de libs que fazem cálculos geométricos com GeoJSON:
Sometimes we develop new features that we find that might interest most users but it might not call too much attention on the UI for recurrent users.
We'd like also to have some control to show these tooltips only once, and probably only for users who had accessed CicloMapa already before.
Some references of libraries to try:
Opa Cristiano, primeiramente parabéns pelo trabalho!
Uma coisinha que acho que é erro (não aparece no CicloMapa): referente às ciclorrotas, há a etiqueta cycleway:both=shared_lane (e suas variantes: cycleway:left=shared_lane e cycleway:right=shared_lane) para expressar o lado permitido do ciclismo.
E pelo que entendi da Wiki (e passando uma query no Overpass), usando essa etiqueta não é necessário (talvez nem permitido?) usar cycleway=shared_lane.
Imagino que seja só questão de adicionar aqueles 3 primeiros casos nos filtros?
Exemplo de via que não aparece no Ciclomapa.
(ou talvez eu tenha etiquetado errado hehe)
Outros POIs (Points of Interest) que podem fazer sentido pra nós:
o que mais...?
Há (pelo menos) duas maneiras diferentes como podemos integrar esses novos POIs no mapa:
Origem: https://www.mapzen.com/blog/bike-map-v2/
Origem: https://www.cyclosm.org/
Origem: http://www.ta.org.br/ciclorio/
Origem: http://mijndev.openstreetmap.nl/~ligfietser/fiets/index.html
Opa pessoal,
Falando com o Felipe Alves, é capaz de eu ter de apresentar e dar um minicurso sobre mapeamento cicloviário para algumas cidades da região metropolitana de Lisboa (incluindo a capital).
Seria legal ter o Ciclomapa disponível nessas regiões, pois mostraria de maneira facilitada como anda a malha dessas cidades.
Uma facilidade é praticamente a não-necessidade de tradução hehe
Isso nos permitira monitorar melhor o perfil e até contactar usuários que fazem download dos dados, que é uma das principais interações e, portanto, métricas de sucesso do CicloMapa.
Penso que teria vaaarias maneiras de implementar isso, indo desde o mais simples que seria um campo de texto pra pessoa preencher quando faz download, até mais complexo implementando um sistema de cadastro e login mais completinho.
Deveriam ciclovias dentro de parques serem consideradas ciclovias mesmo?
Em discussões da equipe com a comunidade achamos que ciclovias desconectadas do resto da rede deveriam ser consideradas "Trilhas" - porém esse nome seria meio ruim também.
Tive uma ideia pra mitigar esse problema e não deixar esse bug do OSM afetar nosso app. Vou adicionar uma regra que, se o OSM retornar vazio pra uma cidade que já tínhamos dados, então eu ignoro esse retorno (não sobreescrevo o banco de dados com isso), aviso o usuário que o OSM está passando por problemas desconhecidos e peço pra tentar novamente mais tarde.
Hoje em dia para atualizar o banco de dados com os dados mais recentes do OSM o usuário deve manualmente clicar no botão de "Atualizar".
Idealmente gostaríamos que essas atualizações fossem automáticas e ocorressem o mais frequentemente possível (digamos, a cada 5 minutos).
Pra inspiração, o script abaixo pode ser rodado no console e ele irá atualizar as cidades listadas no array de cities
:
const cities = [
'Aracaju, Sergipe, Brasil',
'Belém, Pará, Brasil',
'Belo Horizonte, Minas Gerais, Brasil',
'Boa Vista, Roraima, Brasil',
'Brasília, Distrito Federal, Brasil',
'Campo Grande, Mato Grosso do Sul, Brasil',
'Cuiabá, Mato Grosso, Brasil',
'Curitiba, Paraná, Brasil',
'Florianópolis, Santa Catarina, Brasil',
'Fortaleza, Ceará, Brasil',
'Goiânia, Goiás, Brasil',
'João Pessoa, Paraíba, Brasil',
'Macapá, Amapá, Brasil',
'Maceió, Alagoas, Brasil',
'Manaus, Amazonas, Brasil',
'Natal, Rio Grande do Norte, Brasil',
'Olinda, Pernambuco, Brasil',
'Palmas, Tocantins, Brasil',
'Paulista, Pernambuco, Brasil',
'Porto Alegre, Rio Grande do Sul, Brasil',
'Porto Velho, Rondônia, Brasil',
'Recife, Pernambuco, Brasil',
'Rio Branco, Acre, Brasil',
'Rio de Janeiro, Rio de Janeiro, Brasil',
'Salvador, Bahia, Brasil',
'Sao Luis, Maranhão, Brasil',
'São Paulo, São Paulo, Brasil',
'Teresina, Piauí, Brasil',
'Vitória, Espírito Santo, Brasil',
]
// Task that retrieves and processes data from OSM
const task = name => {
ciclomapa.setState({ loading: true });
return ciclomapa.getDataFromOSM({areaName: name});
}
// Apply the task iteratively to the cities in the array
cities.reduce((promiseChain, name) => {
return promiseChain.then(chainResults =>
task(name).then(currentResult =>
[...chainResults, currentResult]
)
);
}, Promise.resolve([])).then(arrayOfResults => {
console.log('All done!');
});
Fiz algumas mudanças sugeridas por comentários, porém não há uma maneira de marcar o comentário como resolvido.
Uma possibilidade seria fazer integração com o OSM e criar uma nota usando a API. Quando a nota for resolvida, o comentário seria removido também do ciclomapa.
Exemplo de nota no OSM: https://www.openstreetmap.org/note/2734308
Documentação da API: https://wiki.openstreetmap.org/wiki/API_v0.6#Create_a_new_note:_Create:_POST_.2Fapi.2F0.6.2Fnotes
Exemplo: estão aparecendo vias que são ferrovias que tem velocidade abaixo de 30
Hoje se um usuário acessa uma cidade que está com os dados muito deatualizados, digamos, há mais de alguns meses, ele pode não saber disso e acabar tomando decisões em cima disso.
Algumas ideias inicias (adicionem mais!):
Link: https://ciclomapa.org.br/?lat=-12.9970274&lng=-38.4415860&z=16.52
Algumas sugestões para melhorar o estilo do mapa
The test version of ciclomapa is already supporting cities outside Brazil, let's add support for internationalization?
I have experience doing it with react-intl and I can try to implement it. As we don't have many views, I believe it will be simple.
It would be good if we could license the code as GPL or other open source license
O link para a página do CicloMapa no site da UCB está redirecionando para outra página sem informações.
Here's a list of interesting open data projects on bike sharing we could take a look:
Implementar alguma forma de habilitar condicionalmente certas features para simular um "ambiente de homologação" para testar novas funcionalidades em produção sem impactar usuários finais.
A solução poderia ser tão simples quanto um parâmetro de URL (tipo /?env=beta
) que ativa uma variável global, que por conseguinte é testada pelas funcionalidades que queremos testar.
Exemplo: gostaríamos de poder habilitar facilmente a feature de mensuração de comprimentos de camadas (#7) em produção para a equipe testá-la, antes de lançá-la para o público geral.
Aparentemente há uma tag no OSM que marca a data de instalação das infraestruturas: https://wiki.openstreetmap.org/wiki/Key:start_date
Resta saber se isso é utilizado no Brasil, e se conseguimos usar isso pra mostrar, por exemplo, um gráfico de evolução do total de infra de uma cidade ao longo dos anos
Existem várias oportunidades de melhorar o SEO do CicloMapa, garantindo assim que pessoas encontrem o site mais facilmente assim como nosso conteúdo:
title
e description
Hoje em dia o app sempre abre no local default, que é Fortaleza. Poderíamos estar salvando localmente a última posição (lat, long e zoom) do usuário pra abrir o app de novo de onde ele estava.
Simples assim. :)
...mas o que deveria ter nesse Readme? O que são boas práticas e bons exemplos de bons Readmes de projetos Open Source?
Olá, Tudo bem?
Tentei atualizar os dados do Rio de Janeiro no ciclomapa, mas ele fica eternamente atualizando e não importa os dados do OSM.
Estou tentando desde o dia 3 de janeiro até a presente data (5 de janeiro) e não consigo puxar os dados do OSM através do botão de atualizar dados do site. Ainda diz que são dados de 34 dias atrás.
Não sei como resolver o problema, mas fica aqui o registro.
Quando a cidade tiver uma quantidade baixa de dados (não sei exatamente a métrica), mostrar um diálogo estimulando o usuário a aprender sobre o OSM e algum material sobre edição.
Os elementos no iD Calçada e Calçadão não tem acesso especificado para bicicletas, mas tem usuários que especificam explicitamente a proibição - "bicycle=no" - ou a necessidade de desmontar - "bicycle=dismount". Quando estas etiquetas são utilizadas, os trechos passam a aparecer no CicloMapa na camada "Proibido".
A questão levantada é que em todas as calçadas já é obrigatório por lei desmontar esteja isso mapeado explicitamente ou não, então não faria sentido aparecer todas as calçadas nesta camada (caso estejam todas com acesso à bicicleta mapeado). Talvez aparecer os calçadões não teria problema.
Para solucionar este problema, o filtro da camada "Proibido" deveria desconsiderar as vias com etiquetas "highway=footway" + "footway=sidewalk".
P.S.:Questão levantada no grupo do Telegram "Comunidade CicloMapa"
I believe this would facilitate a lot for bikers who need to bike around and doesn't know the neighborhood and where there is no bike lanes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.