用Ruby绘制GPS信息
我正在寻找以编程方式将我的GPS日志转换为图像的方法,并希望在Ruby中实现这一点。。。如果这是一个可接受的工具。我没有任何GIS背景,但作为一名程序员,我认为这是一个有趣的问题 以下是我到目前为止的想法。首先,您需要某种图形库。我找了一个合适的,但最近似乎很热。我创建了一个小脚本,用于转换GPX文件并将数据提供给gnuplot,结果如下: 这看起来不错,但gnuplot似乎真的是一个创建图形的工具,而不是空间数据。是这样做的,还是有更好的解决方案用Ruby绘制GPS信息,ruby,gps,plot,spatial,gpx,Ruby,Gps,Plot,Spatial,Gpx,我正在寻找以编程方式将我的GPS日志转换为图像的方法,并希望在Ruby中实现这一点。。。如果这是一个可接受的工具。我没有任何GIS背景,但作为一名程序员,我认为这是一个有趣的问题 以下是我到目前为止的想法。首先,您需要某种图形库。我找了一个合适的,但最近似乎很热。我创建了一个小脚本,用于转换GPX文件并将数据提供给gnuplot,结果如下: 这看起来不错,但gnuplot似乎真的是一个创建图形的工具,而不是空间数据。是这样做的,还是有更好的解决方案 还有一个问题,你知道如何构建这样的东西吗?你真
还有一个问题,你知道如何构建这样的东西吗?你真的想要图像,还是仅仅是一种可视化数据的方法?使用谷歌地图api怎么样 查看此链接:
如果您想更深入地了解R,也有Ruby绑定,但该项目已有一年多没有任何活动:
我认为从任何编程语言使用gnuplot都是一个良好的开端 但是,我强烈建议在代码中的某个地方添加
set size ratio-1
gnuplot命令,因为这将使绘图中的x轴和y轴比例相等,这一点非常重要
您还可以使用时间间隔相等的非常小的点标记(假设您的数据中有时间信息,或者至少您知道行是按固定时间间隔采样的)来增加直线,这样您就可以感觉到移动的速度,否则就会丢失(即,直线上间隔较大的点标记意味着移动速度更快). 显然,您应该在点标记之间选择一个时间间隔,使其具有适当的间距,或者自动计算该时间间隔:即,通过计算曲线的长度,以像素为单位进行转换,然后除以10到100之间的任何值,以获得要放置的点的总数。然后,时间间隔由轨迹的总时间除以该点数得出。这对于合理规律的运动应该有效
另一个选择是使用与gnuplot不同的图表系统,它功能强大,但有点旧。我知道的选项包括:
- ,这适用于ruby,但似乎缺少2D绘图功能(这是一个明显的要求)
- ,功能强大且灵活,但具有商业价值。在本例中,您将使用ruby或任何其他编程语言生成一个XML文件,然后将其解释为一个交互式图形
- ,它可以通过web返回图表图像,在代码中伪造适当的GET或POST请求。在本例中,您对
图表类型感兴趣,可能与点标记的图表混合lxy
怀有进入世界的野心 快节奏的,而不是完全的 那么,代码艺术的残酷世界 Ruby处理可能是一种 你应该试穿一下尺寸 处理是麻省理工学院开发的 用于生成小代码的框架 人工制品,动画, 可视化等等, 最初由Ben Fry和 Casey Reas,由一支小型军队支持 开源贡献者的数量。
处理已经成为一种 视觉导向标准 编程,影响深远 Nodebox的设计,鞋子, Arduino和其他类似项目 对第一个问题的答复 既然你说你“想用Ruby做这件事……如果这是一个可以接受的工具的话”,我就冒险假设你可能会接受一个非Ruby的解决方案,如果它满足你所有的其他需求的话 我之所以推荐,主要是因为在第一章中,作者Shai Vaingast介绍了一个从GPS接收器读取GPS数据的示例,然后绘制了结果。如果您对基于Python的解决方案持开放态度,这本书将是一个很好的资源 以下是用于读取和绘制GPS数据的Python包:
- 从串行端口读取GPS数据的步骤
- 绘制数据。是一个用Python绘制数组2D图的库。虽然它起源于模拟MATLAB®图形命令,但它独立于MATLAB,并且可以以Python的、面向对象的方式使用