如何找出 svg 的坐标?我有一个包含地图的 Adobe Illustrator 文件,该文件已绘制并划分为美国各州,如何找到每个州的坐标?
我只是以美国地图为例,我可能会将这种技术用于其他几个地图(更本地化!!)。
如何找出 svg 的坐标?我有一个包含地图的 Adobe Illustrator 文件,该文件已绘制并划分为美国各州,如何找到每个州的坐标?
我只是以美国地图为例,我可能会将这种技术用于其他几个地图(更本地化!!)。
SVG 具有 XML 结构。状态将在<path>
标签中,希望在某处带有状态名称作为属性。路径的坐标由d
属性定义,但它们可能会变得非常复杂,因为它们可以是相对的或绝对的,并且具有各种类型的曲线。对于曲线,只考虑最后两个值可能是最简单的,也就是曲线结束的地方。
有关详细信息,请参阅:http ://www.w3.org/TR/SVG/paths.html#PathDataGeneralInformation
如果对路径应用进一步的变换,情况可能会更复杂。祝你好运!
Inkscape 做得很好。它有一个命令界面,在http://tavmjong.free.fr/INKSCAPE/MANUAL/html/CommandLine.html中有描述。(该链接指向其作者Tavmjong Bah 网站上的手册副本。请注意,它警告该手册尚未针对最新版本的 Inkscape 进行更新。但是,当我尝试该命令时,它运行良好。 )
这个命令
inkscape -S some_file.svg
将输出包含元素 id、左上角的 x 和 y 坐标以及元素的宽度和高度的行。SVG 的每个元素都有一行。这是一个例子:
svg2293,26.447175,24,97.105652,92.450851
layer1,26.447175,24,97.105652,92.450851
MyStar,26.447175,24,97.105652,92.450851
此示例来自http://tavmjong.free.fr/INKSCAPE/MANUAL/html/CommandLine-Query.html。它从包含星形的 SVG 中提取信息,如我的第一个链接所示。
在我的 Windows 10 系统上,Inkscape 位于c:\Program Files\Inkscape\
,并且可执行文件位于其 bin\ 子目录中。如果我cd
进入该子目录,Windows 将识别该inkscape
命令;同样,如果我从其他地方使用可执行文件的完整路径,例如
"c:\Program Files\Inkscape"\bin\inkscape -S some_file.svg
把它放在我的 PATH 上大概也可以。
Inkscape 有许多其他命令,其中包括用于提取有关对象位置和大小的信息的其他命令。后者称为“查询命令”。可以提取有关指定对象的信息,例如
inkscape --query-id=zoom-in -X /usr/share/inkscape/icons/icons.svg
这是在 Linux 系统的默认图标文件中查找放大图标的 x 位置的示例。
要将输出保存到文件,请使用>
. 例如
"c:\Program Files\Inkscape"\bin\inkscape -S some_file.svg > coords.txt
看到实际示例令人放心,这里有两个此工作的屏幕截图。
一旦您将数据保存在文件中,您就可以将其读入程序。下面是我在 R 编程语言中使用read_csv
函数 ( https://readr.tidyverse.org/reference/read_delim.html ) 执行此操作的屏幕截图。这会将数据放入一个表格中,然后我将其显示出来。