-- Micha Silvercell: +972-523-665918 On Sunday, 13 July 2025 at 15:41, Gabriel Cotlier <[email protected]> wrote:
> Yes is correct. Using CRS 3587 would correct this distortion? > Thanks a lot. I don't think so Check here: https://epsg.io/3857 If it's important to keep distances accurate, you should look for an equidistant projection for your area. Maps of Europe are typically projected to EPSG:3035 which is equal area, not equidistant, but it's pretty close, and widely accepted. > On Sun, Jul 13, 2025 at 5:48 AM Micha Silver > <[[email protected]](mailto:micha_silver%[email protected])> wrote: > >> -- >> Micha Silvercell: +972-523-665918 >> >>> On Saturday, 12 July 2025 at 23:35, Gabriel Cotlier <[email protected]> >>> wrote: >>> >>> Dear Micha, >>> Thank you very much for the tip. I worked out, but I am concerned about the >>> warning that appears: >> >> I assume that is because you are using WGS84 long/lat. So there is a >> difference in distances E-W vs N-S. For example, in S. Spain 1 degree N-S is >> about 110 km while 1 degree E-W is about 90 km. >> >>> Scale on map varies by more than 10%, scale bar may be inaccurate >> >> On Sat, Jul 12, 2025 at 5:01 PM Micha Silver >> <[[email protected]](mailto:micha_silver%[email protected])> wrote: >> >>> -- >>> Micha Silver >>> cell: +972-523-665918 >>> >>> On Saturday, 12 July 2025 at 16:47, Gabriel Cotlier <[email protected]> >>> wrote: >>> >>>> Hello, >>>> I would like to ask for help to add a scale bar to the following map below. >>>> Thanks a lot in advance. >>>> Kind regards, >>>> Gabriel >>> >>> You might consider the `ggspatial` package that has a function: >>> `annotation_scale()` >>> >>> https://paleolimbot.github.io/ggspatial/reference/annotation_scale.html >>> >>>> >>>> library(ggplot2) >>>> library(sf) >>>> library(rnaturalearth) >>>> library(rnaturalearthdata) >>>> >>>> # Get world map data >>>> world <- ne_countries(scale = "medium", returnclass = "sf") >>>> >>>> # Define the bounding box for Europe >>>> europe_extent <- st_bbox(c(xmin = -12, xmax = 35, ymin = 30, ymax = 72), >>>> crs = st_crs(4326)) >>>> >>>> # Filter for Europe, then for Italy and Iberian Peninsula >>>> europe <- st_crop(world, europe_extent) >>>> italy_and_iberian <- europe[europe$name %in% c("Spain", "Portugal", >>>> "Italy"),] >>>> >>>> # Load another shapefile >>>> # Replace "path/to/your/shapefile.shp" >>>> A <- st_read("path/to/your/shapefile1.shp" ) >>>> B <- st_read("path/to/your/shapefile2.shp" ) >>>> sq1 <- st_read("path/to/your/shapefile3.shp" ) >>>> sq2 <- st_read("path/to/your/shapefile4.shp" ) >>>> >>>> # Plot the map with the added shapefile >>>> ggplot(data = europe) + >>>> geom_sf(fill = "lightgray") + # Background map >>>> geom_sf(data = italy_and_iberian, fill = "skyblue") + # Highlighted areas >>>> geom_sf(data = A, fill = "lightgreen") + # Added shapefile >>>> geom_sf(data = B, fill = "lightblue") + # Added shapefile >>>> geom_sf(data = sq1, fill =NA, color="red", lwd=0.5) + # Added shapefile >>>> geom_sf(data = sq2, fill=NA, color ="red", lwd=0.5) + # Added shapefile >>>> coord_sf(xlim = c(-12, 35), ylim = c(30, 72), expand = FALSE) + # Set map >>>> boundaries. >>>> theme_bw() + >>>> labs(title = "Italian, Iberian in Europe") >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> _______________________________________________ >>>> R-sig-Geo mailing list >>>> [email protected] >>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-geo
