web-dev-qa-db-fra.com

R: Ajouter un titre à la carte Leaflet

J'aimerais ajouter un titre à l'ensemble de la carte (différent du titre de la légende: addLegend (..., title = "", ...): par "titre", je veux dire un composant de carte superposé. qui reste en place tant que la carte est déplacée (contrairement à une image superposée)  what the map title could look like .

Est-ce une option dans RStudio's leaflet pour R?

leafletR a un argument title = "" mais il met à jour le titre de la page Web: il n'ajoute pas de titre à la carte.

8
YGS

Vous devriez fournir un exemple reproductible . Mais en utilisant addControl, vous pourriez essayer:

 library(leaflet)
 library(htmlwidgets)
 library(htmltools)

 rr <- tags$div(
   HTML('<a href="https://cran.r-project.org/"> <img border="0" alt="ImageTitle" src="/PathToImage/ImageR.jpeg" width="300" height="100"> </a>')
 )  

 map_leaflet <- leaflet() %>%
   addTiles() %>%
   addMarkers(50, 50) %>%
   addControl(rr, position = "bottomleft")

 saveWidget(map_leaflet, file="testing.html")

Ouvrez testing.html enregistré dans votre répertoire de travail et vous verrez une image (créez simplement une image avec Titre de la carte dans celle-ci) sur votre carte. Ce n’est pas le centre, vous pouvez seulement placer le contrôle aux quatre coins. J'espère que ça aide!

9
MLavoie

L'idée de @ MLavoie est correcte, mais je cherchais quelque chose de plus spécifique, comme ceci:

tag.map.title <- tags$style(HTML("
  .leaflet-control.map-title { 
    transform: translate(-50%,20%);
    position: fixed !important;
    left: 50%;
    text-align: center;
    padding-left: 10px; 
    padding-right: 10px; 
    background: rgba(255,255,255,0.75);
    font-weight: bold;
    font-size: 28px;
  }
"))

title <- tags$div(
  tag.map.title, HTML("Map title")
)  

map_leaflet <- leaflet() %>%
  addTiles() %>%
  addControl(title, position = "topleft", className="map-title")

Cela centrera le titre leaflet-control comme indiqué sur la capture d'écran et le placera en haut.

0
prusswan