Como mapear um bairro (como adicionar place = neighbourhood)

Olá, (ainda começando no OSM…) preciso saber na prática como colocar uma etiqueta em uma área para defini-la como um bairro ou distrito e depois disso, qual etiqueta para usar nas suas ruas, para informar o “pertencimento” daquela rua para um bairro, ou seja, qual tag para dizer que a Rua X (ou qualquer logradouro) pertence ao bairro Y. E por último (por enquanto), como fazer aquelas legendas que aparecem como nomes de bairros, ou regiões quando se está em um zoom maior, que some depois de um zoom mais local mais próximo das residencias? A propósito, qual etiqueta usar para delimitar um conjunto habitacional o qual muitas vezes está em um bairro? Lembrando que conjunto habitacional ou residencial é muuuito comum em nosso Brasil. Grato.

Como você coloca uma etiqueta depende de qual editor você está usando. No JOSM há dois caminhos: adicionar a etiqueta na janela de etiquetas dos objetos selecionados, ou usar um preset. O iD tem os mesmos dois caminhos: adicionar a etiqueta na seção Todas as Etiquetas no painel esquerdo após selecionar um objeto, ou aplicar um dos presets clicando no topo no tipo de elemento (ou escolher o tipo ao criar o elemento).

Agora vamos por partes, começando pelo mais fácil. Para conjuntos habitacionais/residenciais, basta desenhar a área e atribuir a etiqueta landuse=residential (ou usar o preset respectivo).

O mapeamento de um bairro ou distrito começa com o mapeamento do rótulo (que acho que é o que você chamou de “legenda”): um ponto com place=* conforme descrito aqui.

Distritos geralmente possuem limites oficiais. Bairros nem sempre. Quando não há limites oficiais, o costume é deixar apenas o ponto (há algumas divergências quanto a isso). Quando os limites são bem definidos, o próximo passo é criar o limite administrativo - recomendo que você use o JOSM e estude as relações antes. Limites administrativos são mapeados com a relação do tipo boundary.

No caso dos bairros sem limites oficiais, há quatro correntes sobre o assunto:

  1. Deixar apenas o ponto (ex.: os bairros de Londres); ou
  2. Mapear um limite administrativo aproximado (controverso por causa da semântica desse tipo de objeto); ou
  3. Mapear a área do bairro com landuse=residential (controverso por se confundir com outros usos de landuse=residential); ou
  4. Mapear a área do bairro com place=suburb (nova tendência e ainda um pouco controversa).

Os que mapeiam limites aproximados estão em geral preocupados em aprimorar o funcionamento dos geocoders. Ainda não verifiquei se a abordagem #4 funciona com o Nominatim, as abordagens #2 e #3 funcionam.

Se você mapear limites oficiais (#2) ou aproximados (#3 e talvez #4), você não precisa etiquetar cada objeto dizendo a que bairro pertencem, o geocoder infere essa informação automaticamente a partir do limite. Onde não há limites mapeados, há quem adicione a etiqueta addr:suburb, mas não é convenção. Fazer assim tem os mesmos problemas de mapear um limite aproximado em objetos que atravessam tal limite. Além disso, usar essa etiqueta pode levar a resultados contraditórios quando o limite for finalmente mapeado. Use com bom senso.

Se for mapear um bairro usando limites não-oficiais (seja como limite mesmo ou como place ou como landuse), por favor indique que os limites não são oficiais adicionando uma etiqueta fixme=*. Assim você chama a atenção dos colegas para que confirmem a informação oficial posteriormente.

ftrebien,veja bem, entendi bastante do que vc respondeu (sinceramente, foram muitas informações técnicas para um novato), mas em resumo: restou ainda as seguintes dúvidas:

1o. o que são as “#” 2, 3 e 4?
2o. o que é o geocoder?
3o. após saber o que é o geocoder(ainda não sei…) e que este faz a inferência automaticamente do pertencimento de uma rua a um bairro limitado oficialmente, pergunto: isso quer dizer que ele coloca automaticamente uma etiqueta em cada rua, avenida, etc, é isso? Porque o que eu preciso, para um projeto em mente, é que cada rua seja etiquetada com a tag do bairro e/ou conjunto habitacional ao qual pertence para pesquisa via OverpassTurbo, por exemplo.
4o. derivada da questão anterior, pergunto: tem como uma rua ter uma etiqueta do conjunto habitacional e também do bairro? como fica essa hierarquia?
5o. quando vc se referiu a problemas em mapear um limite aproximado e objetos que atravessam tal limite, refere-se a, por exemplo, dizer que uma rua é de tal bairro, sendo que ela atravessa a fronteira com outro e segue, é isso? Se for isso, não bastaria, para resolver tal conflito, que a rua ou avenida fosse etiquetada com duas tags de pertencimento uma para cada bairro?

Isto:

Geocoder (inglês para codificador geográfico) é o software que transforma endereços ou nomes de serviços em coordenadas geográficas. Em soluções comerciais como o Google Maps e o Here.com, o geocoder está integrado no sistema de uma forma que é difícil diferenciá-lo do todo. No OSM, ele é um sistema a parte, que está integrado no site (na barra de busca), mas pode ser acessado separadamente aqui. Por enquanto temos apenas um geocoder (o Nominatim), mas o OSM foi feito de modo a permitir que as pessoas (programadores) desenvolvam outros, se desejarem (por exemplo, se estiverem insatisfeitas com o Nominatim).

O geocoder produz um índice de pesquisa a partir dos dados do OSM. Um índice de pesquisa, no jargão da computação, é uma estrutura de dados feita para fazer pesquisas rapidamente, e é formado, entre outras coisas, por atributos associados a cada objeto. Os atributos podem vir dos valores das etiquetas (tags) dos objetos no OSM, ou podem vir de outro lugar, como por exemplo da análise de outras geometrias para saber a que bairro o objeto pertence. Então, mesmo que o objeto não tenha a etiqueta addr:suburb, o geocoder pode preencher o seu próprio atributo bairro (ou como ele preferir chamá-lo internamente) a partir das geometrias dos limites administrativos.

Por exemplo, este hospital não possui nenhuma etiqueta que indique a qual bairro ele pertence. Mas como a sua geometria está dentro dos limites deste bairro (Passo da Areia), o geocoder descobre o bairro do hospital analisando os outros dados do mapa e automaticamente preenche esta informação na sua linha de endereço (no site principal, ou diretamente no site do Nominatim).

Ainda nesse exemplo, o hospital também está contido nesta área residencial (mapeada da mesma forma que um conjunto habitacional, usando landuse=residential) com nome próprio. O Nominatim suporta áreas com landuse=residential como similares a vizinhanças/bairros, então também acrescenta o nome dela à linha de endereço.

Existem algumas outras sub-chaves de addr:*, como por exemplo addr:place e addr:full. Elas são pouco usadas e não sei se são suportadas pelo Nominatim - recomendaria testá-las em um ou dois elementos antes de sair aplicando.

Mas eu não mapearia a sua situação dessa forma. Eu mapearia o conjunto habitacional como uma área com landuse=residential e o bairro de uma das seguintes formas:

  • somente ponto, se os limites não forem bem definidos; ou

  • ponto + área do limite administrativo, se os limites forem bem definidos/oficiais.

Não exatamente. Com frequência, quando não há um limite oficial, as pessoas discordam sobre o local exato do limite. Pode ser umas poucas quadras ou mesmo um trecho dentro de uma quadra. Nesse caso, não seria possível definir com certeza em que lugar passa a linha do limite - ou, alternativamente, em que lugar a rua deve ser quebrada em duas para que addr:suburb seja atribuído a cada trecho da rua com valores diferentes.

Recentemente eu mapeei os bairros numa cidade na qual os limites dos bairros não estão definidos oficialmente pela prefeitura (e ela mesma se contradiz algumas vezes). Nesse caso, eu mapeei somente os pontos, para não fazer um juízo possivelmente incorreto sobre o que seria a melhor aproximação dos limites. Fazendo desta forma, o Nominatim tenta atribuir um bairro pela proximidade entre o ponto do bairro e o ponto sendo indexado. Por exemplo, esta fábrica não tem addr:suburb, e o bairro mais próximo dela é este, então o Nominatim infere (buscando a melhor aproximação possível) que este bairro faz parte do endereço da fábrica. Essa inferência, claro, é imperfeita, e às vezes escolhe um bairro incorreto, mas escolhe o correto na maioria das vezes. Por isso algumas pessoas preferem mapear um limite aproximado, para aprimorar a correção do resultado, ao custo de se envolverem em disputas com outros colegas sobre onde o limite deve realmente estar (ou mesmo se deve existir, dada a indefinição).

Pessoalmente, acho que mapear limites aproximados é algo interessante, mas que não deve ser feito de qualquer jeito (por exemplo, somente com a sua experiência cotidiana individual). Quem estiver mapeando deve se basear no maior número de informações possível (sem, obviamente, gerar um ônus enorme/impraticável) para fazer um bom julgamento sobre a localização do limite aproximado. Se você não tiver fontes oficiais, nem indiretas (por exemplo, no caso da cidade que citei, eu cruzei alguns dados da própria prefeitura, incluindo dados em notícias da prefeitura), já estaria um pouco melhor você conversar com mais um ou dois moradores locais para ver se concordam com a localização dos limites aproximados.

Prezado ftrebien, só tenho a dizer: incrível! Vc explanou com uma competência técnica e didática muito profícua, mostrando realmente que sabe do que está falando. E não bastasse isso, nota-se sua gentileza em se dispor a trazer respostas tão trabalhadas. Respeito, admiro e parabenizo seu empenho em um projeto tão audacioso/grandioso, quanto necessário que é o OSM. Compreendi suas colocações (não tuuudo) e procurarei colocar em prática no que eu puder, e retornando aqui vez ou outra. Grato.

Fico feliz em ter ajudado! Se ainda tiver dúvidas, pode contar com a ajuda da comunidade, não tenha medo de fazer perguntas!