Coordinates Problem in shinyapp.io

library(shiny)
library(shinydashboard)
library(shinythemes)
library(DT)
library(leaflet)
library(leaflet.extras)
library(tmap)
library(tmaptools)
library(shinyWidgets)
library(readxl)
library(dplyr)
library(openxlsx)
library(utils)
library(sp)
library(sf)
library(zoo)
library(ggplot2)
library(dplyr)
library(htmlwidgets)
library(lubridate)
library(shinyjs)

#current_directory <- "C:/Users/danie/OneDrive/Documents/Scripts/Geovisor FF"
#setwd(current_directory)

data <- read_excel("FF.xlsx")
data <- subset(data, !is.na(data$'ESTE'))
nrows <- nrow(data)
Geovisor <- data.frame(
  Plan_Muestreo = character(nrows),
  estex = numeric(nrows),
  nortey = numeric(nrows),
  Geometria=character(nrows),
  Fuente=character(nrows),
  CIIU=character(nrows),
  FechaMuestreo = as.Date(character(nrows), format = "%Y-%m-%d"),
  Contaminantes=character(nrows),
  Parametro=character(nrows),
  Unidades=character(nrows),
  Valor = numeric(nrows)
)
Geovisor$Plan_Muestreo <- data$Plan_Muestral
Geovisor$Fuente <- data$Fuente
Geovisor$CIIU <- data$CIIU
Geovisor$estex <- as.numeric(data$ESTE)
Geovisor$nortey <- as.numeric(data$NORTE2)
Geovisor$Geometria <- data$'Geometria Chimenea'
Geovisor$FechaMuestreo <- data$'Fecha del muestreo (aa-mm-dd)'
Geovisor$Year <- year(Geovisor$FechaMuestreo)
Geovisor$Contaminantes <- data$Contaminantes
Geovisor$Parametro <- data$Parametro 
Geovisor$Unidades <- data$Unidades
Geovisor$Valor  <- data$Valor


puntos <- subset(Geovisor,!duplicated(Plan_Muestreo))
puntos <- st_as_sf(puntos, coords = c("estex","nortey"))
st_crs(puntos) <- 9377
CIRCULAR <- subset(puntos, puntos$Geometria== "Circular")
RECTANGULAR <- subset(puntos, puntos$Geometria== "Rectangular")

crear_cuadrado <- function(punto, tamano) {
  x <- st_coordinates(punto)[1, 1]
  y <- st_coordinates(punto)[1, 2]
  
  # Calcular las coordenadas de los vértices del cuadrado
  vertices <- matrix(
    c(
      x - tamano, y - tamano,
      x + tamano, y - tamano,
      x + tamano, y + tamano,
      x - tamano, y + tamano,
      x - tamano, y - tamano
    ),
    ncol = 2,
    byrow = TRUE
  )
  
  # Crear el polígono cuadrado
  cuadrado <- st_polygon(list(vertices))
  
  return(cuadrado)
}

# Definir el tamaño del cuadrado en unidades (ajusta según sea necesario)
tamano_cuadrado <- 1  # Por ejemplo, 1 unidad

# Crear un cuadrado alrededor de cada punto
cuadrados <- lapply(RECTANGULAR$geometry, crear_cuadrado, tamano = tamano_cuadrado)

cuadrados_sf <- st_sfc(cuadrados)
st_crs(cuadrados_sf) <- st_crs(9377)

cuadrados_df <- as.data.frame(cuadrados_sf)
cuadrados_df <- st_as_sf(cuadrados_df)
cuadrados_df$Plan_Muestral <- RECTANGULAR$Plan_Muestreo
RECTANGULAR<-cuadrados_df

# Definición de la interfaz de usuario
ui <- dashboardPage(skin="blue",
                    dashboardHeader(title = " FUENTES FIJAS"),
                    dashboardSidebar(
                      sidebarMenu(
                        img(src = "Car.png", height = 100, width = 100, style="display: block; margin-left: auto; margin-right: auto;"),
                        shinydashboard::menuItem("GEOVISOR FUENTES FIJAS", tabName = "intro")
                      )
                    ),
                    dashboardBody(
                      useShinyjs(),
                      tabItems(
                        tabItem(tabName = "intro",
                                h1("Historico Fuentes Fijas", align = "center"),
                                h1("                                           "),
                                h1("                                           "),
                                h3("   ", align = "justify"),
                                fluidRow(
                                  column(width = 6,
                                         box(title = "MAPA", height = "1200px", width = NULL, 
                                             # Mapa de leaflet
                                             leafletOutput("mapa", width = "100%", height = "1100px")
                                         )),
                                  column(width = 6,
                                         box(title = "CONSULTA", height = "1200px", width = NULL,
                                             h4("Coordenada", align = "justify"),
                                             fluidRow(
                                               column(width = 6,
                                                    numericInput("Norteu", "Norte:", value = "2110000")),
                                               column(width = 6,
                                                    numericInput("Esteu", "Este:", value = "4880000"))),
                                             
                                             fluidRow(
                                               column(width = 6,
                                                      pickerInput(
                                                        inputId = "Date",
                                                        label = "Año",
                                                        choices = as.list(sort(unique(Geovisor$Year))),
                                                        multiple = TRUE,
                                                        options = list(
                                                          `actions-box` = TRUE,
                                                          `select-all-text` = "Seleccionar todas",
                                                          `deselect-all-text` = "Deseleccionar todas",
                                                          `none-selected-text` = "Ningun elemento seleccionado"
                                                        )
                                                      )
                                               ),
                                               column(width = 6,
                                                      pickerInput(
                                                        inputId = "Param",
                                                        label = "Parametro",
                                                        choices = as.list(sort(unique(Geovisor$Parametro))),
                                                        multiple = TRUE,
                                                        options = list(
                                                          `actions-box` = TRUE,
                                                          `select-all-text` = "Seleccionar todas",
                                                          `deselect-all-text` = "Deseleccionar todas",
                                                          `none-selected-text` = "Ningun elemento seleccionado"
                                                        )
                                                      )
                                               )
                                             ),
                                             actionButton("refreshMap", "Inicializar Mapa"),
                                             downloadButton("downloadData", "Descargar Histórico Completo"),
                                             downloadButton("downloadFiltro", "Descargar Datos Consultados"),
                                             DTOutput("TabFiltro"),)),
                                    
                                  
                                  
                                )
                        )
                        
                      )
                    )
)

server <- function(input, output,session) {
  coordenadas <- reactive({
    lat <- as.numeric(input$Norteu)
    lon <- as.numeric(input$Esteu)
    
    if (!is.na(lat) && !is.na(lon)) {
      data.frame(lon = lon, lat = lat) %>%
        st_as_sf(coords = c("lon", "lat"), crs = 9377)  # Cambiar el SRS según corresponda
    } else {
      NULL
    }
  })
  
  
  
output$mapa <- renderLeaflet({

    COORDENADA <- coordenadas()
    
    
    


    # Mostrar el mapa interactivo
    tmapMap <-  tm_basemap(server = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png") +
      tm_shape(COORDENADA) + tm_dots(size = 0.1, col = "#00FF00") +
      tm_shape(CIRCULAR) + tm_dots(size = 0.1, col = "red") +
      tm_shape(RECTANGULAR) +  tm_dots(size = 0.1, col = "blue")
    
    leafletMap <- tmap_leaflet(tmapMap, in.shiny = TRUE) %>% 
      addLayersControl(overlayGroups = c('COORDENADA','CIRCULAR','RECTANGULAR'), options = layersControlOptions(collapsed = FALSE)) %>%
      htmlwidgets::onRender("
       function(map) {
        var overlayLayers = document.querySelectorAll('.leaflet-control-layers-selector');

        overlayLayers.forEach(function(overlayLayer) {
          var layerName = overlayLayer.nextSibling.textContent.trim();
          var color = 'transparent';

          if (layerName === 'COORDENADA') {
            color = '#00FF00';
          }else if (layerName === 'CIRCULAR') {
            color = 'red';
          } else if (layerName === 'RECTANGULAR') {
            color = 'blue';
          }
          
          var dot = document.createElement('span');
          dot.style.width = '12px';
          dot.style.height = '12px';
          dot.style.display = 'inline-block';
          dot.style.marginRight = '5px';
          dot.style.backgroundColor = color;
          overlayLayer.parentNode.insertBefore(dot, overlayLayer);
        });
      }
    ") 
    
   
          
    return(leafletMap)
  })
#####################################-METODO ACTUALIZAR PUNTOS CON DATES-############################################

# Observe changes in the Date input and update the map
ultima_fecha <- reactiveVal(NULL)


observeEvent(input$Date, {
  
  # Actualiza el mapa inmediatamente cuando cambia la fecha
  actualizar_mapa()
})

# Función para actualizar el mapa después de un retraso
actualizar_mapa <- function() {
  isolate({
    filtered_data <- Geovisor
    if (!is.null(input$Param) && !is.null(input$Date)) {
      filtered_data <- subset(filtered_data, `Parametro` %in% input$Param & `Year` %in% input$Date)
    } else if (!is.null(input$Param)) {
      filtered_data <- subset(filtered_data, `Parametro` %in% input$Param)
    } else if (!is.null(input$Date)) {
      filtered_data <- subset(filtered_data, `Year` %in% input$Date)
    }
    datos_filtrados <- filtered_data
    puntos <- st_as_sf(datos_filtrados, coords = c("estex", "nortey"))
    st_crs(puntos) <- 9377
    CIRCULAR <- puntos[puntos$Geometria == "Circular", ]
    RECTANGULAR <- puntos[puntos$Geometria == "Rectangular", ]
    
    tmapMap <- 
      tm_shape(CIRCULAR) + tm_dots(size = 0.1, col = "red") +
      tm_shape(RECTANGULAR) + tm_dots(size = 0.1, col = "blue")
    
    leafletMap <- tmap_leaflet(tmapMap, in.shiny = TRUE) %>%
      addProviderTiles(providers$OpenStreetMap)
    
    # Actualiza el mapa en Shiny reemplazando el mapa existente
    output$mapa <- renderLeaflet({
      
      return(leafletMap)
    })
  })
  
  observeEvent(input$refreshMap, {
  
    session$reload()
  })
}

#Tabla de datos Filtrada
output$TabFiltro <- renderDT({
  filtered_data <- Geovisor
  if (!is.null(input$Param) && !is.null(input$Date)) {
    filtered_data <- subset(filtered_data, `Parametro` %in% input$Param & `Year` %in% input$Date)
  } else if (!is.null(input$Param)) {
    filtered_data <- subset(filtered_data, `Parametro` %in% input$Param)
  } else if (!is.null(input$Date)) {
    filtered_data <- subset(filtered_data, `Year` %in% input$Date)
  }
  datatable(
    data = filtered_data,
    options = list(
      pageLength = 15,  # Cantidad de filas por página
      lengthMenu = list(c(5,10, 25, 50, 100), c('5','10', '25', '50', '100')), # Opciones de paginación predefinidas
      scrollX = TRUE,
      scrollXInner = "100%", # Habilitar la barra de desplazamiento horizontal
      scrollY = "800px"
    ),
    width = "100%"
  ) %>%
    formatStyle(
      columns = c(1000),  # Establece el ancho de las columnas 1 y 2 según tus necesidades
      width = "100px"  # Ajusta el ancho deseado de las columnas
    )
})

output$downloadData <- downloadHandler(
  filename = function() {
    paste("Datos", ".xlsx", sep = "")
  },
  content = function(file) {
    write.xlsx(Geovisor, file, row.names = FALSE)
  },
  contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)

#Boton de Descarga Filtro
output$downloadFiltro <- downloadHandler(
  
  filename = function() {
    paste("Datos Consultados", ".xlsx", sep = "")
  },
  content = function(file) {
    filtered_data <- Geovisor
    if (!is.null(input$Param) && !is.null(input$Date)) {
      filtered_data <- subset(filtered_data, `Parametro` %in% input$Param & `Year` %in% input$Date)
    } else if (!is.null(input$Param)) {
      filtered_data <- subset(filtered_data, `Parametro` %in% input$Param)
    } else if (!is.null(input$Date)) {
      filtered_data <- subset(filtered_data, `Year` %in% input$Date)
    }
    write.xlsx(filtered_data, file, row.names = FALSE)
  },
  contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)


}

shinyApp(ui, server)

i am having this in the shinyapp.io points in arabic peninsula:

but i need it in colombia working in rstudio but not in de deploying part:

Hi someone there maybe i have to edit code in the shinyapp.io code?