First off I'd like to mention that I've never come close to anything-GIS until a few weeks ago when I thought of this. So please expect some layman's questions. I'm looking to create driving directions and public transport planning service for my home town in Asia.

Currently, the city has decent coverage in Google Maps (I'd say about 70-80% accurate and recent) while not too great coverage in OpenStreetMap though - about 80% that of Google Map. I'm leaning towards using OSM data to go ahead mainly because:

  1. OSM data seems flexible enough and available readily that modifications/contributions could be done easily.
  2. Quite a fair amount of GIS tools support OSM data.
  3. I believe in contributing to projects like OSM.
  4. Current budget won't fit into getting a Google Maps license (if that's even necessary in the first place)

I've thought of a fairly naive blueprint for the project. Please do point out if anything is amiss or outright impossible.

  1. Serving maptiles

    • As much as I like OSM, the tiles aren't smooth for the eyes. Found a few solutions for this: MapBox, CartoDB or TileStream by MapBox.
    • Given that the city as well as the country's international internet gateway isn't anything spectacular, I'm more inclined to deploy TileStream at a dc inside the country. This means TileStream will most likely be the choice. I suppose the process will be OSM (import to postgresql) -> TileMill with OSM Bright -> Export MBTiles -> Tile Stream.
    • I'll probably go with ModestMaps for JS lib as I have some experience with it before.
  2. Updating OSM data

    • iD by MapBox seems great for editing OSM. I'm not sure how long do the updates take to make it to public OSM data. I think I'll need to look into modifying iD to immediately update the local OSM data then update it online for others to see as well.
    • I'm looking to trace the maps using Bing aerial imagery. If I can stretch the budget, I'll hire a few part-timers to drive through parts of the city.
    • Are there any other tools you'd recommend? I looked at QGIS btw. It looks pretty great though a bit overwhelming for a first time user.
  3. Routing engines

    • This is ridiculously complicated for me right now. So I've found out I'd need at least two engines: a shortest/fastest path route engine (pgRouting, OSRM) and a multi-modal planner (OpenTripPlanner, GraphServer) for public transport. I probably shouldn't complain about not being able to find documentation/guides/references for certain projects as I'm not too familiar with all these for now.
    • No public transport data is available for the city. I'll need to talk to the few operators on ground and gather the info myself. No live feed whatsoever expected in the near future.
    • Which engine would be suitable in your opinion? Or am I even asking the right question?

Reading PostGIS in Action hoping it'll help me speed up. Anything else recommended for reading? I'm running this out of my pocket as of now. Probably can't hire a professional just yet. I do hope to talk to a few people with deep pockets in the near future. But it's just a thought.

If I didn't make any sense, it is because I am quite clueless at the moment.

  • which city? as there maybe alternative data sources.
    – Mapperz
    Commented Apr 9, 2013 at 1:10
  • I'm sorry, what's your question?
    – nagytech
    Commented Apr 9, 2013 at 4:42
  • @Mapperz - My city's case is very similar to that of Vientiane, Laos. Apologies as I can't reveal which city it is exactly for now. Any alternative data sources you'd want me to explore?
    – loststack
    Commented Apr 9, 2013 at 13:29
  • @Geoist - I'm sorry. I wrote a jumbled wall of text. My main concerns are "Are there any other tools you'd recommend (for updating OSM data) similar to iD by Mapbox? iD is pretty accessible." And routing engines: "Which engine would be suitable in your opinion?" Thanks.
    – loststack
    Commented Apr 9, 2013 at 13:31

1 Answer 1

  1. Serving map tiles

Tilestream is nice but if you want to have live maps (showing new OSM data as they happen) you need Apache and mod_tile (I think this is also used in main OSM site). You download OSM extract from geofabrik or anywhere else set up postgresql server. And updating mechanism. And them every time tile is requested it is checked if data was changed in DB and if it was tile is re rendered otherwise it is just returned. DB is updated each minute/hour/day how fast do you want it. You have to use mapnik style with this but Tilemill can export mapnik xml style. A lot of Tilemill styles are also on GitHub.

  1. Updating OSM Data

iD editor is main OSM editor for beginners and all changes are saved to OSM database as soon as you save them. It can take couple of minutes to see them in map tiles. This is because of caching. But if you use minute planet diffs you get changes as soon as you made them.

The same is true for all other editors (Potlatch, JOSM, Merkaartor). JOSM is used for more advanced editing usually. It has many more tools. Next to Bing there is also "Mapbox Satellite" option for tracing in iD and JOSM. This are images directly from DigitalGlobe. But it is always better to use data from GPS than only tracing images.

For mapping coordination you can use OSM quality assurance

JOSM has many plugins used to speed up drawing. One very useful for Public transport mapping is Public Transport You can drive with a bus and set waypoints each time you are on a stop. Then at home plugins helps you to add stops to OSM. It also eases adding routes. After all of this is in OSM you can see it in Transport style.

For mapping transit GO Sync should be useful. I also tried OSM2GTFS for bootstrapping GTFS but it didn't work for me on Linux. I write something on my own but didn't open source it yet.

  1. Routing engines

Why would you need 2 routing engines? I'm currently using OTP for my city routing and it's quite nice. It has multi-modal transport routing, pedestrian routing, bicycle routing and car routing. It also uses elevation data in routing if you have them. (You can get them from STRM or similar) OTP is a router for shortes/fastest path and transit. For example:

OTP is a java REST server with Leaflet fronted.

There also exist opensource Android application to access OTP server. It is also on Google Play and you can add your server URL to connect to it.

I think only OTP and Graphserver support OSM and GTFS data and are open source so you can add own data all others doesn't support Transit data.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.