【问题标题】:Problems displaying text svg tag显示文本 svg 标签的问题
【发布时间】:2013-04-09 17:52:14
【问题描述】:

我的 SVG 文本标签有问题。将坐标 x 设置为 20 并将坐标 y 设置为 80 的这个简单代码可以完美运行。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <text id="test1" fill="red" x="20" y="80" font-size="30">my text</text>
</svg>

当我将地图的实际值设置为 x 和 y 坐标(如 x=1156291y=661770)时,问题就出现了。在这种情况下,我什么都看不到(并且我已经更新了视图框以适应新坐标)。

试图找出发生了什么,在将 SVG 插入 DOM 后,我使用 java scrip 检查了文本标记的 x 和 y 坐标,我发现两者都已(神奇地)更改为 -214748.3648

有谁知道发生了什么,因为我快疯了...听起来好像有问题,因为 x 和 y 坐标太大但我可以在我的地图中绘制一条具有该坐标(1156291, 661770) 的折线没有问题.

非常感谢您的帮助

【问题讨论】:

  • 您能告诉我们您正在使用的实际代码吗?否则不可能找到错误。
  • 浏览器是 96dpi,您的地图是几千 dpi。因此,您需要在 (20,80) @ 96dpi 与您的地图 @数千个 dpi 之间进行映射

标签: html text svg tags


【解决方案1】:

我在IE9下也有同样的问题,好像是IE9的bug。

例如, 节点是 SVGTextElement:

var node = svgDocument.getElementById('oneidfortext');

node.setAttribute("x", 39400);
node.setAttribute("y", 394000);

然后

var x = node.getAttribute("x");
var y = node.getAttribute("y");
//x here is going to be 39400
//y here is going to be -214748.3648

我还没有找到解决办法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多