我正在合併代碼,依靠v0的代碼在v1上打破。Topojson:v0和v1之間的差異列表?
什麼是topojson.v0.min.js和topojson.v1.min.js之間的語法變化*
-
嫌疑語法的列表:
- V0> V1
- .object> .feature
- .geometries> .featur es(在某些情況下還是始終?)
- * .coordinates> * .geometry.coordinates
- others?
我正在合併代碼,依靠v0的代碼在v1上打破。Topojson:v0和v1之間的差異列表?
什麼是topojson.v0.min.js和topojson.v1.min.js之間的語法變化*
-
嫌疑語法的列表:
1.0.0主要版本(見release notes)替換topojson.feature的topojson.object功能更好GeoJSON的兼容性。
在以前的TopoJSON版本中,topojson.object返回了幾何對象(可能是幾何集合),與TopoJSON Topology內幾何對象的表示方式一致。但是,與GeoJSON幾何圖形不同,TopoJSON幾何圖形更像特徵,並且可能具有id和屬性;同樣,空幾何被表示爲空類型。
從版本1.0.0開始,topojson.feature將替換topojson.object,而是返回Feature或FeatureCollection,與GeoJSON中最初表示幾何圖形的方式一致,然後轉換爲TopoJSON。 (如在GeoJSON中,空幾何被表示爲具有空幾何對象的特徵)。如在#37中討論的,這提供了與處理GeoJSON的GeoJSON specification和庫的更大的兼容性。
要升級您的代碼,可以使用topojson.feature替換topojson.object。但是,假定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]);
});
謝謝!正是我們需要的。 –
@RobinKraft:如果您發現一些要替換的對,請將它們添加到問題中的列表中。 – Hugolpz