SQL Reference
Geospatial Functions
Spatiotemporal Operators
{{ocientgeo}} spatiotemporal operators perform calculations on geospatial data using an array of timestamp arguments st longestline with the specified two linestring timestamp array pairs, this function returns a two point linestring that represents the maximum distance between points at a concurrent time if the two linestring values do not overlap temporally, this function returns null syntax st longestline(linestring1, ts arr1, linestring2, ts arr2 \[, use spheroid] ) 150,163,350 true left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type example select st longestline( st makeline(st point(0, 0), st point(0, 12)), timestamp \[]\( '2020 07 04 07 00 00 000000000', '2020 07 04 11 00 00 000000000'), st makeline(st point(0, 0), st point(8, 0)), timestamp \[]\( '2020 07 04 08 00 00 000000000', '2020 07 04 10 00 00 000000000')); output linestring(0 9, 8 0) to use st longestline as a spatial function to calculate the longest line between two points, see the docid\ pifo3jqjej4vo8mp3zkyd function st linegetalltimesatpoint returns a timestamp array of all times when the specified linestring value intersects the specified point value if the line never intersects the point, then the function returns an empty timestamp array if the specified inputs are null, the function returns null this function cannot represent intervals of time where the line was stationary at a point, therefore, use this function only for mobile paths if the path is stationary, use the docid\ m7egwhp4eqnp5gr81gvwq function as it can represent intervals of time spent intersecting a stationary linestring syntax st linegetalltimesatpoint(line, timestamp arr, point) 150,157,350 true left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type example select st linegetalltimesatpoint( st makeline(st point(0, 0), st point(4, 0), st point(0, 0)), timestamp \[]\( '2020 07 04 07 00 00 000000000', '2020 07 04 08 00 00 000000000', '2020 07 04 09 00 00 000000000'), st point(0, 0)); output timestamp\[]\('2020 07 04 07 00 00 000000000', '2020 07 04 09 00 00 000000000') st linegetpointattime returns a point within the bounds of the specified linestring that corresponds to the interpolated point at the specified timestamp value the specified timestamp value does not need to be an actual value explicitly included in the array the function interpolates the corresponding point, which means that the function approximates the point coordinates from the surrounding values the linestring and timestamp array must be the same size if the timestamp array is not monotonically increasing, the behavior is undefined syntax st linegetpointattime(line, timestamp arr, time for point) 150,161,350 true left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type example select st linegetpointattime( st makeline(st point(0, 0), st point(4, 0)), timestamp\[]\('2020 07 04 07 00 00 000000000', '2020 07 04 08 00 00 000000000'), timestamp('2020 07 04 07 30 00 000000000')); output point(2, 0) st linegettimeatpoint returns the interpolated time of the specified point on the specified linestring that is paired with a timestamp array the linestring and timestamp array must be the same size syntax st linegettimeatpoint(line, timestamp arr, point for time) 150,159,350 true left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type example select st linegettimeatpoint( st makeline(st point(0, 0), st point(4, 0)), timestamp\[]\('2020 07 04 07 00 00 000000000', '2020 07 04 08 00 00 000000000'), st point(2, 0)); output timestamp('2020 07 04 07 30 00 000000000') st intersection returns a tuple that represents the intersection of a spatiotemporal linestring with a static geography if t he specified static geography is a point , the returned value is a tuple that contains a paired point array and timestamp array if t he specified static geography is a linestring or polygon , then the returned value is a linestring array paired with a two dimensional timestamp array syntax st intersection(line, timestamp arr, intersection point) 187,126,350 true left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type example select st intersection( st linestring('linestring(1 1,2 2,3 3)'), timestamp\[]\('2020 07 04 07 00 00 000000000', '2020 07 04 11 00 00 000000000', '2020 07 04 12 00 00 000000000'), st polygon('polygon((2 2,3 2,3 3,3 2,2 2))')); output tuple(linestring\[]\(st linestring('linestring(2 2)'), st linestring('linestring(3 3)')), array\[array\[timestamp '2020 07 04 11 00 00 000000000'], array\[timestamp '2020 07 04 12 00 00 000000000']]) st shortestline when you specify two linestring timestamp array pairs, this function returns a linestring with two points that represents the minimum distance between points at a concurrent time if the two linestrings do not overlap temporally, this function returns null syntax st shortestline(linestring1, ts arr1, linestring2, ts arr2 \[, use spheroid ]) 133,166,350 true left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type example select st shortestline( st makeline(st point(0, 0), st point(4, 0)), timestamp\[]\('2020 07 04 07 00 00 000000000', '2020 07 04 08 00 00 000000000'), st makeline(st point(3, 0), st point(4, 8)), timestamp\[]\('2020 07 04 07 00 00 000000000', '2020 07 04 07 30 00 000000000')); output linestring(0 09295649430902601 0, 3 0461764508256914 0 37184471667525754) to use st shortestline as a spatial function to calculate the shortest line between two points, see the docid\ pifo3jqjej4vo8mp3zkyd function related links docid\ czxgepf3prq9ufwhwbiuy docid\ z sg ji6rbv01v5wtlzz2