My Labor Day bike ride suffered from a mysterious GPS failure, eventually blamed on failure to recharge batteries properly. I've had a pile of scripts lying around for a while to create the bike page data from the Census Bureau's TIGER/Line data set, but I need it so occasionally that I keep needing to update my scripts, and the data never quite lines up with the map. I figured I might try to put together some other pieces with MassGIS data sets to try to build the route data a different way.
Debian includes packages of UMN MapServer, which at least looked tempting from the package description. It's mostly focused on rendering existing layers rather than the kind of detailed querying I need to do (follow Mass Ave to Pearl Street to Granite Street, and so on). But that's built on top of a C++ library called GDAL that does provide direct data-layer access. That, MassGIS's road layer, some unfortunate STL, and I was actually able to get something to render in MapServer.
These data layers can be a little picky (did you know the last block of Beacon Street in Somerville is offset by a millimeter from the rest of the street?) so it's useful to be able to debug the data entry. My old code took a long time to render and it was hard to browse through the data set. I got much better performance through GDAL than my hand-rolled database code, and actually using MapServer in CGI mode meant I could see what this data layer called streets and the magic hint numbers I needed for my script.
So I'm pretty happy with the way this turned out. I got the map page I was after, I had reasonably clean code, and it's faster and easier to use than what I had before.
Debian includes packages of UMN MapServer, which at least looked tempting from the package description. It's mostly focused on rendering existing layers rather than the kind of detailed querying I need to do (follow Mass Ave to Pearl Street to Granite Street, and so on). But that's built on top of a C++ library called GDAL that does provide direct data-layer access. That, MassGIS's road layer, some unfortunate STL, and I was actually able to get something to render in MapServer.
These data layers can be a little picky (did you know the last block of Beacon Street in Somerville is offset by a millimeter from the rest of the street?) so it's useful to be able to debug the data entry. My old code took a long time to render and it was hard to browse through the data set. I got much better performance through GDAL than my hand-rolled database code, and actually using MapServer in CGI mode meant I could see what this data layer called streets and the magic hint numbers I needed for my script.
So I'm pretty happy with the way this turned out. I got the map page I was after, I had reasonably clean code, and it's faster and easier to use than what I had before.