我正在尝试使用rmap http://rmaps.github.io/来绘制车辆在地图上所遵循的路线。在我的理想世界中,地图应该:*是交互式的(即可缩放的,滚动的)*存储和显示元数据(例如,当你点击一个标记时得到一个弹出)**显示车辆行驶的实际路径(或者使用路径点之间的直线,甚至可能是沿着道路)。*嵌入在闪亮的网页中
通过rMaps向传单地图添加标记是非常容易的。我只是想知道是否可以添加Leaflet.js中可用的其他结构,例如Polyline和Polygon。如果没有,这类功能是否计划在将来的版本中使用?
我在这里查看了rMaps代码中的传单:https://github.com/ramnathv/rMaps/blob/master/R/Leaflet.R和我没有看到任何我认识的东西。geoJson有一个函数,我不知道如何使用。
发布于 2014-03-26 13:57:18
为了添加一个政治元素(例如圆圈),您应该:
在此之后,您可以使用以下代码添加一个很好的圆圈(不要忘记保存文件):
L.circle([29.7601927,-95.3693896],7200,{color:'red'}).addTo(map).bindPopup('some thing').addTo(map)有关更多信息,只需参阅http://leafletjs.com/reference.html中的传单API即可。
顺便说一句,rmap只是R和传单的接口,如果您想要创建真正疯狂的东西,您应该习惯于打开html文件并从传单API中添加java脚本代码,人们创建了惊人的插件,更多的是添加多边形,关于很酷的例子请参阅:
http://leafletjs.com/plugins.html
我也很喜欢这个:
http://threatwiki.thesentinelproject.org/iranvisualization
只是为了添加一些关于rMaps如何工作的附加信息(对于rCharts也是如此)
然后查看"map“的所有元素,并将其与传单API进行比较。例如,您可以在API中找到标记创建命令:
http://leafletjs.com/reference.html#marker (来自传单API),由以下人员创建:
L.marker([51.5, -0.09]).bindPopup('Hi. I am a popup').addTo(map);在rMaps中有一个等价的:
map$marker(
c(51.5, -0.09),
bindPopup = 'Hi. I am a popup'
)对于传单API中的每个元素,您只需一步一步地走,如果它不存在,那么您可以要求Github中的ramnath添加它为https://github.com/ramnathv/rMaps/pulls,或者由您自己创建一个在R代码中这样做的函数。
发布于 2014-04-05 19:37:37
我一直在研究同样的问题。您可以在这里找到一个“传单路由机”插件(https://github.com/perliedman/leaflet-routing-machine),它具有计算路径点之间路由的功能。他们的演示很酷!
我一直试图用rMaps和这个传单插件来绘制两个地点之间的路线。我仍然在努力让我的代码工作(我想我遗漏了一些东西),但是到目前为止它看起来是这样的。
library(rMaps)
library(leaflet)
map = Leaflet$new()
map$setView(c(50.6067, 3.6254), 6)
map$tileLayer(provider="MapQuestOpen.OSM")
map$marker(c(48.8588,2.3469), bindPopup = 'Pickup Location')
map$marker(c(52.3546,4.9039), bindPopup = 'Dropoff Location')
map
map$addAssets(jshead = c("leaflet-routing-machine.min.js"))
map$setTemplate(afterScript = sprintf("
<script>
L.Routing.control({
waypoints: [
L.latLng(48.8588,2.3469),
L.latLng(52.3546,4.9039)
],
geocoder: L.Control.Geocoder.nominatim(),
plan: L.Routing.plan(null, {
waypointIcon: function(i) {
return new L.Icon.Label.Default({ labelText: String.fromCharCode(65 + i)});
}
})
}).addTo(map);
</script>
"))
map至少,我认为如果你看看这个插件可能会有帮助,虽然我还没有完全弄清楚如何绘制路线!
https://stackoverflow.com/questions/22656990
复制相似问题