相关疑难解决方法(0)

预投影几何体v让浏览器做到这一点(又名效率v灵活性)

为了提高我的在线地图的性能,特别是在智能手机上,我遵循Mike Bostock的建议,在将地理数据上传到服务器之前尽可能地准备地理数据(根据他的命令行制图).例如,我正在通过d3.geoConicEqualArea()命令行投射TopoJSON数据,而不是让观看者的浏览器在加载地图时执行这项繁重的工作.

不过,我也想用类似的方法.scale,.fitSize,.fitExtent.translate动态,这意味着我不能"烤"的规模或价值事先翻译成TopoJSON文件.

Bostock建议使用d3.geoTransform()作为预测的代理,例如,d3.geoConicEqualArea()如果您正在使用已经预测的数据但仍希望扩展或翻译它.例如,要在y轴上翻转投影,他建议:

var reflectY = d3.geoTransform({
      point: function(x, y) {
        this.stream.point(x, -y);
      }
    }),

    path = d3.geoPath()
        .projection(reflectY);
Run Code Online (Sandbox Code Playgroud)

我的问题:如果我使用这个D3功能,我是不是仍然强迫观众的浏览器进行大量的数据处理,这会使性能恶化?预处理数据的目的是避免这种情况.或者我是否过高估计上述d3.geoTransform()功能涉及的处理工作?

data-visualization geo geojson d3.js topojson

4
推荐指数
1
解决办法
384
查看次数

标签 统计

d3.js ×1

data-visualization ×1

geo ×1

geojson ×1

topojson ×1