Making Maps

A quick note: The blog has had some hiccups over the last month and a half, sorry for any readers who couldn’t get access. I think I now have things worked out with our hosting provider and it should be better. We should have some more new material coming soon!

Making Maps – The First Step in Development

Having used google maps for years (and before that mapquest), I expected, in 2010 when I came to Bolivia, that a city of 100,000 people like Montero (wikipedia, better version) would certainly have some online maps that I could look at before I arrived. I was hoping to scope things out, see where I would be living and working, what was around, where I could put my skills to work, etc.  Unfortunately there wasn’t anything.  Google maps had a spot for montero, and a few of the roads, but not very many and almost no street names or any other kind of reference spot.  My personal favorite mapping spot, OpenStreetMap, was even worse off, it just had the main road through town (which I would later find out wasn’t even done correctly).

So when I got to Montero, not only did I not know what the town would be like, but we had the most difficult time finding my way around for the first couple months. After a while of this, I decided to take matters into my own hands and build a map of the town.  In addition to being able to find great fried chicken places a second time, I was hopeful that my map would also be of use to others. I know that there are several NGOs that work on a regular basis in and around Montero and it would be great if they could build off of my work as well. Eventually, I hope that as Bolivians become more and more computer literate, they could also benefit from having a decent map of their city. (Spoiler: here’s the link)

I decided to do my work in the OpenStreetMap database for two reasons: 1) they have great map making tools (both online and offline), which I was already familiar with and 2) the maps would be made freely available to anyone who wanted them.  For those not familiar with it, the OpenStreetMap (OSM) project works like wikipedia. Anyone can edit it and there is a huge community focused around making it better (and keeping it free of vandalism).

Being lazy, I started creating my map near where I was living. I’d go out early in the morning (before it got super hot) and wander around the streets near where I lived with my GPS running and a camera I used to take pictures some of the plaques that the city had put on every house. These had on them the address for that house and many had, crucially, the names of the streets. I had tried to write down the names, but that resulted in me standing in front of someone’s front door for a minute while I tried to write down spanish names. Using the camera allowed me to take just two seconds per door and resulted in a lot fewer strange looks.

An address plaque that has a street name on it.

Once I’d get back home, I’d convert my GPS track into the common GPX format (also wikipedia) which is a common, computer readable, format for GPS data. Once I had the GPX file, I would do two things with it. The first is to simply upload it to the OSM server so it would be available for use later. Then I would open it together with my pictures in a program called Viking. This program (and there are many others like it) could use the timestamp (assuming I had previous set the correct time on my camera plus or minus a few seconds) on my pictures to put them onto my GPS track. Now I could see which of the lines in my track (aka streets) had which names.

I would start up the online editor on the OSM website. To make streets here is very easy, I would start by clicking on the end of one street to make a point, then just click a few points along my track (more if there were turns) until I got to the end and OSM automatically connects them into a line. Finally, I would simply select the type of street: dirt road, paved road, various classes of highway, etc. (What these classifications mean varies from country to country, for example here they are in Brasil.)

Once I had all the lines for streets input into OSM, it was time to add their names. By looking at my GPS trace with the pictures at the same time as my new map, it was easy to see which picture corresponded with which road. All I had to do was read the picture and type it into the road name box.

I didn’t spend too much time on this right away, which turned out to be a good thing, because about a month after I got started OSM got sponsorship from Microsoft. Part of this deal meant that satellite imagery which Microsoft had would be available in OSM’s online editor. Now instead of walking up and down each street, I could just sit at my computer and draw the street lines where the satellite images showed the streets going.  Much easier!  The downside to this is that the satellite imagery didn’t line up quite right. It turned out that all the images were about 30ft north of where they were supposed to be, not terrible, but enough that it stood out on the GPS. To solve this I went to various points around town that were easily visible in the satellite imagery (I really only needed one or two though) and took careful GPS positions of them. Then I used these as control points to show me how far I needed to adjust my lines.

Now that I could make all the street lines from my computer things went much faster. After four hours of furious clicking, I had all the street lines in the main part of the city.  A few more days of on-and-off work gave me the rest of Montero and a bunch of the surrounding area. The map was looking very good, unfortunately only the streets near where I lived had names. To fix this, I went back to my walking around with a camera and taking pictures of address plaques, but it went much quicker now. I only needed to hit one house on each street.  I was able to walk a zig-zag path from the edge of town into the center and got all the street names in that quarter of the city!

In addition to streets OSM also has built in support for all kinds of points-of-interest from resturants to churches to drug-stores.  Its easy to add them in the editor, just select one and drag it in, and now that I had a map with streets and names, it was easy to figure out where to put things. If I knew that the grocery store was on Calle Warnes a block up from the main plaza, I could just add places from memory. After putting in my favorite/important places, I was considering my map complete!

This is about where it stands now, you can see it here:
http://www.openstreetmap.org/?lat=-17.3315&lon=-63.2577&zoom=14&layers=M

This is great, now when I find a great new fried chicken place, I know where to put it so I can find it again!  However, the uses of the map aren’t limited to finding restaurants or getting around town. OSM provides all the map data freely to anyone who wants to use it, so it can be imported into other programs and used as a base to add other map related information, such as population density, disease outbreaks, crime rates, etc. Then this data can be used to make important development decisions. This is really a whole field, which is called Geographic Information Systems (GIS), but you don’t need to be getting a graduate degree in it (like my brother who starts his masters in GIS next week…good luck Kevin!) to put it to use.

So if you are one of the EWB people reading this blog or otherwise work in international development, think about making a map of the whole community/region as your first step in working on a project. Its easy, and a lot of work can be done state-side before you head into the country.