2014-07-07 84 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時需要任何幫助,請對此答案發表評論以及有關您的地圖數據的更多信息以及您想要如何處理。

最好的問候。