Wikisym 2012 Demo: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 32: | Line 32: | ||
== | == Points on dynamic Google Maps == | ||
This examples plots buildings of Kuopio on Google Maps. User can give the minimum age of buildings to plot as an input parameter. | This examples plots buildings of Kuopio on Google Maps. User can give the minimum age of buildings to plot as an input parameter. | ||
Line 120: | Line 120: | ||
google.show_kml_data_on_maps(data) | google.show_kml_data_on_maps(data) | ||
</rcode> | |||
== Large quantity of points on a static Google Maps == | |||
This example plots large number of point data on static Google Maps. The map produced in this example shows the age (in years) distribution of properites within Kuopio. User can select the number of age classes (4,6 or 8) and the type of classification. | |||
<rcode name='static_gmaps_test' | |||
graphics='1' | |||
Variables="name:myclasses|description:Number of classes|type:selection|options:'4';4;'6';6;'8';8|default:'8'| | |||
name:classtype|description:Type of classification|type:selection|options:'equal';Equal Int;'quantile';Quantile;'sd';Standard deviation;'jenks';Jenks|default:'quantile' | |||
" | |||
> | |||
#code goes here | |||
library(RgoogleMaps) | |||
library(rgdal) | |||
library(maptools) | |||
library(RColorBrewer) | |||
library(classInt) | |||
library(OpasnetBaseUtils) | |||
shp<-readOGR('PG:host=localhost user=postgres dbname=spatial_db','kuopio_house') | |||
plotvar<-shp@data$ika | |||
nclr<-myclasses | |||
plotclr<-brewer.pal(nclr,"Spectral") | |||
class<-classIntervals(plotvar,nclr,style=classtype) | |||
colcode<-findColours(class,plotclr) | |||
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") | |||
proj4string(shp)<-("+init=epsg:3067") | |||
shp2<-spTransform(shp,epsg4326String) | |||
#get marker information for all points | |||
mymarkers<-cbind.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"]) | |||
#MyMap function without the "file destination" parameter | |||
MyRmap<-function (lonR, latR, center, size = c(640, 640), | |||
MINIMUMSIZE = FALSE, RETURNIMAGE = TRUE, GRAYSCALE = FALSE, | |||
NEWMAP = TRUE, zoom, verbose = 1, ...) | |||
{ | |||
if (missing(zoom)) | |||
zoom <- min(MaxZoom(latR, lonR, size)) | |||
if (missing(center)) { | |||
lat.center <- mean(latR) | |||
lon.center <- mean(lonR) | |||
} | |||
else { | |||
lat.center <- center[1] | |||
lon.center <- center[2] | |||
} | |||
if (MINIMUMSIZE) { | |||
ll <- LatLon2XY(latR[1], lonR[1], zoom) | |||
ur <- LatLon2XY(latR[2], lonR[2], zoom) | |||
cr <- LatLon2XY(lat.center, lon.center, zoom) | |||
ll.Rcoords <- Tile2R(ll, cr) | |||
ur.Rcoords <- Tile2R(ur, cr) | |||
if (verbose > 1) { | |||
cat("ll:") | |||
print(ll) | |||
print(ll.Rcoords) | |||
cat("ur:") | |||
print(ur) | |||
print(ur.Rcoords) | |||
cat("cr:") | |||
print(cr) | |||
} | |||
size[1] <- 2 * max(c(ceiling(abs(ll.Rcoords$X)), ceiling(abs(ur.Rcoords$X)))) + | |||
1 | |||
size[2] <- 2 * max(c(ceiling(abs(ll.Rcoords$Y)), ceiling(abs(ur.Rcoords$Y)))) + | |||
1 | |||
if (verbose) | |||
cat("new size: ", size, "\n") | |||
} | |||
return(google.get_map(center = c(lat.center, lon.center), zoom = zoom, | |||
size = size, RETURNIMAGE = RETURNIMAGE, | |||
GRAYSCALE = GRAYSCALE, verbose = verbose, ...)) | |||
} | |||
MyMap<-MyRmap(bb$lonR,bb$latR,maptype="mobile",scale="2") | |||
PlotOnStaticMap(MyMap,size=c(640,640)) | |||
PlotOnStaticMap(MyMap,size=c(640,640),lat=mymarkers[,"lat"],lon=mymarkers[,"lon"],pch=19,cex=0.3,col=colcode,add=T) | |||
legend("topleft", legend=names(attr(colcode, "table")),title="Building Age (Yr)", fill=attr(colcode, "palette"), cex=1.0, bty="y",bg="white") | |||
</rcode> | </rcode> |
Revision as of 11:05, 21 August 2012
Polygons on dynamic Google Maps
This example plots municipalities of Finland on Google Maps using data from National Land Survey of Finland.
Points on dynamic Google Maps
This examples plots buildings of Kuopio on Google Maps. User can give the minimum age of buildings to plot as an input parameter.
Large quantity of points on a static Google Maps
This example plots large number of point data on static Google Maps. The map produced in this example shows the age (in years) distribution of properites within Kuopio. User can select the number of age classes (4,6 or 8) and the type of classification.