Antonio
Antonio

Reputation: 1111

Zoom region that contains points on a map in R

The code below generates a map together with points that refer to the coordinates of some houses, but note that it is not possible to see the location of these houses very well. So, is there any way to improve this graph, making it possible, for example, to zoom the map closer to the region of the points?

Generate map

library(rgdal)
        
temp <- tempfile()
temp2 <- tempfile()
        download.file("https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2015/UFs/PR/pr_municipios.zip",temp)

      
unzip(zipfile = temp, exdir = temp2)
shp <- readOGR(temp2)
shp_subset <- shp[shp$NM_MUNICIP == "CASTRO",]
plot(shp_subset)

Generate Points

Points_properties<-structure(list(Latitude = c(-24.781624, -24.775017, -24.769196, 
    -24.761741, -24.752019, -24.748008, -24.737312, -24.744718, -24.751996, 
    -24.724589, -24.8004, -24.796899, -24.795041, -24.780501, -24.763376, 
    -24.801715, -24.728005, -24.737845, -24.743485, -24.742601, -24.766422, 
    -24.767525, -24.775631, -24.792703, -24.790994, -24.787275, -24.795902, 
    -24.785587, -24.787558, -24.799524), Longitude = c(-49.937369, 
    -49.950576, -49.927608, -49.92762, -49.920608, -49.927707, -49.922095, 
    -49.915438, -49.910843, -49.899478, -49.901775, -49.89364, -49.925657, 
    -49.893193, -49.94081, -49.911967, -49.893358, -49.903904, -49.906435, 
    -49.927951, -49.939603, -49.941541, -49.94455, -49.929797, -49.92141, 
    -49.915141, -49.91042, -49.904772, -49.894034, -49.86651)), row.names = c(NA, -30L), class = c("tbl_df", "tbl","data.frame"))

points(x = Points_properties$Longitude, y= Points_properties$Latitude, col = "black",pch = 16,cex=1)

Output enter image description here

Upvotes: 0

Views: 429

Answers (1)

Lucca Nielsen
Lucca Nielsen

Reputation: 1894

A possible solution is to use ggplot and sf package like this:

library(ggplot2)
library(sf)

ggplot() + 
  geom_sf(data = shp_subset, aes()) +
  geom_point(data = Points_properties, 
             aes(x = Longitude, y = Latitude))+
 coord_sf(xlim = c(min(Points_properties$Longitude)-0.1,
                    max(Points_properties$Longitude)+0.1),
          ylim = c(min(Points_properties$Latitude)-0.1,
                   max(Points_properties$Latitude)+0.1),
           expand = FALSE) +
  theme_bw()
    

enter image description here

Upvotes: 1

Related Questions