Map 如何获取svg的坐标?

Map 如何获取svg的坐标?,map,svg,adobe-illustrator,Map,Svg,Adobe Illustrator,如何找到svg的坐标?我有一个Adobe Illustrator文件,其中包含一张地图,这张地图已经被绘制并分成美国各州,我如何才能找到每个州的坐标 我只是以美国地图为例,我将潜在地将此技术用于其他几种地图(更多的本地地图!!)。SVG具有XML结构。状态将在标记中,希望在某个地方将状态的名称作为属性。路径的坐标由d属性定义,但它们可能变得非常复杂,因为它们可以是相对的或绝对的,并且具有各种类型的曲线。用曲线来说,考虑最后两个值可能是最简单的,这是曲线结束的地方。 有关详细信息,请参阅: 如果对

如何找到svg的坐标?我有一个Adobe Illustrator文件,其中包含一张地图,这张地图已经被绘制并分成美国各州,我如何才能找到每个州的坐标


我只是以美国地图为例,我将潜在地将此技术用于其他几种地图(更多的本地地图!!)。

SVG具有XML结构。状态将在
标记中,希望在某个地方将状态的名称作为属性。路径的坐标由
d
属性定义,但它们可能变得非常复杂,因为它们可以是相对的或绝对的,并且具有各种类型的曲线。用曲线来说,考虑最后两个值可能是最简单的,这是曲线结束的地方。

有关详细信息,请参阅:


如果对路径应用进一步的变换,情况可能会更复杂。祝你好运

Inkscape做得很漂亮。它有一个命令界面,如中所述。(该链接指向上的手册副本,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
这个例子来自。它从SVG中提取信息,SVG包含一个星形,如我的第一个链接所示

在我的Windows 10系统上,Inkscape位于
c:\Program Files\Inkscape\
中,可执行文件位于该系统的bin\子目录中。如果我
cd
到该子目录,Windows将识别
inkscape
命令;同样,如果我从其他地方使用可执行文件的完整路径,例如

"c:\Program Files\Inkscape"\bin\inkscape -S some_file.svg
把它放在我的路径上大概也会起作用

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\u csv
函数()执行此操作的屏幕截图。这会将数据放入一个表中,然后显示该表


这很有用。这正是我需要的接口我的SVG与我的动画生成器。您的命令在Windows 10上对我有效,只是Inkscape无法识别-z。然而,没有它,一切似乎都会顺利进行。其他Windows用户注意,我必须从Inkscape的\bin目录(c:\Program Files\Inkscape\bin)运行此命令,否则Windows无法识别该命令。大概我可以把目录放在我的路径上。我注意到你的坐标、宽度和高度都错了。我已经提交了一个修改后的答案,修正了这个问题,并添加了一些其他信息。