我正在开发一个显示Map的Shiny Application,所以我使用Leaflet()
库来显示地图。以下是我的UI.R和Server.R
UI.R
library(shiny)
library(leaflet)
shinyUI(
dashboardPage(
dashboardHeader(title = div(img(src="new.gif", height = 40, width =
200),"My Dashboard",width = 300)),
dashboardSidebar(
sidebarMenu(
menuItem("Location", tabName = "Location")
)
)
dashboardBody(
tabItem("Map",
fluidRow(
leafletOutput("mymap")
)
)
Server.R
library(shiny)
library(leaflet)
shinyServer(function(input,output,session){
output$mymap <- renderLeaflet({
leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=df$Lon,
lat=df$Lat)%>%
addPolylines(lng=df$Lon,
lat=Lat)
})
})
正在从数据框Lattitude
Longitude
和df
的值
df <- data.frame("lat" = c(12.8908,12.891,12.890),
"Lon" = c(77.5904,77.588,77.5868))
因此,当我运行上述脚本时,它会显示Error: addMarkers requires non-NULL longitude/latitude values.
我无法追踪错误,我尝试将其转换为向量,因为validateCoords()
要求lat
和lon
为vector
格式,但它没有救命。
答案 0 :(得分:1)
在数据框df中,这些列称为“ lat”和“ Lon”,但是在addMarkers()中,您尝试使用“ Lat”和“ Lon”列。因此,您拼写纬度的方式有所不同(纬度与纬度)。 这样可以解决您的问题吗?
除此之外,在addPolylines()中指定lat = Lat。如果您想再次使用数据框df中的列,则应为lat = df $ lat