1

我正在尝试使用 canvg 将包含 json 层的 Polymaps 地图保存为图像文件,如此处所述。我遇到的问题是,当我尝试使用 XML 序列化程序构造 svg 字符串时,子元素的内容不包含在字符串中。这些元素是存储地理信息的地方,因此我的 svg 字符串不包含将地图绘制到画布上的必要信息。

知道为什么会发生这种情况或如何在 svg 字符串中包含所有 svg 子元素吗?

4

1 回答 1

2

一段时间后回到这个问题,我相信我已经解决了。

Polymaps 仅允许您在“加载”和“显示”功能中访问包含地理信息(在我的情况下是从 json 文件上传)的地图的“g”子元素。在“加载”或“显示”函数中循环遍历最后一个地图特征时,沿着 svg DOM(在我的例子中是 feature.parentNode.parentNode.parentNode.parentNode)。然后使用 XML 序列化程序提取字符串。如果要在提取的字符串中完全保留地图样式,则必须将 CSS 地图样式转换为内联样式。

于 2012-12-07T18:47:42.160 回答