如何解决现有的Vega-lite地图突然看起来非常放大-发生了什么事?
我有一幅旧的topojson格式的地图,曾经与Vega-Lite一起使用。现在我们只在this editor gist.
中看到一个紫色正方形我用相同的代码重建了地图,但是在vega编辑器和saved as a gist here中更新了topojson。
在新的vega版本中,似乎我需要对topojson文件进行不同的格式设置,首先是弧,例如mapshaper.org导出输出。为什么是这样?它破坏了几个现有的网络地图,使我花了几个小时才弄清楚。似乎我可以通过更改工作流程来解决它,但我很好奇。
解决方法
Topojson数据遵循投影数据的左手规则(外环为顺时针方向,内环为逆时针方向),其中,topojson文件中的数据是根据右手规则(外环为逆时针方向)构造的环和顺时针方向表示内部环)。多边形的顺序似乎可以忽略不计,但是它定义了多边形的“内部”和“外部”。
您可以做两件事:
- 请勿使用地理投影,而应使用类似于笛卡尔的
identity
投影。 - 按正确的顺序强制您的源数据。
示例1:
"projection": {"type": "identity","reflectY": true},
示例2:
使用MapShaper或Python以正确的顺序强制您的数据。这是使用Python的示例
import topojson as tp
import geopandas as gpd
gdf = gpd.read_file('https://raw.githubusercontent.com/nycehs/NeighborhoodReports/master/visualizations/json/UHF42.topo_old.json')
tp.Topology(gdf).to_json('UHF42.topo_new.json')
之前我为Altair和Python Topojson写过一些关于它的内容
- https://mattijn.github.io/topojson/example/settings-tuning.html#winding_order
- https://altair-viz.github.io/user_guide/data.html#winding-order
D3的Mike Bostock
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。