2016-05-31 12 views
1

Ich versuche, die Daten aus der Google Map API Distance Matrix zu R zu bekommen. Ich versuche, die JSON-Daten in R zu bekommen. Wie lade ich JSON-Daten in R, damit ich später parsen kann?JSON: Google Map Distance Matrix Daten in R "Wie JSON-Daten in R herunterladen?"

require(rjson) 
url <- "https://maps.googleapis.com/maps/api/distancematrix/jsonunits=imperial&origins=19+East+34th+Street+NewYork+NY+10016&destinations=40.5177433,-74.2749576&mode=transit&language=fr-FR&key=API_KEY_HERE" 
raw.data <- readLines(url, warn = "F") 
rd <- fromJSON(raw.data) 

Ich erhalte diese Fehlermeldung:

Error in fromJSON(raw.data) : unexpected character '<' 

Sie für die Hilfe danken

+0

hast du dir das 'httr' Paket angesehen? – cory

Antwort

0

Es ist einfach so passiert, ich ein Paket googleway geschrieben haben, die helfen können:

library(googleway) 

google_distance(origins = "19 East 34th Street NewYork NY 10016", 
       destinations = list(c(40.5177433,-74.2749576)), 
       key = key, 
       mode = "transit", 
       language = "fr") 

$destination_addresses 
[1] "350-356 Lawrie St, Perth Amboy, NJ 08861, États-Unis" 

$origin_addresses 
[1] "19 E 34th St, New York, NY 10016, États-Unis" 

$rows 
elements 
1 51,3 km, 51305, 1 heure 27 min, 5249, OK 

$status 
[1] "OK" 

Ähnlich simplify = FALSE stellen Sie den rohen json

google_distance(origins = "19 East 34th Street NewYork NY 10016", 
       destinations = list(c(40.5177433,-74.2749576)), 
       key = key, 
       mode = "transit", 
       language = "fr", 
       simplify = FALSE) 


[1] "{"                       
[2] " \"destination_addresses\" : [ \"350-356 Lawrie St, Perth Amboy, NJ 08861, États-Unis\" ]," 
[3] " \"origin_addresses\" : [ \"19 E 34th St, New York, NY 10016, États-Unis\" ],"    
[4] " \"rows\" : ["                    
[5] "  {"                      
[6] "   \"elements\" : ["                 
[7] "   {"                    
[8] "    \"distance\" : {"                
[9] "     \"text\" : \"51,3 km\","             
[10] "     \"value\" : 51305"               
[11] "    },"                   
[12] "    \"duration\" : {"                
[13] "     \"text\" : \"1 heure 27 min\","            
[14] "     \"value\" : 5249"               
[15] "    },"                   
[16] "    \"status\" : \"OK\""               
[17] "   }"                    
[18] "   ]"                     
[19] "  }"                      
[20] " ],"                      
[21] " \"status\" : \"OK\""                  
[22] "}" 

(wo zu bekommen simplify == TRUE verwendet jsonlite::fromJSON)

0

ich herausfinden, wie es durch JSONLite zu tun. Ich benutzte die native "fromJSON" von R und das verursachte Probleme.

rd <-jsonlite::fromJSON("Google_API_CALL_IN_HERE", simplifyDataFrame = TRUE)