2014-07-07 83 views
3

我知道D3不支持IE8,但我希望能找到能够工作的东西。用D3在ie8上渲染地图

我想使用R2D3 https://github.com/mhemesath/r2d3,但我创建的地图仍然不是渲染。随着R2D2在页面的头部加载我:

projection = d3.geo.albersUsa() 
    .scale(700) 
    .translate([1000*0.3, 400*0.4]) 

path = d3.geo.path() 

mapData = topojson.features(mapJSON, mapJSON.objects.states) 

d3.select('svg') 
    .append('path') 
    .attr('class', 'states') 
    .datum(mapData) 
    .attr('d', path.projection(projection)) 

这使得在Chrome很好,但在IE8也不足为奇不起作用。

随着r2d3它呈现

<svg width="675" height="290"> 
    <path class="states" __data__='[object object]' d=" 
</svg> 

所以实际上没有执行的path.projection(projection)回调或不返回任何东西它会出现。从而制动html。

此外,我的印象是r2d3会降级到ie8中的非svg元素。

任何人都有在ie8中渲染d3地图的经验吗?我看过Making d3.js compatible with IE8/IE9,https://github.com/mbostock/d3/issues/619等等。

+0

我建议为IE8显示地图图像而不是交互式可视化。 –

回答

0

IE8不支持svg,只能用IE9开始。我不知道D3和r2d3,但我能为你做的是建议使用http://raphaeljs.com/

这是一个很棒的JS库,用于很多需求,它通过浏览器检测呈现在IE8 VML而不是SVG中。

如果您在使用RaphaelJS时需要任何帮助,请对此答案发表评论以及有关您的地图数据的更多信息以及您想要如何处理。

最好的问候。