TRK_Query takes a track column and an offset and returns a point. The result represents the location that is the offset distance or offset duration along the input track, measured from the track start.
An offset column can be created with ST_CreateDistance or
ST_CreateDuration. You can also define an offset with a tuple
containing a number and a unit string (e.g., (10, "kilometers")
or (5, "minutes")
).
Tracks are linestrings that represent the change in an entity's location over time. Each vertex in the linestring has a timestamp (stored as the M-value) and the vertices are ordered sequentially.
For more information on using tracks in GeoAnalytics Engine, see the core concept topic on tracks.
Function | Syntax |
---|---|
Python | query(track, offset) |
SQL | TRK |
For more details, go to the GeoAnalytics Engine API reference for query.
Examples
from geoanalytics.sql import functions as ST
from geoanalytics.tracks import functions as TRK
data = [
("LINESTRING M (-117.27 34.05 1633455010, -117.22 33.91 1633456062, -116.96 33.64 1633457132)",),
("LINESTRING M (-116.89 33.96 1633575895, -116.71 34.01 1633576982, -116.66 34.08 1633577061)",),
("LINESTRING M (-116.24 33.88 1633575234, -116.33 34.02 1633576336)",)
]
df = spark.createDataFrame(data, ["wkt"]).withColumn("track", ST.line_from_text("wkt", srid=4326))
result = df.withColumn("query", TRK.query("track", (10, "kilometers")))
ax = result.st.plot("track", edgecolor="lightgrey", zorder=0, linewidths=10, figsize=(15, 8))
result.st.plot("query", ax=ax, facecolor="red", s=75, zorder=1)
ax.legend(['Input track','Query result'], loc='lower right', fontsize='x-large')
Version table
Release | Notes |
---|---|
1.4.0 | Function introduced |