2016-06-28 66 views
1

我是Shiny和R(具有数据库背景)的新手,希望得到您的帮助。我试图在地图上创建一个搜索工具(没有Nominatim)来缩放地图 - 我有一个csv文件(1800条目)中的街道和它们的纬度/经度列表。CSV列表作为SelectizeInput Shiny的来源

我打电话给他们

streets <-read.csv(file = "Q:/R/streets.csv")

,然后在ui.r我使用的输入

selectizeInput('st', 'Street to center the map', choices = streets) 

但控件返回ID列表 - 他们只是由系统生成,而不是在文件中,所以不要说'高街',而是显示'23'。 csv结构是StreetName/Lat/Lon

如何让它显示街道名称列? 我可以使输出纬度/经度(基于街道选择)还是我需要再次从服务器端的文件(重新查询文件)中获取这件作品?所有我需要从输入重新调整地图的中心点

+0

要显示街道名称,请使用'choices = streets $ StreetName'。 –

+0

即使有选择=街道$街道名称它仍然只呈现数字。当我关闭标题时,在街道名称之上有一个数字,所以我想知道它是不是与CSV阅读相关的东西 - 它看起来像它将街道名称标题移动到数字 – Slav

+0

尝试'选择= as.vector(街道$ StreetName)' –

回答

1

尝试choices=as.vector(streets$StreetName)。要使selectizeInputselectInput返回与显示的名称不同的值,请尝试choices=setnames(streets$Lat, streets$StreetName)。不知道如何让它返回两个数字(lat,lon)。

0

要添加上面的答案,由于您已经处理了csv文件并获得了一个名为streets的数据框,您可以直接使用“街道”根据街道名称的选择进一步检索纬度/经度。为此设置数据框街道的子集。