Я реализовал infographic/map с использованием crossfilter и d3.js.geoChoroplethChart карта, отображающая города/достопримечательности с тегами
То, что я хотел бы, чтобы добавить функциональность ...
Rendering различные записи данных в качестве точек интереса на карте.
Например, у нас есть города в Мексике и данные, указывающие метрику потребления текилы.
То, что я хотел бы сделать, это, например, потребление текилы в разных городах Европы.
Как я могу наложить такую информацию, предполагая, что у меня есть это или, во всяком случае, просто какой-то пример игрушки с широтой и долготой, более my map of Europe.
Дело в том, что это очень понятно, как это сделать с д .js но неясно, как добиться этого с картой, которая работает с д с .js, т.е. перекрестный фильтр.
Весь мой код можно найти here.
Это часть наиболее тесно связан с самой картой:
//This is the data for the Map
d3.json("data/europe.json", function (error, eu) {
console.log('map', eu)
usChart
.width(590)
.height(500)
.projection(projection
.scale((1200 + 1)/2)
.translate([660/4, 3360/4])
.precision(.1)
)
.dimension(countries)
.group(countriesJobsdSum)
.filterHandler(function(dimension, filter){
dimension.filter(function(d) {return usChart.filter() != null ? d.indexOf
(usChart.filter()) >= 0 : true;}); // perform filtering
return filter; // return the actual filter value
})
.colors(d3.scale.quantize().range(
["#8c857d", "#d982ab", "#d9525e", "#a63f52", "#8c6976", "#55b1b1", "#637e9e"])
)
.colorDomain([0, 200])
.colorCalculator(function (d) { return d ? usChart.colors()(d) : '#ccc'; })
.overlayGeoJson(eu.features, "countries", function (d) {
return d.properties.name;
//return d.properties.Country;
})
.transitionDuration(0)
.title(function (d) {
return "Country: " + d.key + "\nNumber of Jobs: " + numberFormat(d.value ? d.value : 0) ;
});