【发布时间】:2013-06-10 05:23:59
【问题描述】:
去年我使用Mapnik library(服务器端,位图/平铺)在网络地图上做了几个实验。现在我正在尝试使用带有 d3.js 的矢量客户端方法来复制相同的实验。
我有一张地图(约 680 个形状),其中zoom 很慢,pan 很慢(Mike Bostock 的this example 效果很好)。我怀疑问题出在zoommove 回调中,selectAll("path").attr("d", path) 花费的时间太长。
function zoommove() {
projection.translate(d3.event.translate).scale(d3.event.scale);
mapa.selectAll("path").attr("d", path);
console.log('zoommove fired...');
}
问题:
- 我在这里做错了吗?
- 我可以做些什么来优化性能?
地图是这个(jsfiddle here):
数据源为 topojson 格式。它被简化了,可能已经太多了,因为有些形状没有关闭:
[更新]
看起来即使在没有简化标志的情况下运行 topojson 也会出现开放几何的问题,我仍在调查。我会很感激这里的任何线索,文档不是很详细。
【问题讨论】: