100% Newbie. I've been following Mike's d3 Map Tutorial and I've come up against a challenge. I guess my question essentially boils down to: how does one generate the proper GeoJSON/TopoJSON files which allow one to combine the Natural Earth data from ne_110m_land along with Admin 0 – Boundary Lines and Admin 1 – States, Provinces?
I think there's some sort of trick I'm missing for thematic maps. (I guess that's also why Mike may have not covered that in the intro article).?
Thanks!
Seemant
Best Answer
The short answer to your question is:
This will produce a topology with "land" and "states" objects. You can omit the
land=
andstates=
if you'd prefer the objects to have the file names instead.However, a couple gotchas to be aware of:
The Natural Earth 1:110M dataset for only includes the United States in the Admin 1 — States, Provinces download. The 1:50M resolution download adds Canada to this set, and the highest-resolution 1:10M download includes the entire world. So, if you want to make a world map, you’ll currently need the 1:10M dataset, which you can then simplify as desired. (Though the automatic simplification provided by
topojson
won’t be as good as the hand-tweaked simplification done by Kelso et al. at Natural Earth.)Only the 1:10M Natural Earth dataset is currently topologically-consistent. This means that there will be some cases where the borders won’t match up exactly between adjacent features in the 1:50M and 1:110M datasets. In practice, this usually isn’t a big problem, but it can prevent some topological algorithms from working perfectly, such as simplification and map coloring. So again, you may need to start with the 1:10M dataset and simplify.
Use additional options to
topojson
to customize the generated TopoJSON file, such as including properties, increasing the quantization factor to improve accuracy, and enable simplification. There are many examples of converting Natural Earth data to TopoJSON in the world-atlas repository. See the Makefile for details if you want to customize how the TopoJSON is generated (e.g., combine different files, modify properties, change simplification thresholds). And lastly see thetopojson
command-line reference for an overview of all the available options.