library(shiny)
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.3.1
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(htmltools)
library(readr)

# Cargar los datos
df_Propiedades <- read.csv("propiedades_ventas.csv")
# Filtrar y ordenar los datos
df_Filtrada <- df_Propiedades %>%
  select(latitud, longitud, precio, recamaras, banios, estacionamientos, direccion) %>%
  mutate(
    latitud = as.numeric(latitud),
    longitud = as.numeric(longitud),
    precio = as.numeric(precio)
  ) %>%
  arrange(desc(precio))
maximos <- head(df_Filtrada, 20)

# Crear el mapa de la Ciudad de México
mapa_cdmx <- leaflet() %>%
  setView(lng = -99.1332, lat = 19.4326, zoom = 10) %>%
  addTiles() %>%
  addProviderTiles("CartoDB.Positron")

# Agregar los puntos de la visualización al mapa con tooltips personalizados
for (i in seq_len(nrow(df_Filtrada))) {
  punto <- df_Filtrada[i, ]
  tooltip_content <- paste(
    "Precio: $", punto$precio,
    "<br/>Recámaras: ", punto$recamaras,
    "<br/>Baños: ", punto$banios,
    "<br/>Estacionamientos: ", punto$estacionamientos,
    "<br/>Dirección: ", punto$direccion
  )
  mapa_cdmx <- mapa_cdmx %>%
    addMarkers(lng = punto$longitud, lat = punto$latitud,
               label = htmltools::HTML(tooltip_content))
}

# Crear la aplicación Shiny
ui <- fluidPage(
  titlePanel("Visualización de Propiedades en la Ciudad de México"),
  leafletOutput("mapaOutput", width = "100%", height = "500px")
)

server <- function(input, output) {
  output$mapaOutput <- renderLeaflet({
    mapa_cdmx
  })
}

shinyApp(ui, server)
## PhantomJS not found. You can install it with webshot::install_phantomjs(). If it is installed, please make sure the phantomjs executable can be found via the PATH variable.
Shiny applications not supported in static R Markdown documents