Vogliamo visualizzare un htmlwidget all'interno di un'applicazione OpenCPU. L'html è generato da Leaflet senza problemi, tuttavia abbiamo alcuni problemi a visualizzarlo all'interno dell'app OpenCPU. Abbiamo usato la seguente funzione per generare il foglio Mappa:come visualizzare htmlwidgets all'interno di app openCPU?
leafmap1 <- function(ecoregion='10105',wdpa_id='1500'){
require(leaflet)
require(shiny)
require(htmlwidgets)
m <- leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=174.768, lat=-36.852, popup="The birthplace of R")
m
}
Il JavaScript è la seguente:
function SochiCtrl($scope){
$scope.ecoregions = ['10105']
$scope.wdpa_ids = ["1500"]
$scope.ecoregion = $scope.ecoregions[0]
$scope.wdpa_id = $scope.wdpa_ids[0]
$scope.makeChart = function(){
var req = ocpu.rpc("leafmap1",
{"ecoregion": $scope.ecoregion, "wdpa_id": $scope.wdpa_id}, function(output){
$('#map').html(output)
}).fail(function(text){
alert("Error: " + req.responseText);
});
}
$scope.$watchCollection('[ecoregion, wdpa_id]', function(newValues){
console.log(newValues)
$scope.makeChart({ecoregion: newValues[0], wdpa_id: newValues[1]})
})
}
Ora l'applicazione mostra il telaio di foglietto, ma ho alcuni problemi per ottenere il JSON da OpenCPU ho ottenuto il seguente errore Nessun metodo asJSON Classe S3: htmlwidget. Ho anche provato con:
m <- toJSON(m, force= TRUE)
Il codice completo è disponibile al numero: https://github.com/Arevaju/ocpuleaflet.
Grazie mille per il vostro aiuto e congratulazioni per il vostro ottimo lavoro !!
Puoi includere qualche esempio di codice di un widget che desideri visualizzare? – Jeroen
Nessuna soluzione trovata? – YCR
Sì, dai un'occhiata a questo repo di Jeroen: https://github.com/opencpu/leafletapp. Troverete l'app sul sito web di OpenCPU. Il nostro esempio di lavoro può essere trovato su: https://github.com/javimarlop/spdynmodocpu – arevaju