Brasil/Metodologia/Importação de endereços
Metodologia testada na Importação IPPUC (Curitiba) e generalizada para outros contextos. A primeira versão da metodologia foi apresentada pelo Santamariense no fórum Talk-BR de dezembro de 2018.
Algoritmo simplificado
Algoritmo para automação parcial quando da disponibilidade de grande quantidade de geometrias de lotes. Permite automatizar o alinhamento dos centroides junto a frente dos lotes.
Primeiramente dividir em várias partes o arquivo dos lotes para que o QGIS possa dar processar, e depois unir novamente os resultados parciais. Passo-a-passo:
- Dar dissolve no arquivo dos lotes. Lotes dissolvidos nos dá as quadras;
- Dar buffer de -5m (menos cinco metros) no arquivo das quadras;
- Fazer a diferença Lotes menos Quadras. Isso nos dá como resultado polígonos da frente dos lotes. Polígonos que mantém a medida original da testada, porém, agora com apenas 5 metros de comprimento em direção ao fundo dos lotes;
- Feito isso é só gerar os centroides, que agora ficam alinhados ao eixo da rua, numa distância de 2,5m adentro do terreno *.
Problemas e detalhes
Alguns cuidados e considerações precisam ser tomados:
- Ao fazer a diferença, alguns lotes podem ficar totalmente sem geometria (0,2% do total). Para saber quais ficaram sem geometrias, é calculada a área deles. Lotes sem geometria nos dá área nula. Para contornar esse problema, abre-se o arquivo de lotes originais e se faz um join de tabelas com a tabela dos lotes cortados. Então, na tabela de atributos é selecionadas todas as geometrias com área nula. A seleção é salva como nova camada de shapefile. Do arquivo de lotes cortados, é excluída as geometrias de área nula e adicionada suas geometrias originais (lotes inteiros) - esses não tem jeito, é necessário o alinhamento manual.
- Todos os lotes de esquina cortados tendem a ficar em formato de "L", fazendo com que seja quase sempre necessário fazer o realinhamento manual.
- Muitos lotes cortados ficam com várias partes descontinuadas (~5% do total), de qualquer maneira, é gerado apenas um centroide que fica a meio caminho entre as partes, mais ou menos, ou exatamente, no centroide do lote original. Esses também não tem jeito, se faz necessário o alinhamento manual.
É importante destacar que apesar de muitos pontos já saírem na sua posição final, ainda assim é preciso que todos sejam verificados porque podem não existir mais (percebi muitos lotes que agora são ruas, por exemplo), ou mesmo porque exista já o endereço mapeado, ou ainda que precisa ser movido o endereço do ponto para a área (building, ou outra), caso ela já estiver sido mapeada.
Por fim, optei por dividir os pontos gerados por bairro, de modo que para fins de importação no OSM, fique prático e fácil manipular pequenos arquivos, principalmente neste caso que não só insere novos dados no OSM, como também modifica existentes, e arquivos grandes deixam mais tempo exposto a conflito de edições durante a importação.
Assim que começar a importação (de fato) compartilho aqui os problemas, soluções e/ou dúvidas que possam surgir. Nova conta exclusiva para importação foi criada. Nessa conta farei esta importação e outras que possam vir futuramente, em Curitiba ou em qualquer outro lugar. Quanto ao nome das changesets, o nome das changesets será " #Import Curitiba: Endereços - IPPUC. Bairro nomeDObairro " e a source da chageset será "Prefeitura de Curitiba:IPPUC:Lotes_2018-07", lembrando que a source apenas será posta na changeset, não em todos os endereços importados. Nos endereços importados só terá as tags addr:street e addr:housenumber.
Algoritmo completo
....
Implementação com PostgreSQL
....