I need to do the following in Python
- open OSM & GPX files (I have packages for this)
- transform points from GPX (like stick a track to roads)
- calculate the results (distances, cumulative distances, etc.)
I need to do this repeatedly, so a Python script is much more preferred. Desktop software with plugins is not suitable. I'll prefer some Python & C modules than a quest of installing plugins. PostGIS may be an option too.
Shapely (Python package) seems to not be able to do this (it works only in 2D on a plane, and mentions it has no projections). I don't need 3D, but I have the input as lat&lon coordinates, and need to do geometric transformations (project a point on a polyline) and calculate distances in metres.
What modules should I use?

