[R-sig-Geo] Map layer

Fernando Miguez miguez at illinois.edu
Thu Aug 14 14:02:17 CEST 2008


Hi Paul and Roger,

Thanks so much for your help. I will definitely like to attend the next 
useR! conference!

Fernando

Roger Bivand wrote:
> On Thu, 14 Aug 2008, Paul Hiemstra wrote:
> 
>> Hi Fernando,
>>
>> If you use the sp classes for spatial data you can use the spplot 
>> function to make very nice plots. See 
>> http://cran.r-project.org/doc/Rnews/Rnews_2005-2.pdf for more 
>> information on sp. See 
>> http://wiki.r-project.org/rwiki/doku.php?id=tips:spatial-data:import_export 
>> for information on how to import your data into sp-classes.
>>
>> In regard to your problem with the points outside the map. If your 
>> data is stored in sp objects you can use the overlay() function from 
>> the sp-package to determine which points are outside the polygon, see 
>> ?overlay for more details. Those points can be deleted from the 
>> sp-object and they will not appear in the plot.
> 
> In fact, there was a bug in the interface function map2SpatialPolygons() 
> in the maptools package - it failed for map objects with only one closed 
> polygon. From 0.7-15 (submitted to CRAN, may take a little while because 
> both Kurt Hornik (CRAN) and Uwe Ligges (Windows binary packages) are at 
> the excellent useR! conference in Dortmund - I am too), this works:
> 
> library(maps)
> library(sp)
> library(maptools)
> ill <- map('state','illinois', plot=FALSE, fill=TRUE)
> ill_SP <- map2SpatialPolygons(ill, IDs=ill$names,
>   proj4string=CRS("+proj=longlat"))
> plot(ill_SP)
> # next two lines to generate some random points on the bounding
> # box of Illinois
> SG <- Sobj_SpatialGrid(ill_SP)$SG
> pts <- spsample(SG, n=500, type="random")
> plot(pts, add=TRUE)
> o <- overlay(pts, ill_SP)
> plot(pts[!is.na(o),], col="red", add=TRUE)
> 
> Hope this helps,
> 
> Roger
> 
> PS. The useR conference has lots of excellent talks, and surprisingly 
> many are spatial. Next year's conference will be in Rennes, France, and 
> in 2010, it will probably be in North America.
> 
>>
>> hth,
>>
>> Paul
>>
>> Fernando Miguez wrote:
>>>  Hi all,
>>>
>>>  I would like to be able to do the following
>>>
>>>  map('state','illinois')
>>>  points(x,y)
>>>
>>>  Up to this point everything is fine. However, some of the points fall
>>>  outside the Illinois map boundaries. What I would like to do is to 
>>> add a
>>>  layer where the inside of the Illinois polygon is transparent (so 
>>> that the
>>>  points can be seen) but the points outside the boundary are covered so
>>>  they are not seen. I thought that using some variation of map with its
>>>  arguments would work, but I haven't been able to figure it out. I 
>>> see that
>>>  it is quite possible that I'm using the wrong tools all together ... 
>>> let
>>>  me know.
>>>
>>>  Any help is appreciated. Thanks.
>>>
>>>  Fernando
>>>
>>
>>
>>
> 

-- 
Fernando E. Miguez
Energy Biosciences Institute
http://netfiles.uiuc.edu/miguez/www/




More information about the R-sig-Geo mailing list