Como plotar gráfico de barras no mapa ggplot2 [duplicado]

Esta pergunta já tem uma resposta aqui:

Traçando gráficos de barras no mapa usando ggplot2? 1 resposta

Encontrei respostas semelhantes para perguntas como esta, mas a maioria delas usa pacotesrworldmap, ggmap, ggsubplot ougeom_subplot2d. Veja por exemploaqui ouaqui.

Gostaria de saber como posso plotar outros objetos ggplot, como um gráfico de barras em um mapa, criado a partir de um shapefile. O que eu estou usando pode ser baixadoaqui.

EDITAR

Como o @beetroot apontou corretamente, o novo arquivo que pode ser baixado no link postado acima mudou significativamente. Portanto, os nomes do shapefile etc. são ajustados.

library(rgdal)
library(ggplot2)
library(rgeos)
library(maptools)

map.det<- readOGR(dsn="<path to your directory>/swissBOUNDARIES3D100216/swissBOUNDARIES3D/V200/SHAPEFILE_LV03", layer="VECTOR200_KANTONSGEBIET")
map.kt <- map.det[map.det@data$KANTONSNUM=="CH01000000"|map.det@data$KANTONSNUM=="CH19000000",]


#get centroids
map.test.centroids <- gCentroid(map.kt, byid=T)
map.test.centroids <- as.data.frame(map.test.centroids)
map.test.centroids$KANTONSNR <- row.names(map.test.centroids)

#create df for ggplot
kt_geom <- fortify(map.kt, region="KANTONSNUM")

#Plot map
map.test <- ggplot(NULL)+
        geom_polygon(data=kt_geom, aes(long, lat, group=group), fill="white")+
        coord_fixed()+
        geom_path(data=kt_geom, color="gray48", mapping=aes(long, lat, group=group), size=0.2)+
        geom_point(data=map.test.centroids, aes(x=x, y=y), size=9, alpha=6/10)

mapp

Isso resulta em um mapa desse tipo. Por enquanto, tudo bem.

No entanto, estou tendo dificuldades para combinar duas parcelas, como o mapamap.test e, por exemplo, este:

geo_data <- data.frame(who=rep(c(1:2), each=2),
                   value=as.numeric(sample(1:100, 4, replace=T)),
                   KANTONSNR=rep(c(1,19), 2))

bar.testplot <- ggplot()+
     geom_bar(data=geo_data, aes(factor(id),value,group=who),position='dodge',stat='identity')

Os gráficos de barras devem estar no centro dos dois polígonos, ou seja, onde estão os dois pontos. Eu poderia produzir os gráficos de barras e plotá-los no mapa separadamente, se isso facilitar as coisas.

questionAnswers(1)

yourAnswerToTheQuestion