अभिनंदन
यदि आपकी मूल तालिका को gps_p कहा जाता है, तो आपके टाइमस्टैम्प फ़ील्ड को ts और अंक को th_geom कहा जाता है:
SELECT (geom).geom, ts1 + (((geom).path[1]-1) ||' seconds')::interval FROM
(SELECT ts1, ST_DumpPoints(ST_Segmentize(geom, ST_Length(geom)/5)) as geom FROM
(SELECT ts1, ST_LineFromMultipoint(ST_Union(geom1, geom2)) as geom FROM
(SELECT p1.ts as ts1, p2.ts as ts2, p1.the_geom as geom1, p2.the_geom as geom2
FROM gps_p p1 INNER JOIN gps_p p2 on p1.ts + '00:00:05'::interval = p2.ts
) a
)b
) c
WHERE (geom).path[1] <= 5;
यह क्या करता है कि यह बिंदुओं के बीच लाइनें बनाता है और 5 खंडों में रेखा को विभाजित करने के लिए st_selectize का उपयोग करता है।
यदि यह आपके मूल बिंदुओं के बीच ठीक 5 सेकंड नहीं है तो यह काम नहीं करेगा। तो आप बस एक अनुक्रम के साथ एक आईडी फ़ील्ड जोड़ सकते हैं और उपयोग कर सकते हैं कि इसके बजाय id1 + 1 = id2 के साथ तालिका को आत्म-निर्भर करें।
HTH
/ Nicklas