BrazilCSS - Mapnik brazilian style

Pessoal,

que tal a gente criar um estilo de renderização que atendesse às nossas necessidades? Com diferenciação de superfície, identificação de terras indígenas, etc…

Segue abaixo uma pequena contribuição. Pode ser utilizado no TileMill com arquivos shape ou lendo de uma base PostGis.

Map {
  background-color: #F9F8F0;
}



#bsb [zoom > 8] { 
  [natural='water'] {    
  	polygon-fill: #85c5d3;
  }
  [waterway='riverbank'] {    
  	polygon-fill: #85c5d3;
  }
}
  

#bsb [zoom > 10] {
  [waterway='river']{
    line-color: #85c5d3;
    line-width: 1.5;  
  }
  [waterway='stream'] {
    line-color: #85c5d3;
    line-width: 1;
  }  
}


#bsb [zoom > 2] { 
  [highway='motorway'] {     
     ::case {
    	line-width: 6;
    	line-color: #000;
  	}
  	::fill {
    	line-width: 4;
    	line-color: #CCC;
  	}  
  }
}

#bsb [zoom > 8] {   
  [highway='trunk'] {     
    ::case {
    	line-width: 6;
    	line-color: #000;
  	}
  	::fill {
    	line-width: 4;
    	line-color: #CCC;
  	}
  }
  [highway='primary'], [highway='primary_link'] {    
    ::case {
    	line-width: 5;
    	line-color: #000;
  	}
  	::fill {
    	line-width: 3.5;
    	line-color: #cccccc;      	
  	}
    [surface='unpaved'] {     	
    	::case {
    		line-width: 5;
    		line-color: #e0d50b;
  		}
  		::fill {
	    	line-width: 3.5;
    		line-color: #b06a16;      	
  		}		  	    
  	}
  }
  [highway='secondary'], [highway='secondary_link'] {    
    ::case {
    	line-width: 3;
    	line-color: #000;
  	}
  	::fill {
    	line-width: 2;
    	line-color: #cccccc;      	
  	}
    [surface='unpaved'] {     	
    	::case {
    		line-width: 3;
    		line-color: #e0d50b;
  		}
  		::fill {
	    	line-width: 2;
    		line-color: #b06a16;      	
  		}		  	    
  	}
  }
  [highway='tertiary'], [highway='tertiary_link'] {     
      ::case {
    	line-width: 3;
    	line-color: #000;
  	}
  	::fill {
    	line-width: 2;
    	line-color: #cccccc;      	
  	}
    [surface='unpaved'] {     	
    	::case {
    		line-width: 3;
    		line-color: #e0d50b;
  		}
  		::fill {
	    	line-width: 2;
    		line-color: #b06a16;      	
  		}		  	    
  	}
  }
   [highway='unclassified'] {          
      line-width: 1;
      line-color: #cccccc;      	  	
    [surface='unpaved'],[surface='dirt'],[surface='ground'], [surface='compacted'] {     	
    	line-width: 1.5;
    	line-color: #b06a16;  				  	    
  	}
  }
  [highway='track'] {     
    line-color: #b06a16;
    line-width: 1;  
  }
  [zoom > 10] {     
    [highway='residential'], [highway='service']{
    	line-color: #ddd;
    	line-width: 1;  
      }
  }

}


#bsb [zoom > 8]{
  [place ='hamlet'][zoom > 9] {
    text-name: [name];
    text-face-name: 'Arial Regular';
    text-size: 10;
    text-wrap-width: 100;  
  }
   [place ='village'][place ='town'] {
    text-name: [name];
    text-face-name: 'Arial Regular';
    text-size: 10;
    [zoom > 9] {
    	text-size: 14;
      	text-halo-fill: fadeout(white, 30%);
      	text-halo-radius: 2;
    }
    text-wrap-width: 100;  
  }  
  [place ='city'] {
  	text-name: [name];
  	text-face-name: 'Arial Regular';
  	text-fill: #b21a36;
	text-size: 16;
  	text-halo-fill: fadeout(white, 30%);
  	text-halo-radius: 2.5;	
  }  
}

:sunglasses:

Hm pode mandar um screenshot de como fica o resultado final?

Só com esse código aí, fica bem feio…

Até que está bom pra um código tão curto. :stuck_out_tongue:

Cara, 100% a favor de começar a criar um estilo brasileiro. Eu só tomaria cuidado com 2 coisas:

  • colocar nele “recursos” que levariam a comunidade brasileira a mapear de um jeito incompatível com o resto do mundo
  • teve uma imensa discussão pra se decidir quais tags são melhores pra representar superfícies “não pavimentadas” (o conceito na verdade mudou um pouco), seria bom considerar a conclusão porque ela representa o consenso

Pode dar menos trabalho influenciar o estilo mundial, que aliás não é nada ruim, só precisa de uns ajustes. Nesse sentido, o código que você escreveu seria uma excelente inspiração. Mas como o Bráulio mencionou no último e-mail, o chato é configurar o TileMill, feito isso alterar a stylesheet do Mapnik deve ser bem fácil.

Se formos criar um estilo brasileiro, provavelmente passaremos por todas as mesmas críticas que estamos dando ao povo lá fora.

Além disso, participando a nível mundial, estaremos ajudando não apenas a nós mesmos.

Poderíamos simplesmente criar fork do estilo atual no GitHub e experimentar branches para nossos desejos. Alguma coisa seria aproveitada lá fora.

Isso sim! Resolve dois problemas (o nosso e o deles) de uma vez só. :smiley:

O repositório fork, no branch main, teria de sempre manter-se espelho do projeto internacional. O Brasil só trabalharia os demais branches de seu reppositório fork. Isso, só para termos a reunião de cada pessoa com seu próprio fork em seu branch. Na prática, o repositório fork brasileiro acabaria sendo a reunião de forks de indivíduos brasileiros, em branches nomeados que a comunidade toda conheceria facilmente a partir de um mesmo repositório. Alguém teria de estar espelhando periodicamente o main, o que é simples.