knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "README-" )
Rpostgis
provides simple access to PostgreSQL/PostGIS spatial databases
without the need to build the rgdal
packages from source (pre-built binaries
on CRAN are not built against the PostgreSQL/PostGIS libraries). Initially,
the focus of this package is on reading and writing data, but further
development for various spatial functions could be considered.
library(RPostgreSQL) library(sp) library(rgdal) library(Rpostgis) # username, password and database IP stored # within .Rprofile as options pg_usr <- getOption('pg_usr') pg_pwd <- getOption('pg_pwd') pg_ip <- getOption('pg_ip') # create the string to use for connecting via rgdal pg_string <- paste('PG:dbname=pg', 'host=',pg_ip, 'user=',pg_usr, 'password=',pg_pwd) # create connection via RPostgreSQL con = RPostgreSQL::dbConnect( dbDriver("PostgreSQL"), dbname="pg", host=pg_ip, port="5432", user=pg_usr, password=pg_pwd ) # load the meuse dataset from the sp package data(meuse) coordinates(meuse) <- ~x+y proj4string(meuse) <- CRS("+init=epsg:28992") # save the meuse dataset to PostgreSQL/PostGIS via rgdal # (dbWriteSpatial function still not complete) rgdal::writeOGR(meuse, pg_string, layer="meuse", driver="PostgreSQL", layer_options = c("geometry_name=geom","fid=objectid") ) # now lets read it back, but using dbReadSpatial instead of rgdal meuse.out <- Rpostgis::dbReadSpatial(con,schemaname="public",tablename="meuse", geomcol="geom",idcol="objectid")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.