Hola,
Ando un poco desesperado con los mapas interactivos de Rcharts
<https://github.com/ramnathv/rCharts>+Leaflet.
Estoy intentando pintar en un mapa las cámaras de tráfico de madrid, y las
estaciones de calidad del aire, simplemente donde están, es decir, aun no
estoy recogiendo los datos de medida.
Proyecto -> https://github.com/ADIRSE/maddata
He conseguido pintar ambos, con markers, la gota invertida típica de google
maps. Pero esta solo viene en un color, así que le quiero meter
'circles'
en vez de 'markers', y pintarlos después de colores en funcion del
tráfico
y calidad de aire que estén midiendo.
Los círculos es lo que me trae de cabeza. Os dejo enlaces donde hay código
y ejemplos del autor de la librería, y el código de mi proyecto en github,
por si hay algún experto en el tema.
Pero aún así, adelanto que la chicha ocurre en esta función =>
map$geoJson(
leafletR::toGeoJSON(data_,
dest=output_geofile),
onEachFeature = '#! function(feature, layer){
layer.bindPopup(feature.properties.popup)
} !#',
pointToLayer = "#! function(feature, latlng){
return L.circleMarker(latlng, {
radius: 6,
fillColor: feature.properties.fillColor ||
'blue',
color: '#333',
weight: 1,
fillOpacity: 0.8
})
} !#")
donde mi variable data_, es la que contiene las coordenadas y una columna
con el supuesto color para el círculo:
> head(data_) latitude longitude fillColor
1 40.386 -3.725 #FFFFBF
2 40.393 -3.715 #FFFFBF
3 40.408 -3.730 #FFFFBF
4 40.471 -3.711 #FFFFBF
5 40.471 -3.712 #FFFFBF
6 40.439 -3.673 #FFFFBF
He intentado comparar mi variable data_ con el del proyecto de bicis
<https://github.com/ramnathv/bikeshare/> (muy bueno), pero el autor para
generar su data_ hace unas cuantas operaciones en las que me pierdo. Así
que yo le paso un mero data.frame, como en teoría dice la documentación que
haga.
En fin, toda ayuda es muy bien recibida :-)
Aquí una muestra en shinyapps <https://adirse.shinyapps.io/maddata/>
[[alternative HTML version deleted]]
Miguel, Alguna experiencia con rCharts tengo pero no tengo experiencia con el ejemplo que estás haciendo. Creo el problema es que tienes que convertir data_ en un JSON array. Mira la siguiente respuesta de Ramnathv: https://github.com/ramnathv/rCharts/issues/114 donde usa toJSONArray(data_, json = F) Suerte, Daniel Merino El 15 de octubre de 2014, 16:18, Miguel Fiandor Gutiérrez < miguel.fiandor.gutierrez en gmail.com> escribió:> Hola, > > Ando un poco desesperado con los mapas interactivos de Rcharts > <https://github.com/ramnathv/rCharts>+Leaflet. > > Estoy intentando pintar en un mapa las cámaras de tráfico de madrid, y las > estaciones de calidad del aire, simplemente donde están, es decir, aun no > estoy recogiendo los datos de medida. > Proyecto -> https://github.com/ADIRSE/maddata > > He conseguido pintar ambos, con markers, la gota invertida típica de google > maps. Pero esta solo viene en un color, así que le quiero meter 'circles' > en vez de 'markers', y pintarlos después de colores en funcion del tráfico > y calidad de aire que estén midiendo. > > Los círculos es lo que me trae de cabeza. Os dejo enlaces donde hay código > y ejemplos del autor de la librería, y el código de mi proyecto en github, > por si hay algún experto en el tema. > > Pero aún así, adelanto que la chicha ocurre en esta función => > > map$geoJson( > leafletR::toGeoJSON(data_, > dest=output_geofile), > onEachFeature = '#! function(feature, layer){ > layer.bindPopup(feature.properties.popup) > } !#', > pointToLayer = "#! function(feature, latlng){ > return L.circleMarker(latlng, { > radius: 6, > fillColor: feature.properties.fillColor || > 'blue', > color: '#333', > weight: 1, > fillOpacity: 0.8 > }) > } !#") > > > donde mi variable data_, es la que contiene las coordenadas y una columna > con el supuesto color para el círculo: > > > head(data_) latitude longitude fillColor > 1 40.386 -3.725 #FFFFBF > 2 40.393 -3.715 #FFFFBF > 3 40.408 -3.730 #FFFFBF > 4 40.471 -3.711 #FFFFBF > 5 40.471 -3.712 #FFFFBF > 6 40.439 -3.673 #FFFFBF > > > > He intentado comparar mi variable data_ con el del proyecto de bicis > <https://github.com/ramnathv/bikeshare/> (muy bueno), pero el autor para > generar su data_ hace unas cuantas operaciones en las que me pierdo. Así > que yo le paso un mero data.frame, como en teoría dice la documentación que > haga. > > > En fin, toda ayuda es muy bien recibida :-) > > Aquí una muestra en shinyapps <https://adirse.shinyapps.io/maddata/> > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Daniel [[alternative HTML version deleted]]
Daniel, muchas gracias por contestar y tan rápido.
Pues puede ser la solución, he hecho el cambio y sigue sin pintarme los
puntos ->
data_ <- toJSONArray(data_, json = F)
map$geoJson(
# leafletR::toGeoJSON(data_,
# # lat.lon = c('Lat', 'Long'),
# dest=output_geofile),
data_,
onEachFeature = '#! function(feature, layer){
layer.bindPopup(feature.properties.popup)
} !#',
pointToLayer = "#! function(feature, latlng){
return L.circleMarker(latlng, {
radius: 6,
fillColor: feature.properties.fillColor ||
'blue',
color: '#333',
weight: 1,
fillOpacity: 0.8
})
} !#")
Un head(data_) ahora muestra esto ->
> head(data_)[[1]]
[[1]]$latitude
[1] 40.386
[[1]]$longitude
[1] -3.725
[[1]]$fillColor
[1] "#D251F3"
Seguiré investigando pero parece un buen camino! ;-)
El 15 de octubre de 2014, 22:00, daniel <daniel319 en gmail.com> escribió:
> Miguel,
>
> Alguna experiencia con rCharts tengo pero no tengo experiencia con el
> ejemplo que estás haciendo. Creo el problema es que tienes que convertir
> data_ en un JSON array. Mira la siguiente respuesta de Ramnathv:
>
> https://github.com/ramnathv/rCharts/issues/114
>
> donde usa
>
> toJSONArray(data_, json = F)
>
> Suerte,
>
> Daniel Merino
>
> El 15 de octubre de 2014, 16:18, Miguel Fiandor Gutiérrez <
> miguel.fiandor.gutierrez en gmail.com> escribió:
>
>> Hola,
>>
>> Ando un poco desesperado con los mapas interactivos de Rcharts
>> <https://github.com/ramnathv/rCharts>+Leaflet.
>>
>>
>> Estoy intentando pintar en un mapa las cámaras de tráfico de madrid, y
las
>> estaciones de calidad del aire, simplemente donde están, es decir, aun
no
>> estoy recogiendo los datos de medida.
>> Proyecto -> https://github.com/ADIRSE/maddata
>>
>> He conseguido pintar ambos, con markers, la gota invertida típica de
>> google
>> maps. Pero esta solo viene en un color, así que le quiero meter
'circles'
>> en vez de 'markers', y pintarlos después de colores en funcion
del tráfico
>> y calidad de aire que estén midiendo.
>>
>> Los círculos es lo que me trae de cabeza. Os dejo enlaces donde hay
código
>> y ejemplos del autor de la librería, y el código de mi proyecto en
github,
>> por si hay algún experto en el tema.
>>
>> Pero aún así, adelanto que la chicha ocurre en esta función =>
>>
>> map$geoJson(
>> leafletR::toGeoJSON(data_,
>> dest=output_geofile),
>> onEachFeature = '#! function(feature, layer){
>> layer.bindPopup(feature.properties.popup)
>> } !#',
>> pointToLayer = "#! function(feature, latlng){
>> return L.circleMarker(latlng, {
>> radius: 6,
>> fillColor: feature.properties.fillColor
||
>> 'blue',
>> color: '#333',
>> weight: 1,
>> fillOpacity: 0.8
>> })
>> } !#")
>>
>>
>> donde mi variable data_, es la que contiene las coordenadas y una
columna
>> con el supuesto color para el círculo:
>>
>> > head(data_) latitude longitude fillColor
>> 1 40.386 -3.725 #FFFFBF
>> 2 40.393 -3.715 #FFFFBF
>> 3 40.408 -3.730 #FFFFBF
>> 4 40.471 -3.711 #FFFFBF
>> 5 40.471 -3.712 #FFFFBF
>> 6 40.439 -3.673 #FFFFBF
>>
>>
>>
>> He intentado comparar mi variable data_ con el del proyecto de bicis
>> <https://github.com/ramnathv/bikeshare/> (muy bueno), pero el
autor para
>> generar su data_ hace unas cuantas operaciones en las que me pierdo.
Así
>> que yo le paso un mero data.frame, como en teoría dice la documentación
>> que
>> haga.
>>
>>
>> En fin, toda ayuda es muy bien recibida :-)
>>
>> Aquí una muestra en shinyapps
<https://adirse.shinyapps.io/maddata/>
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
>
> --
> Daniel
>
[[alternative HTML version deleted]]