Файл us.json
используется для рисования карты содержит информацию о чертах друг графствах и их FIPS code:
{"type":"Polygon","arcs":[[250,-204,-17]],"id":30047}
Каждая строка unemployment.tsv
представляет собой единый округ, содержащий его FIPS код и уровень безработицы. Когда файл будет загружен, он преобразуется из массива объектов:
> unemployment
[{id: '1001', rate: '.097'},
{id: '1004', rate: '.091'},
{id: '1005', rate: '.134'},
... ]
к объекту с ключом в качестве округа идентификатора и скорости в качестве значения:
var rateById = {};
unemployment.forEach(function(d) { rateById[d.id] = +d.rate; });
> rateById
{1001: .097,
1004: .091,
1005: .134}
(The +d.rate
, как слепки строки безработицы как числа.)
как только это будет сделано, окраска каждого округа просто, идентификатор только фигуры, чтобы найти соответствующий уровень безработицы в rateById
и преобразовать это число в цвет со шкалой на color
.
.style("fill", function(d) { return color(rateById[d.id]); });
Для более непосредственно ответить на ваши вопросы: вы, вероятно, хотите, чтобы code уровень округа * данные с кодом страны FIPS коды и использовать, чтобы раскрасить вашу карту. Если вы не работаете с данными графства, вы можете попробовать преобразовать его (отображение lat/long или city/state в графство) или полностью использовать другой вид карты (для карты мира см. this example и нижеприведенные комментарии).
* У меня нет какого-либо фона ГИС - каждый раз, когда я пытаюсь это сделать, в конечном итоге я использую старый код FIPS -> таблицу имен графства и должен исправить пару вручную; вероятно, есть лучший исходный файл на веб-сайте NIST, который я не смог найти.
Спасибо за ваш очень подробный ответ. Кроме того, что я работаю над международными данными, показывающими страны. Какие-либо предложения? –
http://stackoverflow.com/questions/13094907/how-to-create-a-choropleth-of-the-world-using-d3 карта мира: https://github.com/mbostock/topojson/blob /master/examples/world-50m.json –
У этого примера есть ссылка: http://stackoverflow.com/questions/12648032/geochart-in-d3-js http://bl.ocks.org/clayzermk1/ 4121134 В основном, те же идеи, что и выше, но названия стран используются для объединения данных на карту вместо кодов графства. –