gpt4 book ai didi

json - Topojson:v0 和 v1 之间的差异列表?

转载 作者:行者123 更新时间:2023-12-01 04:46:32 25 4
gpt4 key购买 nike

我正在合并代码,依赖 v0 的代码在 v1 上中断。

topojson.v0.min.js 和 topojson.v1.min.js 有哪些语法变化?*

--

可疑语法列表:

  • V0 > V1
  • .object > .feature
  • .geometries > .features(在某些情况下还是总是?)
  • *.coordinates > *.geometry.coordinates
  • 其他人?

最佳答案

1.0.0 主要版本(参见 release notes )将 topojson.object 函数替换为 topojson.feature 以获得更好的 GeoJSON 兼容性。

在之前的 TopoJSON 版本中,topojson.object 返回一个几何对象(可能是一个几何集合),这与几何对象在 TopoJSON 中的表示方式一致 Topology .然而,与 GeoJSON 几何不同,TopoJSON 几何更像特征,并且可以具有 id 和属性;同样,空几何图形表示为空类型。

从 1.0.0 版开始,topojson.feature替换 topojson.object,返回 Feature 或 FeatureCollection,与转换为 TopoJSON 之前几何在 GeoJSON 中的最初表示方式一致。 (在 GeoJSON 中,空几何表示为具有空几何对象的特征。)如 #37 中所述。 ,这提供了与 GeoJSON specification 的更大兼容性以及处理 GeoJSON 的库。

要升级您的代码,您可以将 topojson.object 替换为 topojson.feature。但是,假定 topojson.object 返回几何的代码必须更改以处理现在由 topojson.feature 返回的特征(或特征集合)。比如1.0之前,如果你说:

svg.selectAll("path")
.data(topojson.object(topology, topology.objects.states).geometries)
.enter().append("path")
.attr("d", path);

在1.0及以后,对应的代码是:

svg.selectAll("path")
.data(topojson.feature(topology, topology.objects.states).features)
.enter().append("path")
.attr("d", path);

同样,如果您在 1.0 之前迭代一系列点几何图形,您可能会说:

topojson.object(topology, topology.objects.points).geometries.forEach(function(point) {
console.log("x, y", point.coordinates[0], point.coordinates[1]);
});

在1.0及以后,对应的代码是:

topojson.feature(topology, topology.objects.points).features.forEach(function(point) {
console.log("x, y", point.geometry.coordinates[0], point.geometry.coordinates[1]);
});

关于json - Topojson:v0 和 v1 之间的差异列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17404239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com