MongoDB:如何存储GPS轨迹,包括时间戳

时间:2017-10-10 09:11:07

标签: mongodb gps

我对您存储GPS坐标(经度和纬度)和时间戳的最有效(或最智能)方式的输入感兴趣。

我正在考虑这两个想法:

gpsTrack = {   
       "gps_track" : {   
        "type": "FeatureCollection",
            "features": [
              { "type": "Feature",
                "geometry": {"type": "Point", "coordinates": [104.0, 0.3]},
                "properties": {
                    "absolute_timestamp" : "2011-12-31T23:50:59Z" 
                } 
              },

            { "type": "Feature",
                "geometry": {"type": "Point", "coordinates": [128.0, 0.5]},
                "properties": {
                    "absolute_timestamp" : "2011-12-31T23:59:59Z" 
                } 
              }
            ] }
}

或使用GeoJSON MultiPoint和时间戳作为数组。

gpsTrack = {   
        "geometry": {"type": "MultiPoint", "coordinates": [[104.0, 0.3], [128.0, 0.5]]},
        "properties": {
            "timestamps" : ["2011-12-31T23:50:59Z", "2011-12-31T23:59:59Z"]
}

航路点的总量假定为4.000到10.000,但肯定低于100.000。对于第一个想法,我担心收集会变得很长,因为每个点和它的时间戳都是分开存储的。虽然第二个想法更紧凑,并且使用MultiPoint GeoJSON类型。

感谢您的意见。

1 个答案:

答案 0 :(得分:1)

也可以使用坐标数组作为时间戳。很可能mongodb只会对前2个坐标对象感兴趣。您可以将时间戳作为第三个对象。

gpsTrack = {   
    "geometry": {
        "type": "MultiPoint", 
        "coordinates": [
          [104.0, 0.3, "2011-12-31T23:50:59Z"], 
          [128.0, 0.5, "2011-12-31T23:59:59Z"]]
    }
}
像我说的那样,如果这违反了mongodb来对coordinates进行地理查询,我就不会尝试。