title: How to control the order of the layers on a map in d3js
body: <p>I have a simple question about making maps with d3js. I want to make a map with two layers. One layer is the contour of the map (geoJson) and the other layer contains the streets (topoJson). My problem is that streets layer always is loaded in front of the layer of contour, no matter which one is written before in the code. I would like the opposite situation: the contour layer in front of the streets. I think this problem happen because both request are asynchronous and the contour layer is loaded before because is the lightest. </p>
  
  <p>Here is the code...</p>
  
  <pre><code>//Width and height
              var w = 900;
              var h = 500;
  
              //Define map projection
              var projection = d3.geo.transverseMercator()
                                     .center([2.5, -34.65])
                                     .rotate([61.5, 0])
                                     .scale((h * 750.5) / 3)
                                     .translate([(w/2), (h/2)]);
  
              //Define path generator
              var path = d3.geo.path()
                               .projection(projection);
  
              //Create SVG element
              var svg = d3.select("body")
                          .append("svg")
                          .attr("width", w)
                          .attr("height", h);
  
              //Load in TopoJSON data
              d3.json("streets.json", function(error, topology) {
  
  
                  svg.selectAll("path")
                     .data(topojson.feature(topology, topology.objects.layer1).features)
                     .enter()
                     .append("path")
                     .attr("d", path)
                     .style("fill", "white")
                     .style("stroke", "#cccccc");
  
              });
  
              //Load in GeoJSON data
              d3.json("contour.geojson", function(json) {
  
                  //Bind data and create one path per GeoJSON feature
                  svg.selectAll("path")
                     .data(json.features)
                     .enter()
                     .append("path")
                     .attr("d", path)
                     .style("fill","white")
                     .style("stroke","black")
                     .style("stroke-width",4);
  
              });
  </code></pre>
  
  <p>Is it possible load first the layer of streets, wait until the streets were drawn and then load the layer of contour?
  Thanks in advance.</p>