如何找到svg的坐标?我有一个Adobe Illustrator文件,其中包含一张地图,这张地图已经被绘制并分成了美国各州,我如何找到每个州的坐标?
我只是举了美国地图的例子,我可能会使用这种技术来处理其他地图(更局部的地图!!)。
如何找到svg的坐标?我有一个Adobe Illustrator文件,其中包含一张地图,这张地图已经被绘制并分成了美国各州,我如何找到每个州的坐标?
我只是举了美国地图的例子,我可能会使用这种技术来处理其他地图(更局部的地图!!)。
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
c:\Program Files\Inkscape\
,可执行文件位于其中的bin\子目录下。如果我切换到该子目录,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)。这将数据放入一个表中,然后我将其显示出来。
SVG具有XML结构。状态将在<path>
标记中,希望状态名称出现在某个属性中。路径的坐标由d
属性定义,但它们可能会变得非常复杂,因为它们可以是相对或绝对的,并且具有各种类型的曲线。对于曲线,最简单的方法可能是仅考虑最后两个值,即曲线结束的位置。
有关完整详细信息,请参见:http://www.w3.org/TR/SVG/paths.html#PathDataGeneralInformation
如果对路径应用了进一步的变换,则情况可能更加复杂。祝你好运!