Wielokąty ładnie przycinają ggplot2 / ggmap przy różnych poziomach powiększenia

Bawię się zestawem danych przestrzennych (głównie wielokątów na obszarze miasta) i chciałbym stworzyć różne widoki, oparte na różnych poziomach zoomu. Wszystko jest w porządku, gdy mam pole granicy działki większe niż obszar zawierający wielokąty. Jednak przy powiększaniu niektóre wielokąty uzyskują części znajdujące się poza polem granicznym, a wynik dla tych wielokątów jest problematyczny: punkty wielokąta poza polem granicznym nie są wyświetlane, co powoduje, że wielokąty nie są przycinane w granicach pola granicznego ( zgodnie z oczekiwaniami), ale raczej nie są brane pod uwagę. wielokąty są niekompletne, a wielokąt łączy tylko punkty pozostające na wykresie (normalne zachowanie, ale nie pożądane).

dobry przykład wart całej dyskusji, oto demonstracja problemu:

#initialisation
library(ggmap)
require(MASS)

data(zips)

# overview
ggmap(get_map(maptype = "satellite", zoom = 8), extent = "device") +
        geom_polygon(aes(x = lon, y = lat, group = plotOrder),
                data = zips, colour = NA, fill = "red", alpha = .5) +
        geom_path(aes(x = lon, y = lat, group = plotOrder),
                data = zips, colour = "white", alpha = .7, size = .4)

# problematic view    
x11()
ggmap(get_map(maptype = "satellite", zoom = 12), extent = "device") +
        geom_polygon(aes(x = lon, y = lat, group = plotOrder),
                data = zips, colour = NA, fill = "red", alpha = .5) +
        geom_path(aes(x = lon, y = lat, group = plotOrder),
                data = zips, colour = "white", alpha = .7, size = .4)

czy znasz miłą technikę prawidłowego przycinania wielokątów na granicach pola granicznego wykresu? dzięki za pomoc

Pascal

questionAnswers(1)

yourAnswerToTheQuestion