2012-04-13 3 views
3

Может быть, это глупый вопрос, но у меня нет большого опыта в этом. Мне нужно получить координаты из многоугольника, чтобы создать контур в R. Это сложный многоугольник около 1000 точек, так что вводить координаты вручную сумасшествие. Также мне нужно извлечь xy позицию некоторых объектов внутри контура. Я попытался использовать Illustrator и Inkscape для создания файла svg, который содержит всю информацию. Это похоже на хороший вариант, учитывая, что файл svg содержит всю информацию. Есть ли способ извлечь координаты из контуров или полигонов? или существует какой-либо другой более простой способ сделать этот процесс? Я буду очень признателен за любую помощь, потому что я должен сделать это около 30 изображений. CheersКак получить координаты пути из файла svg в R

+0

Ссылка на файл примера или способ его воссоздания сделают это намного проще. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

Ок, извините за то, что не дал файл svg, я скопировал его часть: –

+0

Я не знаю как прикрепить файл, у него много очков. Это всего лишь пример, мне нужно получить координаты из многоугольника, а затем координаты из текста. Я надеюсь, что это имеет смысл –

ответ

6

Вы можете использовать пакет 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 

Однако это игнорирует любое преобразование, применяемое к многоугольнику.

+0

Спасибо, что работает хорошо, я пытался сделать это с помощью пакета XML, но я не использовал htmlParse, поэтому я думаю, что это была проблема. –

Смежные вопросы