Vairāk

Kā attēlot vienkāršu bultiņu kartē R, izmantojot brošūru

Kā attēlot vienkāršu bultiņu kartē R, izmantojot brošūru


Es mēģinu kartē parādīt bultiņu, izmantojot R unlietošanas instrukcijaiepakojums,

kartes kods skatiet manu saistīto jautājumu:

# instalēt paketes install.packages (c ("rgdal", "maptools", "brošūra", "htmlwidgets"), atkarības = PATIESA) # ielādēt bibliotēkas bibliotēka ("rgdal") bibliotēka ("maptools") bibliotēka ("brošūra" ) bibliotēka ("htmlwidgets") # ielādēt Franciju kā formu FRA = readShapePoly ("data / france.shp") # Inicializācija m <- brošūra (polsterējums = 0) # Valsts pievienošana m <- addPolygons (karte = m, dati = FRA , necaurredzamība = 100, krāsa = "#FAFCFA", svars = 0,25, uznirstošais = NULL, opcijas = saraksts (noklikšķināms = FALSE), aizpildīt = T, fillColor = "# B3C4B3", fillOpacity = 100) # kartes izmērs m $ platums <- 874 m $ augstums <- 700 # Eksportēt kā HTML failu saveWidget (m, 'mapfrance.html', selfcontained = FALSE)

bultiņas kods:

x <-c (2,484722, -8,445833) y <-c (51,5085300,10,50306) i <- secība (x, y); x <- x [i]; y <- y [i] ## zīmē bultiņas no punkta uz punktu: s <- sek (garums (x) -1) # viens īsāks par datu diagrammas (FRA) punktiem (x, y) bultiņām (x [s], y [s], x [s + 1], y [s + 1], kol = 1: 3, leņķis = 20)

kā es varu kartē parādīt vienkāršu bultiņu?


Jūs nevarat vienkārši uzrakstīt r diagrammas jūsu kartes izvadē. Lai iegūtu sīkāku informāciju, skatiet R brošūru.

Labākais risinājums būtu izmantot json bultiņu, kā teikts no @nebi, bet es arī nezinu, kā to ieviest r.


Cits risinājums ir uzrakstīt funkciju, kas atgriež bultiņas gala koordinātas un pēc tam vienkārši uzzīmē dažas līnijas (skat. Piemēru zemāk). Bultu uzgalis neizskatās pārāk jauks, jo aprēķinos izmanto garuma un platuma grādus. Bet vienalga tas darbojas.

# instalēt paketes install.packages (c ("rgdal", "maptools", "brošūra", "htmlwidgets"), atkarības = PATIESA) # ielādēt bibliotēkas bibliotēka ("rgdal") bibliotēka ("maptools") bibliotēka ("brošūra" ) library ("htmlwidgets") # function get arrowhead () atgriež līnijas bultiņas koordinātas get_arrowhead <- funkcija (fromPoint, toPoint) {# dx, dy = bultiņas līnijas vektors dx <- toPoint $ x - fromPoint $ x ; dy <- toPoint $ y - noPoint $ y; # normalizēt garumu <- sqrt (dx * dx + dy * dy); vienībaDx <- dx / garums; vienībaDy <- dy / garums; # palieliniet to, lai iegūtu lielāku bultiņas galvu arrowHeadBoxSize = 1; arrowPoint1 <- saraksts (x = (toPoint $ x - unitDx * arrowHeadBoxSize - unitDy * arrowHeadBoxSize), y = (toPoint $ y - unitDy * arrowHeadBoxSize + unitDx * arrowHeadBoxSize)); arrowPoint2 <- saraksts (x = (toPoint $ x - unitDx * arrowHeadBoxSize + unitDy * arrowHeadBoxSize), y = (toPoint $ y - unitDy * arrowHeadBoxSize - unitDx * arrowHeadBoxSize)); return (mapply (c, arrowPoint1, toPoint, arrowPoint2))} # ielādēt Franciju kā FRA = readShapePoly ("france.shp") m <- brošūra (polsterējums = 0) # Pievienot valsti m <- addPolygons (karte = m, dati = FRA, necaurredzamība = 100, krāsa = "#FAFCFA", svars = 0,25, uznirstošais = NULL, opcijas = saraksts (noklikšķināms = FALSE), fill = T, fillColor = "# B3C4B3", fillOpacity = 100) x <-c (2.484722, -8.445833) y <-c (51.5085300,10.50306) i <- secība (x, y); x <- x [i]; y <- y [i] no punkta <- saraksts (x = x [1], y = y [1]) uz punktu <- saraksts (x = x [2], y = y [2]) # iegūt bultiņas koordinātas bultiņu gals <- get_arrowhead (fromPoint, toPoint) # zīmēšanas punkti m <- addCircles (karte = m, lng = x, lat = y, svars = 1, rādiuss = 1000) # zīmēt polilīniju m <- addPolylines (karte = m, lng = x, lat = y) # bultiņas līnija m <- addPolylines (karte = m, bultiņas_dati [, "x"], lat = bultiņas_dati [, "y"]) # bultiņas galva # Kartes izmērs m $ platums <- 874 m $ augstums <- 700 # Eksportēt kā HTML failu saveWidget (m, 'mapfrance.html', selfcontained = FALSE)


Es nevaru pievienot komentāru, taču jūs varētu izveidot ikonu un izmantot addMarker

pārbaudiet to: https://rstudio.github.io/leaflet/markers.html