2017-05-08 4 views
0

Ich habe zwei Datenrahmen wie unten:Visualisierung Problem bei der Verwendung von Leaflet

PickUP <- data.frame(pickuplong = c(-73.93909 ,-73.94189 ,-73.93754,-73.91638,-73.92792 ,-73.88634), pickuplat =c(40.84408,40.83841,40.85311,40.84966,40.86284,40.85628)) 

Dropoff <- data.frame(pickuplong = c(-73.93351 ,-73.93909 ,-73.93909 ,-73.80747,-73.95722,-73.91880), pickuplat =c(40.76621,40.84408,40.85311,40.69951,40.68877,40.75917), Droplong =c(-73.91300,-73.96259 ,-73.94870,-73.93860,-73.93633, -73.90690), Droplat =c(40.77777,40.77488 ,40.78493,40.84463,40.75977,40.77013)) 

Ich versuche, die Pickup-Koordinationen (longtitude und Breitengrad) in dem Aufnahmedatenrahmen zu finden, die in Drop-Off-Datenrahmen wiederholt werden . Ich habe den Code unten, aber ich habe den Fehler auf diese:

library(sp) 
library(rgdal) 
library(leaflet) 
library(mapview) 
library(dplyr) 
a <- semi_join(Dropoff , PickUP , by = c("pickuplong","pickuplat")) 
a$ID <- 1:nrow(a) 
Dropoff_p <- a[, c("ID", "Pickup_longitude", "Pickup_latitude")] 
Dropoff_d <- a[, c("ID", "Dropoff_longitude", "Dropoff_latitude")] 
coordinates(Dropoff_p) <- ~Pickup_longitude + Pickup_latitude 
coordinates(Dropoff_d) <- ~Dropoff_longitude + Dropoff_latitude 
proj4string(Dropoff_p) <- CRS("+init=epsg:4326") 
proj4string(Dropoff_d) <- CRS("+init=epsg:4326") 
map_p <- mapview(Dropoff_p, color = "red") 
map_d <- mapview(Dropoff_d, color = "blue") 
map_p + map_d 

Mein Fehler ist:

Fehler in < $ -.data.frame (tmp, "ID", Wert = c (1L, 0L)): Ersatz 2 Reihen hat, Daten haben 0 Fehler bei wrapup: nicht die Verbindung öffnen kann

Antwort

0

Wenn der Datenrahmen subsetting, müssen Sie die gleichen Spaltennamen verwenden. Ich habe den Spaltennamen in , Dropoff_d, coordinates(Dropoff_p) und proj4string(Dropoff_d) geändert, und dann funktioniert Ihr Skript.

Zusätzlich hat das mapview Paket nur ein neues Update. Wenn Sie möchten, können Sie Ihre mapview auf Version 2.0.1 aktualisieren. Sie können auch col.regions = "red" und col.regions = "blue" hinzufügen, weil es so aussieht, als würde das Argument color unter der neuen Version nur die Umrisse eines Punktes ändern. Um die Füllfarbe zu ändern, verwenden Sie col.regions.

library(sp) 
library(rgdal) 
library(leaflet) 
library(mapview) 
library(dplyr) 

a <- semi_join(Dropoff , PickUP , by = c("pickuplong","pickuplat")) 
a$ID <- 1:nrow(a) 
Dropoff_p <- a[, c("ID", "pickuplong", "pickuplat")] 
Dropoff_d <- a[, c("ID", "Droplong", "Droplat")] 
coordinates(Dropoff_p) <- ~pickuplong + pickuplat 
coordinates(Dropoff_d) <- ~Droplong + Droplat 
proj4string(Dropoff_p) <- CRS("+init=epsg:4326") 
proj4string(Dropoff_d) <- CRS("+init=epsg:4326") 
map_p <- mapview(Dropoff_p, color = "red", col.regions = "red") 
map_d <- mapview(Dropoff_d, color = "blue", col.regions = "blue") 
map_p + map_d 
+0

Ich habe Fehler in der zweiten Zeile, wo ein $ ID <- 1: nrow (a) – Behzad

+0

wissen Sie, wie kann ich die Kreis-Symbole auf der Karte auf andere Formen wie rechteckig ändern. Danke – Behzad

+0

@Behzad Ich weiß nicht, ob es eine einfache Möglichkeit gibt, das Symbol von Kreis zu Rechteck zu ändern. Weitere Informationen finden Sie in der Dokumentation von 'mapview' https://environmentalinformatics-marburg.github.io/mapview/introduction.html oder in der Broschüre. Übrigens, wenn meine Lösungen zumindest Ihre ursprünglichen Fragen lösen können. Bitte akzeptiere sie als Antworten. – www

Verwandte Themen