Javascript 缩放到不带拓扑结构的边界框

Javascript 缩放到不带拓扑结构的边界框,javascript,d3.js,geojson,topojson,Javascript,D3.js,Geojson,Topojson,Mike Bostock的“缩放到边界框”示例假定您使用的是topoJSON 如何修改脚本,以便您也可以将其用于geoJSON数据?具体来说,我的脚本不会使用以下内容: .data(topojson.feature(us, us.objects.states).features) 但是像这样的事情: .data(collection.features) 该块实际上已经使用了geojson-d3 geoPath不绘制topojson对象,而是绘制geojson对象: 路径(对象[,参数…])

Mike Bostock的“缩放到边界框”示例假定您使用的是topoJSON

如何修改脚本,以便您也可以将其用于geoJSON数据?具体来说,我的脚本不会使用以下内容:

.data(topojson.feature(us, us.objects.states).features)
但是像这样的事情:

.data(collection.features)

该块实际上已经使用了geojson-d3 geoPath不绘制topojson对象,而是绘制geojson对象:

路径(对象[,参数…]) 呈现给定对象,该对象可以是任何GeoJSON功能或几何体 反对

。。。()

让我们看一下您的示例:

.data(topojson.feature(us, us.objects.states).features)
topojson.feature(us,us.objects.states)
返回一个功能集合,一个geojson功能集合

.features
访问要素集合的要素(本例中为多边形阵列)

正在馈送到
.data()
的内容已经是geojson。因此,我们可以按照您的建议使用
.data(geojson.features)
(如果我们有一个功能集合,否则我们可以只使用一个geojson对象数组)


我们可以用两种方法演示您的示例—在浏览器中使用topojson将数据预转换为geojson,或者我们可以加载geojson文件并完全删除从topojson的转换,如图所示。

谢谢Andrew。非常有用。