Processing math: 20%

7 votos

¿Es posible utilizar un evento raster::click dentro de un mapa interactivo de folletos?

Descarga de datos: https://www.dropbox.com/s/f849ra8l6umo9d8/crops.tif?dl=0

Tengo varias imágenes rasterizadas del mundo que, en última instancia, me gustaría trazar dentro de un mapa interactivo de folletos; un ejemplo está enlazado arriba. Con el trazado básico de R, soy capaz de trazar la imagen .tif y utilizar raster::click para poder hacer clic en cualquier lugar del mapa y que el valor de la leyenda asociada se imprima en la consola de R. El código es muy sencillo:

library(raster)
library(leaflet)

setwd("C:/Users/administrator.me/Desktop")

crop <- raster("C:/Users/administrator.me/Desktop/crops/crops.tif")

plot(crop)
click(crop)

De nuevo, el resultado es una imagen rasterizada del mundo sobre la que se puede hacer clic y que escupe el valor asociado (como si se utilizara el identify en QGIS):

enter image description here

Esto es bastante simple, pero al final me gustaría tener esta imagen rasterizada como capa de fondo en un mapa interactivo de Leaflet para R. Lo he trazado con el código adicional:

library(leaflet)

pal <- colorNumeric("Spectral", values(crop), 
                    na.color = "transparent")

leaflet() %>% addTiles() %>%
  addRasterImage(crop, colors = pal, opacity = 1) %>%
  addLegend(pal = pal, values = values(crop),
            opacity = 1, 
            title = "Crop Calendar")

Esto esencialmente traza la misma imagen que la anterior, sólo que sobre un mapa base y con opciones de paneo/zoom. Me gustaría ser capaz de utilizar el mismo raster::click evento en el mapa interactivo de folletos. He leído un poco sobre los eventos de clic en Leaflet (ejemplo aquí ], pero parece que son principalmente para marcadores o polígonos predefinidos. ¿Es posible hacer esto con una imagen rasterizada con cuadrícula? ¿Puedo crear un evento de clic que dé una ventana emergente del valor asociado a la cuadrícula sobre la que se hace clic?

3voto

Sam Puntos 175

Actualmente también estoy buscando esta funcionalidad, utilizando R y leaflet/mapview etc.

En mapview, mi solución actual es convertir la trama en una capa de puntos y luego trazar la trama y la capa de puntos juntas, poniendo transparencia total en la capa de puntos. Al pasar por encima de la celda de la trama se obtiene el valor de los puntos asociados sin necesidad de hacer clic (aumentar el tamaño de los puntos para que sean bastante grandes).

Lo mejor sería implementarlo directamente con la trama o incluso con un clic.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X