Description Usage Arguments Details Value Author(s) References Examples

The function generates a grid from pseudo mercator or web Mercator
(epsg:3857) projection system. It is recommended to use metrics projection
to preserve areas. First, transform mappol into web Mercator projection.
Then, the distances between the four coordinates given by the bounding box
are calculated and divided by resolution argument to determine the number
of cells per direction. Finally, `GridTopology`

is applied
to generate the coordinates that create the final object of class
`SpatialPolygonsDataFrame`

.

1 2 3 |

`mappol` |
A |

`keep.p4s` |
Logical. If |

`tol` |
Argument pass to |

`TP` |
Argument pass to |

`resolution` |
Double greater than 0. Units are in Km. Default |

`r.ceiling` |
Logical. If |

`g.int` |
Logical. If |

`pretty.int` |
Logical ( |

This function generates a grid from `SpatialPolygonsDataFrame`

object. The main steps are: projection system transformation, geometry
simplification, bounding box extraction, distance calculation,
calculation of cells per direction (Longitude, Latitude), grid
topology creation, class reassignment of grid topology into
`SpatialPolygons`

object and compute the intersected polygons between
grid and `mappol`

. Finally, the returned object is a
`SpatialPolygonsDataFrame`

object.

`spTransform`

(see `help(spTransform)`

for more details)
is applied for transformation of mappol into a metric projection
(by default web mercator, epsg:3857).

`gSimplify`

(see `help(gSimplify)`

for more details)
is applied for simplify geometry of transformed polygon in order
to reduce computation time and memory size.

`bbox`

(see `help(bbox)`

for more details) is applied to
extract the bounding box of the transformed and simplify `mappol`

.
`spDists`

(see `help(spDists)`

for more details) is applied
for distances calculation. `ceiling`

and
`floor`

is applied for rounding options.

`GridTopology`

(see `help(GridTopology)`

for more details)
is applied to generate the grid. Then, `as.SpatialPolygons.GridTopology`

is applied to transform the `GridTopology`

object into
`SpatialPolygonsDataFrame`

.

Finally, `gIntersects`

(see `help(gIntersects)`

for more details) is applied to extract the grid's cells that intersects
`mappol`

. `gContains`

and `gIntersection`

(see `help(gContains)`

and `help(gIntersection)`

for more details)
is applied to extract the grid's cells that intersects `mappol`

and generate
a pretty visualization. The latter method may require considerable computing time
depending on the number of coordinates contained in the `mappol`

polygon.

A `SpatialPolygonsDataFrame`

object. It includes all the polygons
that form the grid. Data slot contains the identifiers for each cells.

Enrique Del Callejo Canal ([email protected]), based on implemented algortihms in web platform SPECIES (see References).

http://species.conabio.gob.mx/

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | ```
library(sp)
library(rgeos)
library(rgdal)
library(raster)
data(Mex0)
# Whithout pretty intersection
# Default resolution is 20 km.
system.time(Mex0.grd<-grd_build(Mex0))
plot(Mex0.grd)
plot(Mex0, add = TRUE)
# ggplot2 interaction
library(ggplot2)
library(mapproj)
ggplot(data = fortify(Mex0.grd), aes(x = long, y = lat, group = group)) +
geom_polygon(colour = "white") +
coord_quickmap()
# leaflet interaction
library(leaflet)
leaflet() %>%
addProviderTiles('OpenStreetMap.Mapnik',
options = providerTileOptions(noWrap = TRUE))%>%
addPolygons(data=Mex0.grd, stroke=TRUE, color = '#FFFFFF',
layerId = Mex0.grd@data$ID, weight = 1, opacity = 0.3,
fillColor = '#A9A9A9', fillOpacity = 0.6,
popup = row.names(Mex0.grd@data))
# With Pretty options
system.time(Mex0.grd.p<-grd_build(Mex0, pretty.int=TRUE))
plot(Mex0.grd.p)
# ggplot2 interaction
ggplot(data = fortify(Mex0.grd.p), aes(x = long, y = lat, group = group)) +
geom_polygon(colour = "white") +
coord_map(projection = "mercator")
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.