Site coordinates on the map

I'm trying to plot my coordinates with R. I already tried following another message ( R: group grouped coordinates on a world map ; Plotting the coordinates of several points on a google map in R ), but I'm not very good at my data.

I am trying to create a flat world map with gps coordinate as colored dots (each area has a specific color):

area lat long Agullhas -38,31 40,96 Polar -57,59 76,51 Tasmanian -39,47 108,93 library(RgoogleMaps) lat <- c(-38.31, -35.50) #define our map ylim lon <- c(40.96,37.50) #define our map xlim center = c(mean(lat), mean(lon)) #tell what point to center on zoom <- 2 #zoom: 1 = furthest out (entire globe), larger numbers = closer in terrmap <- GetMap(center=center, zoom=zoom, maptype= "satallite", destfile = "satallite.png") 

the problem is that now I don’t know how to add my glasses, and I will like one color for each region.

Can someone help me move forward?

another option i tried:

 library(maps) library(mapdata) library(maptools) map(database= "world", ylim=c(-38.31, -35.5), xlim=c(40.96, 37.5), col="grey80", fill=TRUE, projection="gilbert", orientation= c(90,0,225)) lon <- c(-38.31, -35.5) #fake longitude vector lat <- c(40.96, 37.5) #fake latitude vector coord <- mapproject(lon, lat, proj="gilbert", orientation=c(90, 0, 225)) #convert points to projected lat/long points(coord, pch=20, cex=1.2, col="red") #plot converted points 

but the coordinates end in the wrong position and I'm not sure why

Hope someone can help

+26
source share
3 answers

As an alternative to RgoogleMaps you can also use a combination of ggplot2 with ggmap .

With this code:

 # loading the required packages library(ggplot2) library(ggmap) # creating a sample data.frame with your lat/lon points lon <- c(-38.31,-35.5) lat <- c(40.96, 37.5) df <- as.data.frame(cbind(lon,lat)) # getting the map mapgilbert <- get_map(location = c(lon = mean(df$lon), lat = mean(df$lat)), zoom = 4, maptype = "satellite", scale = 2) # plotting the map with some points on it ggmap(mapgilbert) + geom_point(data = df, aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 5, shape = 21) + guides(fill=FALSE, alpha=FALSE, size=FALSE) 

you will get this result: enter image description here

+45
source

Another alternative is the plotGoogleMaps package, which allows you to display in the navigator, allowing you to zoom in and out, etc. You can then take a screenshot of your picture to save it (although remember that Google maps are legally for use on the Internet).

  library("plotGoogleMaps") lat <- c(-38.31, -35.50) #define our map ylim lon <- c(40.96,37.50) #define our map xlim # make your coordinates a data frame coords <- as.data.frame(cbind(lon=lon,lat=lat)) # make it a spatial object by defining its coordinates in a reference system coordinates(coords) <- ~lat+lon # you also need a reference system, the following should be a fine default proj4string(coords) <- CRS("+init=epsg:4326") # Note: it is a short for: CRS("+init=epsg:4326") > CRS arguments: > +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 # then just plot a <- plotGoogleMaps(coords) # here `a <-` avoids that you get flooded by the html version of what you plot 

And you will get: enter image description here

+3
source

Here is a solution using only Rgooglemaps, at the request of the user.

 # get map (from askers OP, except changed map type = "Satallite" to type = "Satellite") library(RgoogleMaps) lat <- c(-38.31, -35.50) #define our map ylim lon <- c(40.96,37.50) #define our map xlim center = c(mean(lat), mean(lon)) #tell what point to center on zoom <- 2 #zoom: 1 = furthest out (entire globe), larger numbers = closer in terrmap <- GetMap(center=center, zoom=zoom, type= "satellite", destfile = "satellite.png") # plot points and save image lat <- c(-38.31, -57.59, -39.47) lon <- c(40.96, 76.51, 108.93) png('map.png') PlotOnStaticMap(terrmap, lat = lat, lon = lon, pch = 20, col = c('red', 'blue', 'green')) dev.off() 

enter image description here

0
source

Source: https://habr.com/ru/post/1263422/


All Articles