【问题标题】:Rendering a map on ie8 with D3使用 D3 在 ie8 上渲染地图
【发布时间】:2014-08-28 11:46:27
【问题描述】:

我知道 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/IE9https://github.com/mbostock/d3/issues/619 等等。

【问题讨论】:

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

标签: d3.js internet-explorer-8 raphael


【解决方案1】:

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

这是一个很棒的 JS 库,可以满足许多需求,它通过浏览器检测以 IE8 VML 而不是 SVG 呈现。

如果您在使用 RaphaelJS 时需要任何帮助,请在此答案上发表评论,并提供有关您的地图数据以及您想用它做什么的更多信息。

最好的问候。

【讨论】:

    猜你喜欢
    • 2021-03-06
    • 2013-09-29
    • 1970-01-01
    • 2013-09-21
    • 2022-01-18
    • 2017-08-11
    • 1970-01-01
    • 2018-08-25
    • 2022-01-11
    相关资源
    最近更新 更多