Как преобразовать ответ API в объект Polygon в R? API Graphhopper в R — изохроны

Я новичок в API и R, и мне было интересно, как использовать этот API GraphHopper.(https://graphhopper.com/api/1/docs/isochrone/) На странице выше есть это:

curl "https://graphhopper.com/api/1/isochrone?point=51.131108,12.414551&key=[YOUR_KEY]"

Есть ли способ преобразовать ответ в полигональный объект?

До сих пор я добрался сюда, но я не знаю, как преобразовать запрос в полигон:

library(httr)
library(jsonlite)

a = GET("https://graphhopper.com/api/1/isochrone?point=51.131108,12.414551&key=KEY")

class(a)

a$status_code

person Paladinic    schedule 25.01.2018    source источник
comment
Вы можете увидеть это   -  person MrSmithGoesToWashington    schedule 25.01.2018
comment
Я не думаю, что есть что-то в API. Я ищу такую ​​функцию, как: polygon ‹- parseAsPolygon(GET(http://...))   -  person Paladinic    schedule 25.01.2018
comment
Заголовок: Доступ к API из R (и немного программирования на R)... почему вы говорите, что в API ничего нет? В любом случае, вы уже сделали запрос. Если я хорошо понимаю, ваше дело состоит в том, чтобы понять содержание вашего возражения. Итак, может быть, вы можете добавить к вашему вопросу результат dput(a) .. и кто-то может помочь вам изучить этот объект?   -  person MrSmithGoesToWashington    schedule 25.01.2018
comment
Иисус, прости. Я кликал по твоему имени. Спасибо за помощь   -  person Paladinic    schedule 25.01.2018


Ответы (1)


Это сработало..

library(RJSONIO)
library(sp)
library(leaflet)

## GraphHopper API
# https://graphhopper.com/api/1/docs/isochrone/

#Request
a <-fromJSON("https://graphhopper.com/api/1/isochrone?point=51.131108,12.414551&key=[GET YOUR OWN KEY]")

#Response
x = a$polygons$geometry$coordinates

#Response Manipulation
x = data.frame(unlist(x))
m = nrow(x)/2
x1 = x[1:m,1]
x2 = x[(1+m):nrow(x),1]
x0 = data.frame(cbind(x1,x2))

#Polygon plotting on Leaflet
p = Polygon(coords = x0)

leaflet()%>%
  addTiles()%>%
  addPolygons(data = p)
person Paladinic    schedule 25.01.2018
comment
Официальный клиент R упрощает эту задачу: github.com/graphhopper/directions-api-clients ? - person Karussell; 26.01.2018