缩放到没有topoJSON的边界框

问题描述 投票:1回答:1

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

https://bl.ocks.org/mbostock/4699541

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

.data(topojson.feature(us, us.objects.states).features)

但是像这样:

.data(collection.features)
javascript d3.js geojson topojson
1个回答
0
投票

该块实际上已经使用了geojson - 一个d3 geoPath不会绘制topojson对象,它会绘制geojson对象:

path(object[, arguments…]) <>

呈现给定对象,可以是任何GeoJSON要素或几何对象

...(link

我们来看看你的例子:

.data(topojson.feature(us, us.objects.states).features)

topojson.feature(us, us.objects.states)返回一个特征集合,一个geojson特征集合。

.features访问要素集的功能(在这种情况下是一组多边形)。

什么被喂给.data()已经是geojson。所以我们可以按照你的建议使用.data(geojson.features)(如果我们有一个特征集合,否则我们只能使用一个geojson对象数组)。

我们可以用你的例子用两种方式证明 - 在浏览器here中使用topojson将数据预转换为geojson,或者我们可以加载geojson文件并完全放弃topojson的转换,如here所示。

© www.soinside.com 2019 - 2024. All rights reserved.