我正在尝试使用canvg将包含json图层的Polymaps地图保存为图像文件,如here所述。我遇到的问题是,当我尝试使用XML序列化程序构造svg字符串时,子元素的内容不包含在字符串中。这些元素是存储地理信息的地方,因此我的svg字符串不包含将地图绘制到画布上的必要信息。
知道为什么会发生这种情况或如何在svg字符串中包含所有svg子元素吗?
答案 0 :(得分:1)
一段时间后回到这个问题,我相信我已经解决了。
Polymaps只允许您在“加载”和“显示”功能中访问包含地理信息(在我的情况下从json文件上传)的地图的“g”子元素。在“load”或“show”函数中循环遍历最后一个地图特征时,向上走svg DOM(在我的例子中是feature.parentNode.parentNode.parentNode.parentNode)。然后使用XML序列化程序提取字符串。如果要在提取的字符串中完全保留地图样式,则必须将CSS地图样式转换为内联。