存储地理路线

时间:2013-02-19 15:06:16

标签: ruby-on-rails ruby geospatial postgis rails-postgresql

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

路线由多个(最多约10,000个)坐标组成,包含时间戳,纬度和经度 - 但也可能包括高度和准确度。

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

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

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

与此同时,我一直在关注PostGISActiveRecord Adapter,但不确定这是否过度或者如何使用PostgreSQL数组。

非常感谢任何输入。

1 个答案:

答案 0 :(得分:0)

基本上你有两种选择。

  1. 你可以在PostgreSQL上使用一系列点数。 PostgreSQL中的数组是相对复杂的,理解数组很重要,我的主基元主要用于平面,而不是球体,因此你会失去球形触发等。由于这些原因,我并不真正推荐这种方法,除非您已经熟悉这两种方法并且有特定的理由选择这种方法。当然,如果你愿意的话,你也可以建立你自己的球形触发功能......但是为什么你在PostGIS可用时我现在不会这样做。

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

  3. 最后,我建议您查看pgrouting,它可能会提供一些您可能会发现有用的其他功能。