从 svg 标记字符串重新加载自定义工具
Posted
技术标签:
【中文标题】从 svg 标记字符串重新加载自定义工具【英文标题】:Reloading custom tool from svg markup string 【发布时间】:2021-02-11 22:08:02 【问题描述】:我正在使用 Markup Core 扩展并创建了一个具有编辑模式等的自定义工具。该工具在首次添加到画布、拖动、调整大小和单击保存时似乎工作正常,我可以看到我的新 DotMarkup在标记数组中。
但是,当调用 generateData 并保存 svg 字符串时,尝试使用 loadMarkups(svg, layerName) 将数据加载到新图层上时,自定义标记会显示在屏幕上但无法点击,标记在标记中不可见数组(在编辑器上,或在 svg 标记数组中)。
任何帮助表示赞赏
【问题讨论】:
【参考方案1】:我最近也在研究这个问题,不幸的是,MarkupsCore
扩展还不支持导出和重新导入自定义标记。如果您查看extension code 并搜索createMarkupFromSVG
,您会在函数末尾注意到它只是一个带有内置标记类型的长switch
。因此,当您的自定义 SVG 加载时,它不被视为“标记 SVG”。要解决此问题,您可能必须自己解析 SVG 字符串并手动设置扩展的内部状态(例如 this.markups
)。
【讨论】:
话虽如此,我会联系工程团队,看看是否可以在未来的某个版本中添加这些内容。 感谢 Petr,感谢您的回答……我也这么想。我们正在创建一个自定义点点工具,它可以添加点和文本,并设置颜色。我保存了 SVG 字符串并可以重新加载它,但我们确实需要重新加载它并且它是可编辑的。对于当前的工作,我只需要抓取数据,删除并重新创建,这意味着我们不能拖动现有的形状,但是如果我们单击编辑,它会消失并重新出现在他们下一次单击的任何地方。能够加载自定义类型将是一个很好的补充!再次感谢!以上是关于从 svg 标记字符串重新加载自定义工具的主要内容,如果未能解决你的问题,请参考以下文章
Android 地图:如何使用 SVG 文件自定义标记图标?