Nothing
plot_oursins <-
function(data,fondMaille,fondSousAnalyse=NULL,fondSurAnalyse=NULL,idDataDepart,idDataArrivee,varFlux,filtreVol=0,filtreDist=100,filtreMajeurs=10,decalageAllerRetour=0,decalageCentroid=0,titreCarte="",sourceCarte="",etiquettes=NULL,epaisseur=2,colTrait="black",colBorderMaille="black",xlim=NULL,ylim=NULL)
{
options("stringsAsFactors"=FALSE)
# Verification des parametres
msg_error1<-msg_error2<-msg_error3<-msg_error4<-msg_error5<-msg_error6<-msg_error7<-msg_error8<-msg_error9<-msg_error10<-msg_error11<-msg_error12<-msg_error13<-msg_error14<-msg_error15<-msg_error16<-msg_error17<-msg_error18<-msg_error19<-msg_error20<-msg_error21<-msg_error22<-msg_error23<-msg_error24<-msg_error25 <- NULL
if(any(class(data)!="data.frame")) msg_error1 <- "Les donnees doivent etre dans un data.frame / "
if(any(!any(class(fondMaille) %in% "sf"),!any(class(fondMaille) %in% "data.frame"))) msg_error2 <- "Le fond de maille doit etre un objet sf / "
if(!is.null(fondSousAnalyse)) if(any(!any(class(fondSousAnalyse[[1]]) %in% "sf"),!any(class(fondSousAnalyse[[1]]) %in% "data.frame"))) msg_error3 <- "Les fonds a positionner en-dessous de l'analyse doivent etre une liste d'objets sf / "
if(!is.null(fondSurAnalyse)) if(any(!any(class(fondSurAnalyse[[1]]) %in% "sf"),!any(class(fondSurAnalyse[[1]]) %in% "data.frame"))) msg_error4 <- "Les fonds a positionner au-dessus de l'analyse doivent etre une liste d'objets sf / "
if(any(class(idDataDepart)!="character")) msg_error5 <- "Le nom de la variable doit etre de type caractere / "
if(any(class(idDataArrivee)!="character")) msg_error6 <- "Le nom de la variable doit etre de type caractere / "
if(any(class(varFlux)!="character")) msg_error7 <- "Le nom de la variable doit etre de type caractere / "
if(any(class(filtreVol)!="numeric")) msg_error8 <- "Le filtre doit etre de type numerique / "
if(any(class(filtreDist)!="numeric")) msg_error9 <- "Le filtre doit etre de type numerique / "
if(any(class(filtreMajeurs)!="numeric")) msg_error10 <- "Le filtre doit etre de type numerique / "
if(any(class(decalageAllerRetour)!="numeric")) msg_error11 <- "La variable decalageAllerRetour doit etre de type numerique / "
if(any(class(decalageCentroid)!="numeric")) msg_error12 <- "La variable decalageCentroid doit etre de type numerique / "
if(any(class(titreCarte)!="character")) msg_error13 <- "Le titre de la carte doit etre de type caractere / "
if(any(class(sourceCarte)!="character")) msg_error14 <- "La source de la carte doit etre de type caractere / "
if(!is.null(etiquettes)) if(!any(class(etiquettes) %in% "character" | class(etiquettes) %in% "data.frame")) msg_error15 <- "La table des etiquettes peut etre soit un vecteur caractere soit un data.frame (voir aide) / "
if(any(class(epaisseur)!="numeric")) msg_error16 <- "L'epaisseur du trait doit etre de type numerique / "
if(any(class(colTrait)!="character")) msg_error17 <- "La couleur du trait doit etre de type caractere (nommee ou hexadecimal) / "
if(any(class(colBorderMaille)!="character")) msg_error18 <- "La couleur de la bordure doit etre de type caractere (nommee ou hexadecimal) / "
if(!is.null(xlim)) if(any(class(xlim)!="numeric")) msg_error19 <- "La variable xlim doit etre de type numerique / "
if(!is.null(ylim)) if(any(class(ylim)!="numeric")) msg_error20 <- "La variable yim doit etre de type numerique / "
if(length(names(data))<3) msg_error21 <- "Le tableau des donnees n'est pas conforme. Il doit contenir au minimum une variable de depart, une variable d'arrivee et la variable a representer / "
if(length(names(fondMaille))<3) msg_error22 <- "Le fond de maille n'est pas conforme. La table doit contenir au minimum une variable identifiant, une variable libelle et la geometry / "
if(!any(names(data) %in% idDataDepart)) msg_error23 <- "La variable de depart n'existe pas dans la table des donnees / "
if(!any(names(data) %in% idDataArrivee)) msg_error24 <- "La variable d'arrivee n'existe pas dans la table des donnees / "
if(!any(names(data) %in% varFlux)) msg_error25 <- "La variable a representer n'existe pas dans la table des donnees / "
if(any(!is.null(msg_error1),!is.null(msg_error2),!is.null(msg_error3),!is.null(msg_error4),
!is.null(msg_error5),!is.null(msg_error6),!is.null(msg_error7),!is.null(msg_error8),
!is.null(msg_error9),!is.null(msg_error10),!is.null(msg_error11),!is.null(msg_error12),
!is.null(msg_error13),!is.null(msg_error14),!is.null(msg_error15),!is.null(msg_error16),
!is.null(msg_error17),!is.null(msg_error18),!is.null(msg_error19),!is.null(msg_error20),
!is.null(msg_error21),!is.null(msg_error22),!is.null(msg_error23),!is.null(msg_error24),!is.null(msg_error25)))
{
stop(simpleError(paste0(msg_error1,msg_error2,msg_error3,msg_error4,msg_error5,msg_error6,msg_error7,msg_error8,
msg_error9,msg_error10,msg_error11,msg_error12,msg_error13,msg_error14,msg_error15,
msg_error16,msg_error17,msg_error18,msg_error19,msg_error20,msg_error21,msg_error22,msg_error23,msg_error24,msg_error25)))
}
names(data)[names(data)==idDataDepart] <- "CODE1"
names(data)[names(data)==idDataArrivee] <- "CODE2"
names(fondMaille)[1] <- "CODE"
names(fondMaille)[2] <- "LIBELLE"
if(!is.null(fondSousAnalyse))
{
for(i in 1:length(fondSousAnalyse))
{
names(fondSousAnalyse[[i]])[1] <- "CODE"
names(fondSousAnalyse[[i]])[2] <- "LIBELLE"
if(any(Encoding(fondSousAnalyse[[i]]$LIBELLE) %in% "latin1")){
fondSousAnalyse[[i]]$LIBELLE<-iconv(fondSousAnalyse[[i]]$LIBELLE,"latin1","UTF-8")
}
}
}
if(!is.null(fondSurAnalyse))
{
for(i in 1:length(fondSurAnalyse))
{
names(fondSurAnalyse[[i]])[1] <- "CODE"
names(fondSurAnalyse[[i]])[2] <- "LIBELLE"
if(any(Encoding(fondSurAnalyse[[i]]$LIBELLE) %in% "latin1")){
fondSurAnalyse[[i]]$LIBELLE<-iconv(fondSurAnalyse[[i]]$LIBELLE,"latin1","UTF-8")
}
}
}
if(any(Encoding(fondMaille$LIBELLE) %in% "latin1")){
fondMaille$LIBELLE<-iconv(fondMaille$LIBELLE,"latin1","UTF-8")
}
if(titreCarte!="")
{
if(any(Encoding(titreCarte) %in% "latin1")){
titreCarte<-iconv(titreCarte,"latin1","UTF-8")
}
}
if(sourceCarte!="")
{
if(any(Encoding(sourceCarte) %in% "latin1")){
sourceCarte<-iconv(sourceCarte,"latin1","UTF-8")
}
}
# Analyse
data <- data[data$CODE1!=data$CODE2,]
analyse<-k_oursins(fondMaille,names(fondMaille)[1],data,"CODE1","CODE2",varFlux,decalageAllerRetour,decalageCentroid)
if(filtreMajeurs>nrow(analyse[[1]]))
{
nb_flux_majeur <- nrow(analyse[[1]])
}else
{
nb_flux_majeur <- filtreMajeurs
if(nb_flux_majeur<1) nb_flux_majeur <- 1
}
analyse_list <- split(analyse[[1]],factor(analyse[[1]]$CODE1))
analyse_1 <- data.frame()
aa <- lapply(1:length(analyse_list), function(x) analyse_1 <<- rbind(analyse_1,as.data.frame(analyse_list[[x]])[rev(order(as.data.frame(analyse_list[[x]])[,varFlux]))[c(1:nb_flux_majeur)],]))
analyse_1 <- analyse_1[!is.na(analyse_1[,varFlux]),]
analyse_list <- split(analyse[[1]],factor(analyse[[1]]$CODE2))
analyse_2 <- data.frame()
aa <- lapply(1:length(analyse_list), function(x) analyse_2 <<- rbind(analyse_2,as.data.frame(analyse_list[[x]])[rev(order(as.data.frame(analyse_list[[x]])[,varFlux]))[c(1:nb_flux_majeur)],]))
analyse_2 <- analyse_2[!is.na(analyse_2[,varFlux]),]
fond_oursins <- unique(rbind(analyse_1,analyse_2))
fond_oursins <- st_as_sf(fond_oursins)
fond_oursins <- fond_oursins[as.vector(st_length(fond_oursins))<=filtreDist*1000,]
fond_oursins <- fond_oursins[as.data.frame(fond_oursins)[,varFlux]>=filtreVol,]
fond_oursins <- fond_oursins[rev(order(as.data.frame(fond_oursins)[,varFlux])),]
x_marge <- (st_bbox(fondMaille)$xmax-st_bbox(fondMaille)$xmin)/20
y_marge <- (st_bbox(fondMaille)$ymax-st_bbox(fondMaille)$ymin)/20
if(!is.null(etiquettes))
{
tableEtiquettes <- table_etiquettes(fondMaille,etiquettes)
}
if(is.null(xlim)) xlim <- c(st_bbox(fondMaille)$xmin,st_bbox(fondMaille)$xmax+x_marge*3)
if(is.null(ylim)) ylim <- c(st_bbox(fondMaille)$ymin,st_bbox(fondMaille)$ymax+y_marge*3)
par(mai=c(0,0,0,0))
plot(st_geometry(fondMaille),xlim=xlim,ylim=ylim,border=colBorderMaille)
if(!is.null(fondSousAnalyse))
{
for(i in 1:length(fondSousAnalyse))
{
names_fond <- names(as.data.frame(fondSousAnalyse[[i]]))
if(any(names_fond %in% "COL")) colFond <- unique(as.data.frame(fondSousAnalyse[[i]])[,"COL"]) else colFond <- "transparent"
if(any(names_fond %in% "BORDER")) colBorder2 <- unique(as.data.frame(fondSousAnalyse[[i]])[,"BORDER"]) else colBorder2 <- "black"
if(any(names_fond %in% "EPAISSEUR")) epaisseur <- unique(as.data.frame(fondSousAnalyse[[i]])[,"EPAISSEUR"]) else epaisseur <- 1
plot(st_geometry(fondSousAnalyse[[i]]),col=colFond,border=colBorder2,lwd=epaisseur,add=T)
}
}
plot(st_geometry(fondMaille),col="transparent",border=colBorderMaille,add=T)
plot(st_geometry(fond_oursins),lwd=epaisseur,col=colTrait,add=T)
if(!is.null(fondSurAnalyse))
{
for(i in 1:length(fondSurAnalyse))
{
names_fond <- names(as.data.frame(fondSurAnalyse[[i]]))
if(any(names_fond %in% "COL")) colFond <- unique(as.data.frame(fondSurAnalyse[[i]])[,"COL"]) else colFond <- "transparent"
if(any(names_fond %in% "BORDER")) colBorder2 <- unique(as.data.frame(fondSurAnalyse[[i]])[,"BORDER"]) else colBorder2 <- "black"
if(any(names_fond %in% "EPAISSEUR")) epaisseur <- unique(as.data.frame(fondSurAnalyse[[i]])[,"EPAISSEUR"]) else epaisseur <- 1
plot(st_geometry(fondSurAnalyse[[i]]),col=colFond,border=colBorder2,lwd=epaisseur,add=T)
}
}
if(!is.null(etiquettes))
{
for(i in 1:nrow(tableEtiquettes))
{
text(tableEtiquettes[i,"X"],tableEtiquettes[i,"Y"],labels=tableEtiquettes[i,"LIBELLE"],cex=tableEtiquettes[i,"TAILLE"],col=tableEtiquettes[i,"COL"],font=tableEtiquettes[i,"FONT"])
}
}
if(titreCarte!="")
{
text(((st_bbox(fondMaille)$xmax+x_marge*3)-st_bbox(fondMaille)$xmin)/2,st_bbox(fondMaille)$ymax+y_marge*3,labels=titreCarte)
}
if(sourceCarte!="")
{
text(((st_bbox(fondMaille)$xmax+x_marge*3)-st_bbox(fondMaille)$xmin)/6,st_bbox(fondMaille)$ymin,labels=sourceCarte,cex=0.7)
}
return(fond_oursins)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.