为什么看不到此svg中绘制的多边形,如何使其可见?

时间:2019-04-23 03:33:17

标签: javascript svg

背景:我让用户在GoogleMap上绘图,然后从中提取点,以创建一个svg,供用户稍后命名和引用。当这些图纸足够大时,这似乎是可行的,但是当它们很小时(例如,围绕着一个小公园的多边形),我似乎会遇到问题。

您可以在此处使用以下版本:https://codepen.io/glenpierce/pen/MRqwmJ?editors=1010

当我检查svg中的实际多边形时,它们似乎已放置在viewBox中,并且我认为它们应该是可见的,但我无法显示它们。当我将svgs笔划设置为大于0的任何宽度时,笔划将完全占据整个viewBox。我认为SVG是“可扩展的”。是否有一些关于很小的十进制值的规则?如果是这样,我在哪里可以找到参考?

是否有办法缩放(或以其他方式修复)香草JS中此svg中的多边形,以使其在该svg中可见?

<svg
height="180px"
width="360px"
viewBox="
92.52881560431149
43.41319404777748
0.0024139881134033203
0.00027281812062796007

"><polygon points="
92.5290516387048,
43.41319404777748,
92.53095064268734,
43.4132456619112,
92.53122959242489,
43.413400504607246,
92.52903018103268,
43.41346686589811,
92.52881560431149,
43.4132087946678
"></polygon></svg>

注意:我已经对此进行了间距编辑,以便于阅读。

how it looks in codepen

请参见上文,该操作如何以绿色显示三角形,但您可以看到我突出显示了另一个svg中不可见的矩形。

1 个答案:

答案 0 :(得分:1)

svg似乎有精度限制:“使用单精度浮点数,SVG查看器不能正确绘制两个值之间的差,这些值小于较大数字的1 / 4,000,000(即2的幂等于2的幂,大约)。实际上,只有极少数人能做到这一点。”

来源:https://oreillymedia.github.io/Using_SVG/extras/ch08-precision.html