在MySQL中存储多个GPS坐标

时间:2012-01-26 21:29:42

标签: php android mysql gps geospatial

我正在制作一款能够跟踪用户并实时显示其位置的Android应用。我有它工作,但我有问题正确存储数据库中的坐标。现在,用户的位置将每秒更新一次,它将位置存储在数据库中,然后Web应用程序从数据库中提取最新的位置。我希望能够为特定用户存储一行中的位置列表。我在MySQL中阅读了一些关于GeoSpatial信息的内容,我认为linestring数据类型可以工作,但我似乎无法找到有关如何在PHP中实现查询的足够信息。有人可以提供一个示例,说明如何使用PHP以线串类型向数据库附加坐标吗?或者提供如何使用数据库的一行连续存储坐标的建议。

由于

4 个答案:

答案 0 :(得分:2)

只需将用户所在的每个点都存储在一个表格中,并附上ID和时间戳。然后,您可以使用查询汇总点。

不要将整个曲目存储在一行中,否则以后您将无法对这些数据进行太多操作。

编辑:这是您的表格的样子:

gps_points

  • id(bigint)
  • user_id(int)
  • 时间戳(时间戳或日期时间,视您的需要而定)
  • lat(double)
  • lon(double)

答案 1 :(得分:0)

GPS坐标是一组X,Y和Z浮点值,而不是插入曲线的一组点(基本上是线串数据类型的用途)。所以我会将这些点存储在3个浮点列中,并附加时间戳等附加信息。如果需要,您可以从给定数据中推断出线串,以便在地图上显示。

答案 2 :(得分:0)

或者您可以仅将Firebase用于您的数据库,这非常灵活并且可以轻松地在Firebase中工作

答案 3 :(得分:-1)

我的经验是UTM格式更容易存储在数据库中,因为它是正交的,并且具有非常方便的语法。它也适用于单线串。您可以在这里找到信息和方便的课程,轻松转换GPS和UTM:

http://www.ibm.com/developerworks/java/library/j-coordconvert/index.html