2013-02-19 42 views
1

我打算构建一个Rails应用程序,该应用程序应存储有关地理路线(可能为数百万)的数据。路线从智能手机录制或手动“绘制”在网络界面中。存储地理路线

一条路线由多个(最多约10,000个)坐标组成,其中包含时间戳,纬度和经度 - 但也可能有高度和精度。

存储时,我需要过滤出“pgs noice”,计算总距离并显示在地图上。

你会如何建议我存储路线数据?

我正在考虑使用PostgreSQL,并希望将每个Trip存储在一行中以便快速插入和检索(?)。这将需要一个多维数组字段,它只支持我Rails 4.0(?)。

与此同时,我一直在寻找PostGISActiveRecord Adapter,但不确定这是否矫枉过正或如何与PostgreSQL阵列配合使用。

任何输入将不胜感激。

回答

0

基本上你有两种选择。

  1. 您可以在PostgreSQL上使用一个点数组。 PostgreSQL中的数组相对复杂,理解数组非常重要,而我的主要基元主要在平面上工作,而不是球体,所以你失去了球形触发等。由于这些原因,我不推荐这种方法,除非您已经熟悉这两种方法并且有具体的理由来选择这种方法。当然,如果你喜欢,你也可以建立自己的球形三角函数....但是为什么当PostGIS可用时,我现在不会。

  2. 您可以在PostGIS中使用地理类型。这些是有用的,因为你可以存储非常复杂的多行。 PostGIS也为您提供球形触发功能。一般来说,这里的类型更接近你想要做的事情。

最后,我会建议看看pgrouting这可能会给你一些额外的功能,你可能会发现有帮助。