Difference between revisions of "Opasnet map"
From Testiwiki
(organised and links added) |
(→Static GoogleMaps test: function reorganised) |
||
Line 222: | Line 222: | ||
library(OpasnetUtilsExt) | library(OpasnetUtilsExt) | ||
− | shp<-readOGR('PG:host=localhost user=postgres dbname=spatial_db','kuopio_house') | + | shp <- readOGR('PG:host=localhost user=postgres dbname=spatial_db','kuopio_house') |
− | plotvar<-shp@data$ika | + | #oprint(shp@data[1:100 , ]) |
− | nclr<-8 | + | |
− | + | plotvar <- shp@data$ika | |
− | + | nclr <- 8 | |
− | |||
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") | epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") | ||
− | proj4string(shp)<-("+init=epsg:3067") | + | proj4string(shp) <- ("+init=epsg:3067") |
− | shp2<-spTransform(shp,epsg4326String) | + | shp2 <- spTransform(shp,epsg4326String) |
− | # | + | |
− | mymarkers<- | + | # MyMap function without the "file destination" parameter |
+ | # Requires RgoogleMaps package | ||
+ | |||
+ | MyRmap <- function ( | ||
+ | shp2, # a spatial data object | ||
+ | # lonR, # longitude of data points | ||
+ | # latR, # latitude of data points | ||
+ | center, # center of the map | ||
+ | size = c(640, 480), # size of the map. This produces the right dimensions in Opasnet. | ||
+ | MINIMUMSIZE = FALSE, | ||
+ | RETURNIMAGE = TRUE, | ||
+ | GRAYSCALE = FALSE, | ||
+ | NEWMAP = TRUE, | ||
+ | zoom, | ||
+ | verbose = 1, | ||
+ | pch = 19, | ||
+ | cex = 0.3, | ||
+ | legend_title = "", | ||
+ | ... | ||
+ | ) { | ||
+ | plotclr <- brewer.pal(nclr,"Spectral") | ||
+ | class <- classIntervals(plotvar,nclr,style="quantile") | ||
+ | colcode <- findColours(class,plotclr) | ||
+ | |||
+ | latR <- shp2@coords[ , 2] | ||
+ | lonR <- shp2@coords[ , 1] | ||
+ | |||
+ | mymarkers <- data.frame( | ||
+ | lat = c(shp2@coords[,2]), | ||
+ | lon = c(shp2@coords[,1]), | ||
+ | color = colcode | ||
+ | ) | ||
+ | |||
+ | #get the bounding box: | ||
− | + | bb <- qbbox(lat = mymarkers[,"lat"], lon = mymarkers[,"lon"]) | |
− | bb <- qbbox(lat = mymarkers[,"lat"], lon = mymarkers[,"lon"]) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
if (missing(zoom)) | if (missing(zoom)) | ||
zoom <- min(MaxZoom(latR, lonR, size)) | zoom <- min(MaxZoom(latR, lonR, size)) | ||
Line 276: | Line 302: | ||
cat("new size: ", size, "\n") | cat("new size: ", size, "\n") | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | MyMap<- | + | MyMap <- GetMap( |
+ | center = c(lat.center, lon.center), | ||
+ | zoom = zoom, | ||
+ | size = size, | ||
+ | RETURNIMAGE = RETURNIMAGE, | ||
+ | GRAYSCALE = GRAYSCALE, | ||
+ | verbose = verbose, | ||
+ | ... | ||
+ | ) | ||
+ | |||
+ | PlotOnStaticMap(MyMap) | ||
+ | |||
+ | PlotOnStaticMap( | ||
+ | MyMap, | ||
+ | lat = mymarkers[,"lat"], | ||
+ | lon = mymarkers[,"lon"], | ||
+ | pch = pch, | ||
+ | cex = cex, | ||
+ | col = colcode, | ||
+ | add = T | ||
+ | ) | ||
− | + | legend( | |
+ | "topleft", | ||
+ | legend = names(attr(colcode, "table")), | ||
+ | title = legend_title, | ||
+ | fill = attr(colcode, "palette"), | ||
+ | cex = 1.0, | ||
+ | bty = "y", | ||
+ | bg = "white" | ||
+ | ) | ||
+ | } | ||
− | + | temp <- MyRmap(shp2, maptype = "mobile", legend_title = "Ikä") # bb$lonR, bb$latR | |
− | |||
</rcode> | </rcode> | ||
Revision as of 13:25, 23 December 2013
This page is a variable.
The page identifier is Op_en5490 |
---|
Moderator:Jouni (see all) |
This page is a stub. You may improve it into a full page, and then a rating bar will appear here. |
Upload data
|
Question
How should GIS data be handled and visualised in Opasnet?
Answer
- Original GIS data is stored in a PostgreSQL database.
- Data is accessed by R using the RGDAL package and ?? connection.
- Data in manipulated in R.
- Ovariables are converted to SpatialPointsDataFrame objects using ova2spat function.
- Data is displayed by producing a KML file with ?? package.
- The KML file is created with MyPointKML function, if pins are shown.
- The KML file is saved at the R-tools server.
- Google Maps is used to show the KML file on a web page.
Currently, ova2spat and MyPointKML functions are located in OpasnetUtils/Drafts. Therefore, you need this command:
objects.latest("Op_en6007", code_name = "answer") # OpasnetUtils/Drafts. We need MyPointsKML and ova2spat.
This is the projection that the National Land Survey Finland uses: [1].
Key guidance:
- rgdal package for R
- sp package for R: contains descriptions about the key spatial objects.
- Changing the coordinate system of Spatial objects
Rationale
All pieces of the puzzle exist already.
Dependencies
Calculations
Kuopio buildings with Google pin map
GoogleMaps Sorvi MML TEST
⇤#: Something wrong with sorvi. --Jouni (talk) 12:54, 23 December 2013 (EET)
Google with shapefiles
Google show data from url on map
Google circles
Static GoogleMaps test
See also
Keywords
References
Related files
<mfanonymousfilelist></mfanonymousfilelist>