--
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

Reply via email to