Эта проблема возникает, когда на улице много ветвей, так как geom_path()
будет просто связывать каждые две последовательные точки прямой линией.
Давайте возьмем «Рейхсбанштрассе» в качестве примера:
lon <- df %>% filter(street == "Reichsbahnstraße") %>% .$lon
lat <- df %>% filter(street == "Reichsbahnstraße") %>% .$lat
lat[1] == lat[41] & lon[1] == lon[41]
# returns TRUE
geom_path()
начинается с точки 1 (точка пересечения, см. Ниже), рисует одну часть улицы (идет на северо-восток), а затем снова возвращается к точке пересечения (индекс 41), чтобы нарисовать следующую филиал.
Чтобы избежать этого, вы можете вернуться к точке пересечения по той же дороге, прежде чем рисовать другую ветку (например, вместо c(7, 8, 9, 10, 7, 6)
do c(7, 8, 9, 10, 9, 8, 7, 6)
). Вроде того, что вы бы сделали, если бы вы пытались нарисовать улицу карандашом, не снимая ее с листа бумаги.