Im einfachen lat langen Projektion Sie verwenden, sind Entfernungen mit der geographischen Breite verzerrt, immer progressiv gestreckt, wie sie an den Polen näher. An den Polen ist ein einzelner Punkt auf die volle Breite der rechteckigen Karte ausgestreckt. Daher wird nicht empfohlen, Maßstabsleisten auf solchen Karten zu verwenden, da deren Größe nur auf einem bestimmten Breitengrad korrekt ist und überall auf der Karte irreführend ist. Wir können dies in Aktion sehen, indem eine Reihe von Skalenstrichen in verschiedenen Breiten aufgetragen, zu zeigen, wie sie in der Größe variieren:
ggplot() +
geom_path(data = map_data("world"), aes(long, lat, group = group), color = "grey80") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = -80, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = -60, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = -40, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = -20, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = 0, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = 20, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = 40, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = 60, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
scalebar(dist = 1000, dd2km = TRUE, model = "WGS84", y.min = 80, y.max = 90, x.min = -180, x.max = 180, st.size = 2, location = "bottomright") +
theme_void()
Aus diesem Grunde ist es in der Regel empfohlen, eine graticule zu verwenden, eher als Maßstabsbalken auf kleinen globalen Karten.
ggplot() +
geom_path(data = map_data("world"), aes(long, lat, group = group), color = "black") +
scale_x_continuous(breaks = (-9:9)*20) +
scale_y_continuous(breaks = (-9:9)*10) +
theme_bw() +
theme(panel.grid.major = element_line(colour = 'grey50', size = 0.3, linetype = 3))
Wenn Sie wirklich eine Maßstabsleiste verwenden möchten, sollten Sie zunächst Ihre Daten (mit spTransform
) zu einem gleichen flächigen Projektion neu projizieren, für die Abstände nur minimal verzerrt oder überhaupt nicht .
Ein Maßstab Balken ist ziemlich bedeutungslos auf einer globalen Karte in lat-long-Projektion gezeichnet, weil Entfernungen stark mit dem Breitengrad verzerrt sind. besser wäre es, ein Raster zu zeichnen, was die bevorzugte Methode für solche Karten ist. Wenn Sie wirklich eine Maßstabsleiste wünschen, verwenden Sie eine Projektion, die Distanzen eng beibehält. siehe z.B. https://en.wikipedia.org/wiki/List_of_map_projections – dww
auch relevant: https://blogs.esri.com/esri/arcgis/2010/04/21/back-to-the-issue-of-scale-bars/ – dww
Ja, darum habe ich auch das Beispiel Afrika entlang des Äquators mit einbezogen - auch hier scheint die Entfernung nicht zu stimmen. –