D3.js 展开d3映射(不是单个功能)以使用整个svg区域

D3.js 展开d3映射(不是单个功能)以使用整个svg区域,d3.js,D3.js,我有一个州所有城镇的地图数据,比如加利福尼亚州。我用d3在地图上显示每个城镇——到目前为止一切都很好。我使用的投影使用scale()和translate()函数以及其他函数来显示我想要的地图--它看起来很不错 这是我的问题。我需要一种自动扩展地图投影的方法,以便它使用整个svg区域。换句话说,我想让我的地图越来越大,直到它的宽度正好等于svg的宽度或者它的高度正好等于svg的高度 我知道bounds函数有助于为单个功能实现这一点,但我希望整个州(而不是单个城镇功能)填充svg区域 谢谢你的帮助

我有一个州所有城镇的地图数据,比如加利福尼亚州。我用d3在地图上显示每个城镇——到目前为止一切都很好。我使用的投影使用scale()和translate()函数以及其他函数来显示我想要的地图--它看起来很不错

这是我的问题。我需要一种自动扩展地图投影的方法,以便它使用整个svg区域。换句话说,我想让我的地图越来越大,直到它的宽度正好等于svg的宽度或者它的高度正好等于svg的高度

我知道bounds函数有助于为单个功能实现这一点,但我希望整个州(而不是单个城镇功能)填充svg区域


谢谢你的帮助

您可以在topojson/ogr2ogr中提前进行缩放/转换处理,然后只使用默认的投影参数。地图将展开以获取完整的svg。Mike Bostock的解决方案有效: