我为Android创建了一个SVG图像解析器类,它运行良好,并且完全符合我想要的目的。我目前正在编写的应用程序使用我在Inkscape中预先设计的楼层平面图。现在,我想做的是能够在计划上标记特定的X,Y点,这些点将不会被渲染,但只是用于通知软件应用程序特定点在计划中的位置。这样应用程序可以在运行时以编程方式将各种标记放置在这些点上。
它的实际编码不是问题;我目前已经使用文本字符串,但我可以使用各种对象。我所做的是放置一个文本字符串,我给文本字符串的ID属性一个特殊的前缀,例如“_meta”。然后我的SVG解析器识别该前缀,并将字符串的X,Y坐标与我在“_meta”前缀之后放入ID属性中的任何其他元数据一起记录。字符串不会呈现为屏幕;它纯粹是为了告诉软件一个特定的观点。
这很有效,我可以继续这样做,但我想知道的是,是否有更“正确”或更优雅的方式来做到这一点。我查看了SVG规范,我对标准元数据标签的理解是,它们只能传达有关图像的信息。据我所知,没有专门用于标记任何X,Y点的物体。使用对象的ID字段来传达由程序解析的信息,但似乎有点错误并且滥用ID属性的内容。
我应该考虑其他任何方法吗?
谢谢,
崔佛
答案 0 :(得分:2)
目前没有任何元素可以标记svg中的特定兴趣点。但是,SVG工作组在上下文中讨论了添加点元素,例如想要连接表示图形中节点的元素。
使用以下任何一种方法都可以。
'role'
属性及其相关属性,请参阅here 在任何情况下,需要注意的是使用自定义的非命名空间属性和元素,因为这可能与将来添加到SVG规范相冲突。