Topojson with brazilian states (estados brasileiros).
Projection is standard Mercator, at EPSG:4326 datum.
The polygons are simplified, making the file really small. Comparing with Albers used by IBGE's Statistical Grid.
| license: mit | |
| height: 600 |
Topojson with brazilian states (estados brasileiros).
Projection is standard Mercator, at EPSG:4326 datum.
The polygons are simplified, making the file really small. Comparing with Albers used by IBGE's Statistical Grid.
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>Brazilian States Topojson</title> | |
| <script src="https://d3js.org/d3.v5.min.js"></script> | |
| <script src="https://d3js.org/topojson.v1.min.js"></script> | |
| <style> | |
| #brMap1 .state { | |
| fill: #bfe; | |
| fill-opacity: 0.6; | |
| } | |
| #brMap1 .state:hover { fill: #d78; } | |
| #brMap1 .state_contour { | |
| fill: none; | |
| stroke: black; | |
| stroke-linejoin: round; | |
| } | |
| #brMap1 rect.map_canvas { | |
| stroke: #F00; | |
| fill: none; | |
| stroke-width: 4; /* 0.25 to 5 */ | |
| opacity: 0.6; /* 0 to 0.5 */ | |
| } | |
| #brMap1 .map_gridCell { | |
| stroke: #F55; | |
| fill: none; | |
| stroke-width: 2; /* 0.25 to 5 */ | |
| opacity: 0.9; /* 0 to 0.5 */ | |
| } | |
| </style> | |
| <script> | |
| // Define map size on screen | |
| var width=596, height=660, | |
| svg, g, path; | |
| function ready(shp) { | |
| // Extracting polygons and contours | |
| var states = topojson.feature(shp, shp.objects.estados); | |
| var states_contour = topojson.mesh(shp, shp.objects.estados); | |
| // Desenhando estados | |
| g.selectAll(".estado") | |
| .data(states.features) | |
| .enter() | |
| .append("path") | |
| .attr("class", "state") | |
| .attr("d", path); | |
| g.append("path") | |
| .datum(states_contour) | |
| .attr("d", path) | |
| .attr("class", "state_contour"); | |
| } | |
| function ONLOAD() { | |
| svg = d3.select("body svg") | |
| .attr("width", width) | |
| .attr("height", height); | |
| g = svg.append("g") | |
| // Align center of Brazil to center of map | |
| var projection = d3.geoMercator() | |
| .scale(815) | |
| .center([-52, -15]) | |
| .translate([width / 2 + 18, height / 2 + 20]); | |
| path = d3.geoPath().projection(projection); | |
| d3.json("./br-states.json").then(ready); | |
| d3.select(self.frameElement).style("height", height + "px"); | |
| g.attr("id","brMap1"); | |
| g.append("rect") // the canvas frame | |
| .attr("x", 0 ).attr("y", 0 ) | |
| .attr("class","map_canvas") | |
| .attr("width",width).attr("height",height) | |
| ; | |
| const cellWidth = width/9.0; | |
| const cellHeight = height/10.0; | |
| var rectsXY = [] | |
| for (let i=0; i<9; i++) for(let j=0; j<10; j++) | |
| rectsXY.push( {"x":cellWidth*i, "y":cellHeight*j} ) | |
| ; | |
| g.selectAll().data( rectsXY ).enter().append("rect") | |
| .attr("x", d=>d.x).attr("y", d=>d.y ) | |
| .attr("class","map_gridCell") | |
| .attr("width",cellWidth).attr("height",cellHeight) | |
| ; | |
| } | |
| </script> | |
| </head> | |
| <body onload="ONLOAD()"> | |
| <h3>Brazilian States Topojson and grid</h3> | |
| Adapting https://bl.ocks.org/ruliana/1ccaaab05ea113b0dff3b22be3b4d637 to <b>D3js v5</b> ... | |
| <br/> <b>MERCATOR:</b><br/><svg> | |
| <br/> The Brazilian Official Statistical Grid IBGE, using <b>Albers projection:</b><br/><img src="articulacao.jpg"/> | |
| </body> | |
| </html> | |