Тестирование с помощью следующих образцов кода: http://dc-js.github.io/dc.js/vc/dc.js responive GeoJSON США карта
Я хотел бы, чтобы эта карта реагирует на размер контейнера/окна. Однако примеры, которые я видел, использовали топожион и SVG для масштабирования карты. http://techslides.com/demos/d3/d3-worldmap-boilerplate.html
Невозможно ли с Geojson обновить размер карты аналогичным образом?
d3.json("../geo/us-states.json", function (statesJson) {
usChart.width(990)
.height(500)
.dimension(states)
.group(stateRaisedSum)
.colors(d3.scale.quantize().range(["#E2F2FF", "#C4E4FF", "#9ED2FF", "#81C5FF", "#6BBAFF", "#51AEFF", "#36A2FF", "#1E96FF", "#0089FF", "#0061B5"]))
.colorDomain([0, 200])
.colorCalculator(function (d) { return d ? usChart.colors()(d) : '#ccc'; })
.overlayGeoJson(statesJson.features, "state", function (d) {
return d.properties.name;
})
.title(function (d) {
return "State: " + d.key + "\nTotal Amount Raised: " + numberFormat(d.value ? d.value : 0) + "M";
});
К сожалению, это изменяет размер контейнера, и карта не перерисовывается. Посмотрите на этот пример. http://bl.ocks.org/jczaplew/4444770, который также использует – user2923767
Вам нужно использовать 'viewBox' и' preserveAspectRatio'. Вот обновленная информация: https://gist.github.com/mef/566bc47c8939f69fda4f –
Да. Спасибо. Я тоже видел этот код, но он также использует topojson.v0.min.js для перерисовки карты. Посмотрите на этом коде .data (topojson.object (США, us.objects.states) .geometries) \t Введите желанные(). Присоединять ("путь") \t \t .attr ("класс", "государство") \t \t .attr ("d", путь); \t}); – user2923767