如何从svg文件到R获取路径的坐标

时间:2012-04-13 06:36:34

标签: r svg inkscape

可能这是一个愚蠢的问题,但我没有很多这方面的经验。我需要从多边形中获取坐标以在R中创建轮廓。它是一个大约1000个点的复杂多边形,因此手动输入坐标是疯狂的。此外,我需要提取轮廓内的一些对象的xy位置。 我尝试使用Illustrator和Inkscape创建一个包含所有信息的svg文件。考虑到svg文件包含所有信息,它看起来是个不错的选择。有没有办法从路径或多边形点头提取坐标?或者还有其他更简单的方法来完成这个过程? 我真的很感激任何帮助,因为我必须做大约30张图片。 干杯

1 个答案:

答案 0 :(得分:7)

您可以使用XML包来提取坐标。

# Sample data
library(RCurl)
url <- "http://upload.wikimedia.org/wikibooks/en/a/a8/XML_example_polygon.svg"
svg <- getURL(url)

# Parse the file
library(XML)
doc <- htmlParse(svg)

# Extract the coordinates, as strings
p <- xpathSApply(doc, "//polygon", xmlGetAttr, "points")

# Convert them to numbers
p <- lapply( strsplit(p, " "), function(u) 
  matrix(as.numeric(unlist(strsplit(u, ","))),ncol=2,byrow=TRUE) )
p

但是,这会忽略要应用于多边形的任何变换。