R maptools или пакет rgdal - как заполнить внешнюю часть многоугольника? - PullRequest
1 голос
/ 10 марта 2012

Я пытаюсь нанести шейп-файл из полигонов поверх другого шейп-файла, который уже имеет цветные полигоны, используя R, и я работаю с maptools и rgdal. Я хочу обрезать нижний шейп-файл (который имеет несколько полигонов) в области, ограниченной верхним шейп-файлом, который имеет четыре полигона (я думаю). Конечно, я знаю, как заполнить внутреннюю часть верхнего полигона, используя команду col = в plot (). Но то, что я хочу сделать, это заполнить внешнюю часть верхнего многоугольника белым и оставить видимые нижние цветные многоугольники внутри внутренних верхних многоугольников. Я буду перерисовывать границы нижних полигонов после того, как смогу это сделать. Я использую R 2.13.2 и последние выпуски maptools и rgdal и все их зависимости на компьютере с Windows 7.

У меня есть код, который зависит от этих шейп-файлов: FTP: //ftpext.usgs.gov/pub/er/wi/la.crosse/McKann/bcr%20arcinfo%20files/

library(maptools)

sm=readShapeSpatial('states.shp')
pm=readShapeSpatial('province.shp')

library(rgdal)

rgm=readOGR(dsn=wd,layer='gwwa_new_range_5Jul11')
rgm2=spTransform(rgm,CRS(proj4string(sm2)))
plot(c(-120,-61),c(35,55),type='n',axes=F,bty='n',xlab='',ylab='', main=sp)
plot(sm,col=c('red','green','yellow'),add=T)##us states
plot(pm,col=c('red','green','yellow'),add=T)##canadian provinces
plot(rgm2,lwd=2,add=T,border='blue')##gives the range of this bird

Я могу сделать внутри карты диапазона цвет

plot(rgm2,add=T,col='blue')

но я хочу сделать белый цвет снаружи (чтобы впоследствии я мог нарисовать штаты и границы провинций) и сохранить прозрачность внутренней части, чтобы я мог видеть цвета штатов и провинций в пределах диапазона.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация и заранее спасибо за любую помощь. Может быть, есть более простой способ ...

...