library(raster)
## Loading required package: sp
library(leaflet)
## Warning: package 'leaflet' was built under R version 3.6.3
rast = raster("C:/Users/Sulochan Dhungel/Sulochan/R codes/Useful R codes/Spatial Plots/Leaflet/Files/G.tif")
plot(rast)

RasVarName = "G"
varUnits = "W/m2"
site_name = "US_Tw3"
x_ = mean(c(extent(rast)@xmin, extent(rast)@xmax))
y_ = mean(c(extent(rast)@ymin, extent(rast)@ymax))
nExtent = 1000
coords_prj = data.frame(x_,y_)
coordinates(coords_prj) = c("x_", "y_")
proj4string(coords_prj) <- proj4string(rast) #CRS("+init=epsg:4326") # WGS 84
coords_latlon = spTransform(coords_prj, CRS("+init=epsg:4326"))
coord_extent = extent(coords_prj)
coord_extent_buff_1000_m = extent(coord_extent@xmin-nExtent,
coord_extent@xmax+nExtent,
coord_extent@ymin-nExtent,
coord_extent@ymax+nExtent)
ras = crop(rast, coord_extent_buff_1000_m)
plot(ras)

RasValueAtPt = signif(extract(ras, coords_prj),digits = 3)
colpal <- colorNumeric(palette = "Spectral", values(ras), na.color = "transparent")
val_ras = values(ras)[!is.na(values(ras))]
leaflet(width = "100%") %>%
addProviderTiles(providers$Esri.WorldStreetMap, group = "ESRI Street Map")%>%
addTiles(urlTemplate = "https://mts1.google.com/vt/lyrs=y&hl=en&src=app&x={x}&y={y}&z={z}&s=G", attribution = 'Google', group = "GoogleMap") %>%
addRasterImage(ras, col = colpal, group = RasVarName) %>%
addCircleMarkers(data = coords_latlon, label = site_name, labelOptions = labelOptions(noHide = T, textsize = "15px", textOnly = T), radius = 5 , weight = 5, fillOpacity = 2, stroke = T, col = "black", popup = paste(RasVarName," = ", RasValueAtPt ," ", varUnits, sep="")) %>%
addLegend(values = val_ras, pal = colpal, title = paste(RasVarName,"<br>",varUnits,"<br>",sep=""), opacity = 1)%>%
addLayersControl(
overlayGroups = c("ESRI Street Map", RasVarName))