首先,我將在下面展示一個示例,讓您了解它是如何作業的。下面的代碼生成兩個坐標之間的路線。
library(googleway)
set_key( "API KEY")
#databases
df<-structure(list(Properties = c(1,2),
Latitude = c(-24.930473, -24.95575),
Longitude = c(-49.994889, -49.990162),
cluster = c(1,2)), class = "data.frame", row.names = c(NA, -2L))
df1<-structure(list(Properties = c(3,4),Latitude = c(-24.924361,-24.95575),
Longitude = c(-50.004343, -50.007371),
cluster = c(1,2)), class = "data.frame", row.names = c(NA, -2L))
#Table to join df and df1
data_table <- rbind(df,df1)
data_table<-data_table[c(2:3)]
df2<-google_directions(origin = data_table[1,], destination = data_table[3,],
mode = "driving") #I specified properties 1 and 3 which are from cluster 1
df_routes <- data.frame(polyline = direction_polyline(df2))
m1<-google_map() %>%
add_polylines(data = df_routes, polyline = "polyline")

現在,我嘗試在 Shiny 中執行此操作,但沒有像上面示例中那樣指定屬性的坐標。從這個意義上說,我創建了一個selecInput來選擇我想要查看路由的集群。如何在下面的代碼中調整它?
這個問題可以幫助:
uj5u.com熱心網友回復:
如果k代表您要定位的集群編號,并且cluster是資料集中的一列(我不明白為什么您有dfand df1,然后將它們行系結在一起),那么您可以簡單地做這樣的事情來限制輸入google_directions()僅呼叫與集群對應的行k
data_table1<-data_table[data_table$cluster==k,c(2:3)]
然后,在對 的呼叫中google_directions(),您將執行此操作(請注意,我現在正在呼叫第 1 行和第 2 行(而不是您的示例中的第 1 行和第 3 行),因為data_table$cluster==k上面的過濾確保 data_table1 只有兩個與集群關聯的行k
df2<-google_directions(
origin = data_table1[1,],
destination = data_table1[2,],
mode = "driving")
最后,我不確定您是否要退回所有data_table. 也許您進行調整以使其僅回傳data_table1(即您感興趣的集群的子集)?:
return(list(
"Plot1" = plot1,
"Data" = data_table1
))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/451369.html
上一篇:谷歌地圖折線沒有出現
