The “Movement data in GIS” series discusses all things related to working with movement data aka. trajectories in GIS, covering concepts, libraries, desktop GIS, databases, and big data technology.

Here are all posts in chronological order:

  1. Issues & ideas 
  2. Visualizing individual trajectories
  3. Visualizing massive trajectory datasets 
    Update 2017: Trajectory aggregation code & sample data
    Update 2020: Trajectory aggregation in MovingPandas
  4. Variations in movement over time
  5. Current research topics
  6. Updates from AGILE2017
  7. Animated trajectories with TimeManager
    Extra: GPS Trajectories with error ellipses
  8. Edge bundling for flow maps
  9. Trajectory data models
    Update 2020: From Simple Features to Moving Features and Beyond?
  10. Open tools for AIS tracks from
  11. FOSS4G2017 talk recordings
  12. Why you should be using PostGIS trajectories
  13. Timestamp labels for trajectories
  14. Updates from GI_Forum 2018
  15. Writing a PL/pgSQL stop detection function for PostGIS trajectories
  16. Towards pure Python trajectories using GeoPandas
  17. Spatial analysis of GeoPandas trajectories
  18. Creating evaluation data for trajectory predictions
  19. Splitting trajectories by date
  20. Trajectools v1 released!
  21. New interactive notebook to get started with MovingPandas
  22. Movement data in GIS and the AI hype
  23. Trajectories in context
  24. MovingPandas hands-on tutorials
  25. Moving object databases
  26. Towards a template for exploring movement data
  27. Extracting trip origin clusters from MovingPandas trajectories
  28. Open geospatial tools for movement data exploration
  29. Web apps with movement data using mobilitydb-sqlalchemy
  30. Synchronized trajectory animations with QGIS temporal controller
  31. Exploring massive movement datasets
    Part 1: M³ Massive Movement Model: aggregating movement data using prototypes
    Part 2: Generating trajectories from massive movement datasets
    Part 3: Extracting trajectory-based flows between M³ prototypes
  32. “Exploring movement data” 🎬
  33. “Exploratory analysis of massive movement data” 🎬
  34. A protocol for exploring movement data
  35. Stop detection & analysis with MovingPandas
  36. Trucks from space
  37. Understanding Movement Data” 🎬
  38. MovingPandas now supports local coordinates
  39. New OGC Moving Features JSON support in MovingPandas
  40. Detecting close encounters using MobilityDB 1.0
  41. Visualizing trajectories with QGIS & MobilityDB
  42. Deep learning from trajectory data
  43. How to use Kaggle’s Taxi Trajectory Data in MovingPandas

Relevant source code repositories:

My scientific publications on this topic:


  1. Nicolai Jorgensen said:

    Hey Anita. Have you seen this project? It would be interesting to be able to do this in QGIS as well.

  2. rbenet71 said:

    Hi Anita. I do not know if asking you this question here is correct or not, and I apologize if I do not do it correctly.

    In your article # 13 “Timestamp labels for trajectories” you showed the track time, but what if you want to see the distance that has been traveled? (showing for example every 10km?).

    I have launched this query in Gis Stack Thank you for advance.

    • Hi, can you share the LineStringM geometry? That would make it easier to try find a solution.

  3. rbenet71 said:
    • For now, I think your best bet is to use the Points along geometry tool to generate a new point layer that can be labeled. Basically, if the Points along geometry function was available in the Geometry generator functions, we could use it to generate (and label) the points on the fly.

  4. rbenet71 said:

    Hi Anita, by the moment I don’t know, from Geometry Generator, how to call:

    ( ““native:pointsalonglines”, {‘INPUT’:’$geometry’,’DISTANCE’:1,’START_OFFSET’:0,’END_OFFSET’:0,’OUTPUT’:’TEMPORARY_OUTPUT’})

    By the moment I discover another function, that creates a point in a distance (10km for example):


    If you create for 20km, 30km,… you can have every 10km, but if you want for each km I think it’s a lot of work.

    Do you think is possible to create a bucle for do this? Or do you how I call the function “pointsalonglines” from Geometry Generator?

    Thank you so much for help and attention.

    • I also considered line_interpolate_point() but I don’t see a convenient way to automate it for lines of arbitrary length. I also don’t have an example at hand of how to use a processing algorithm in a expression function (which can then be used in a geometry generator). I recommend asking on because maybe somebody already has an example at hadn.

  5. rbenet71 said:

    Thank you so much, I will do.

Leave a Reply to underdark Cancel reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: