Sunday, September 20, 2015

Presenting a new little project

I have been playing around with the idea of implementing supporting public transportation routing in gnome-maps (in addition to the current support for car, bike, and pedestrian routing supplied by GraphHopper).
I thought OpenTripPlanner (OTP) seemed to be suitable for the task.
After looking at possibly using "GTFS manager" from geOps for downloading GTFS feeds, I found it didn't work quite as I had in mind (i.e. keeping the "zipped-up" incarnations of .zip files in its cache, while OTP builds its internal graph objects directly from the .zips), I took some inspiration of borrowed some code from it and came up with a new little project that I called "otp-updater": https://github.com/mlundblad/otp-updater

It can currently handle peeking at a standalone feed_info.txt (as is supplied by trafiklab.se) to avoid having to download the entire GTFS feed to see if there's been an update, it will also try to make an HTTP HEAD request to get a peek at the "last-modified" header of the feed, if that is supported by server.
Upon finding an updated GTFS feed, it will copy it to your OTP instance' repo and trigger a rebuild of the corresponding graph.

There is currently not much documentation (apart from the help text). Also the CSV parser should probably be made to handle # comments and some things like that. I might also add support for a global configuration file so that command line argument won't be nessary to use all time, and some things like that.

Tuesday, September 15, 2015

And here comes a little preview of what's currently available in the wip/osm-edit branch of gnome-maps.

This shows some actual live updating of OSM data.

A small screencast showing the current state of OpenStreetMap editing in gnome-maps.

Note how pasting a wikipedia link automagically reformats the link to the OSM wikipedia tag format.

Also note how the stored place (the data shown in the popover for the place) is updated after a successful edit.
You still need to supply your OSM username and password via environments variables, as there is no settings UI for this yet.