2016-08-08 31 views
1
an

Ich versuche eine Sendung vom Ursprung zum Ziel zu visualisieren, indem ich eine mit R erstellte Map in einer glänzenden Anwendung verwende.So geben Sie die Radiuseinheiten in addCircleMarkers() bei der Verwendung von Leaflet in R

Ich mag einen Kreis Marker einen Radius hinzufügen zu einem des odist und ddist entsprechenden Variablen, die eine reaktive Datenrahmen Haupt genannt bilden kommen()

unten ist ein relevantes Schnappschuss mit begleitendem Code :

Pic1

output$leaflet1 <- renderLeaflet({ 
    leaflet() %>% 
    addCircleMarkers(data = main(), lng = main()$Olong, lat = main()$Olat, color = 'black', fillColor = coyGreen, 
        radius = main()$odist, opacity = .5) %>% 
    addCircleMarkers(data = main(), lng = main()$Dlong, lat = main()$Dlat, color = 'black', fillColor = coyGreen, 
        radius = main()$ddist, opacity = .3) 
}) 

Für die oben Zu Das Argument radius = main()$odist entspricht radius = 50. Die 50 Einheiten scheinen jedoch willkürlich zu sein (der Kreis ist kleiner als der größere mit radius = main()$ddist = 125, aber beide Kreise vergrößern und verkleinern sich, wenn ich hinein- und hinausziehe). Ich möchte den Radius meiner Kreismarkierung auf einen festen Radius in Meilen setzen können, aber ich konnte nicht herausfinden, wie das geht. Jede Hilfe wird sehr geschätzt!

+0

'addCircles' sehen ist was du suchst Ich denke – TimSalabim

+0

Ich bin auf der Suche nach einer Möglichkeit, das 'Radius' Argument auf eine feste Konstante in Meilen zu setzen. –

+0

In der [Online-Dokumentation der Broschüre] (http://leafletjs.com/reference.html#circle) für Circle heißt es, dass 'setRadius'" den Radius eines Kreises einstellt. Einheiten sind in Metern. " In der Broschüre "R", wenn Sie 'addCircles' anstelle von' addCircleMarkers' verwenden, können Sie den Radius in Metern (oder Meilen, wenn Sie richtig konvertieren) angeben. – TimSalabim

Antwort

3

Wenn Sie addCircles anstelle von addCircleMarkers verwenden, haben Ihre Kreise eine Konstante radius (in Metern). Hier ist ein reproduzierbares Beispiel mit mapview, das addCircleMarkers verwendet. Oben plotten wir die gleichen Stellen addCircles

library(mapview) 

m <- mapview(breweries91) # uses addCirclemarkers so circle radius changes with zoom 

[email protected] %>% 
    addCircles(data = breweries91, color = "red", radius = 100) # circle radius constant 

mit der Wenn Sie zoomen Sie, dass die anfänglich kleineren roten Kreise größer wird werden in Bezug auf die Standard-blau circlemarkers verwendet in mapview