May 3, 2009

Cyclopath Tags Are Live!

One of the features I have been working on for some time in my lab was just released this past week. Cyclopath, the geowiki for bicyclists, now supports tagging. It is just too cool. Here are two short videos that one of my teammates prepared explaining how tags are used in the system.

November 20, 2008

Geocoding Woes

One important part of Cyclopath is geocoding. If you have never heard of geocoding (I hadn't before this project), it means translating an address to latitude and longitude coordinates. Whenever someone uses the route finder, we have to translate those addresses into coordinates, find the nearest intersections, and then have our route finder look for the shortest path between those two points.

Well, as you can imagine, geocoding is not an easy task. That is why we don't implement this part ourselves. There are some great geocoders out there too. We had experimented with Yahoo's geocoder and then moved to Microsoft's MapPoint geocoder. Aside from a few sporadic issues, Microsoft's geocoder worked pretty well. That is, until a few weeks ago. For no obvious reason, addresses that used to work now completely failed. My own home address now dropped me at a location miles away from where I live. This was a problem. And users were starting to complain.

A few email exchanges with some people from Microsoft (which were very prompt by the way) didn't help in finding out what had changed with the geocoder. There was no way to get around it. So we started looking for other options. Google has an excellent geocoder which it uses for Google Maps. Unfortunately, its Terms of Service state that to use it your application must be using Google's maps. We create our own maps (needed to make it as editable and interactive as we need), so we had to scratch Google's geocoder off the list.

We found another geocoder that focuses on the Twin Cities metro area, which is where Cyclopath focuses too. So I was delegated the task of changing the code in order to use this new geocoder. After I finally started making some progress, while testing some code, I decided to try an address on the old geocoder that I knew would fail. To my surprise, it gave the correct location. Perplexed, I tried all other addresses that had been problematic in the past few weeks and to my surprise all of them worked. All of the sudden Microsoft's geocoder was working correctly. After all that brainstorming, sending emails, and looking for alternatives we were back to where we were before.

Well, not exactly. We have decided (although with a little less urgency) to finish implementing the new geocoder and leave it as a backup. That way, if Microsoft ever decides to confuse our users again, we'll be ready. Bring it on!

November 10, 2008

Cyclopath Tutorial Recap

For those of you who missed it, here are the five Cyclopath Tutorials I posted:

Tutorial 1: Getting Around
Tutorial 2: Rating and Finding Routes
Tutorial 3: Editing the Map
Tutorial 4: Revisions
Tutorial 5: Watch Regions

Be sure to give Cyclopath a try and share this with any cyclist friends you have!

November 1, 2008

Cyclopath Tutorial Part 5: Watch Regions

Once you know how to edit the map in Cyclopath and look at recent changes, you’ll probably want a simple way to keep track of changes in areas you are interested in. That’s where watch regions come in. Watch regions let you select an area in the map so that you can keep track of changes there. By default, you will be notified by email of any changes. Let’s take a look at how to create a watch region. First of all, you have to go to the My Watch Regions panel on the left side.


This is the list of watch regions, which is initially empty. To add a new watch region, click on the “New Watch Region? button. A new watch region appears in your map.


You can change your watch region’s name and color on the left panel.


Chances are you probably don’t want your watch region to be a boring square. Well, you’re in luck. You can drag vertices around to alter your region’s shape.


And if four vertices aren’t enough, you can use the “Add Vertex? tool on the upper right to make your watch region even more complex.


Now your watch regions list displays the new watch region.


You can click on “look at? to center the map on the watch region and on “x? to delete the watch region. When you’re done, just save changes and your new watch region is ready. You will be notified by email of any changes in your region. If you don’t want to receive emails, just uncheck the “Enable email? checkbox (while ignoring the two e’s). You can still use watch regions to filter the changes shown in “Recent changes?, which is useful for looking at changes that only affect your area of interest.

You now have all the basic knowledge needed to use Cyclopath. I may throw in one more Tutorial post, but this should be enough to get started. There is a lot more information in the Geowiki Help page if you’re interested. Have fun editing and cycling!

October 30, 2008

Cyclopath Tutorial Part 4: Revisions

In the last post, I talked about how you can edit the map in Cyclopath. Now, how do you see what changes other users have made? And what can you do if another user makes an edit that you know is not correct? This is where revisions come in.

Revisions are used in many applications such as Wikipedia and Google Docs to keep track of changes made to documents. Each revision is a change or save made by a user. Whenever you make changes to the map in Cyclopath and hit Save, you are asked to summarize your changes. These changes are grouped together into a revision, accompanied by your summary. Now, let’s look at how you can view and interact with other users’ revisions.

We will be concentrating on the Recent Changes panel of the interface.


This panel shows a list of all recent changes (revisions). You can view all revisions or filter them by visible area (only show revisions that affect the area of the map that you are currently looking at) or by watch regions (we’ll talk more about this in the next post). The list of revisions shows for each revision the revision number, the user who made the change (if anonymous, then the IP address is shown), the date and time of the revision and the user’s summary about the revision.

Now, what happens if you click on a revision?


You’ll notice that a section of the map just got highlighted. This is where the change occurred. Sometimes, this change might not be in the visible area of the map. To move to where the change is, click on “Look at?. The map will then center on the location of the change and zoom in as much as possible.


Now comes the fun part. Diff mode. This is where you can see the changes that actually occurred during the selected revision(s). There are two types of changes in Cyclopath: geographical edits and non-geographical edits. Let’s take a look at non-geographical edits first. With the revision we selected above still selected, we now click on the “Changes? radio button in the “Map shows:? section. This tells Cyclopath that you want to view changes made in the selected revision (not just where they occurred). Click on “Update? and the map will change to Historic Mode.


The map now highlights the changes made. The blocks highlighted had some of their information changed. We can click on them to view what changed.



Same thing can be done with points. Here’s an example.


By the way, to exit Historic mode and go back to what the map is like currently, just click on the “Exit historic mode? button on the bottom of the map.

Now, let’s take a look at geographical edits. Revision 4941 is a good candidate. When we click on “Update? after selecting “changes? we get the following screen:


Looks quite different, right? Here, the edits actually moved vertices and points around, added new blocks and removed blocks. We call them geographical edits because they change how the objects look on the map. Take a look at the Comparison Key if you ever get confused about what the colors mean!


To make looking at geographical edits easier, at the bottom at the map there is a “Before? and an “After? button. With these buttons you can view what the map looked like before and after the change.





To go back to viewing the difference together, just click on the “Both? button at the bottom of the map.

Now, what if you see a revision that you think is incorrect? How do you undo it? In the world of wikis, this is called reverting a revision. Reverting a revision in Cyclopath is simple. Just click on the revision you wish to undo and click on the “Revert Revisions? button above it. Write a short summary of your reason for undoing that revision and you’re done.

Another neat feature about revisions in Cyclopath is writing feedback. If you want to comment to someone about a change they made, just select the revision you want to give feedback about and click on the “Write feedback? button. You will then be given a change to write your feedback, which will be sent to that user and to the Cyclopath mailing list.

You should now know the basics of viewing changes in Cyclopath. Go ahead and give it a try. Have fun!

October 27, 2008

Cyclopath Tutorial Part 3: Editing the Map

One of the coolest features of Cyclopath is that you can edit the map as you wish. You can add points of interest, add roads, remove paths, etc. Today, I will be going through some of the basics of map editing in Cyclopath. Let’s start with the easiest: editing points of interest.

Editing a Point

Editing an existing point is very easy. To edit a point’s information, it’s as simple as clicking on a point on the map and editing the fields that appear on the left pane in “Point Details?.


You can move a point by dragging it on the map. And to remove it, just click on “Delete Point? in the Details panel.

Finally, for adding a point, you’ll need to use one of the tools on the upper right corner of the map.


When you click on the second tool, the “Add a Point? tool, your cursor will change to let you know that you’re using that tool (that’s what is happening in the image above). Once in this mode, simply click on the map and you will be prompted to enter a point name. After you enter the name, a point is created in the location that you clicked.

Editing Blocks

Editing blocks (or road segments) is a bit trickier. The simple part is editing a block’s information. As with points, just click on a block and edit the fields in the Details panel. One difference though is that you can add multiple notes to a block (and add those notes to other blocks). Furthermore, you can edit multiple blocks a time by holding either CTRL or SHIFT to select blocks (CTRL allows you to select individual blocks, while SHIFT allows you to select a path of blocks).


The harder part is editing blocks geographically, that is, on the map. To create a block, click on the “Create new block? tool on the upper right.


After selecting the right tool, you can click anywhere on the map to create a new block.


You will notice that the new block has two endpoints. You can drag these endpoints to connect your new block to other block endpoints. The endpoint will snap to other endpoints when nearby.


If you have the connectivity checkbox checked, you will notice that the new block is now connected to other nearby blocks. Now, suppose we don’t want the block to be a boring straight line. We can shape it even further by adding vertices. For this we select the “Add vertex? tool (it will only be enabled when you select a block).


This time, the cursor will not change. But when you click on your block, a new vertex will be created!


You can now drag this vertex around to give your block a better shape. Keep in mind that you can’t snap vertices to other endpoints though! Only endpoints can be connected to other block endpoints.


Now suppose you want to connect your new block to the middle of another block. You can't just drag it over because there are no endpoints, so it won’t snap. What you’re trying to do is create an intersection where there isn’t any. To do this, first we have to split the block we want to connect to. For this, select the “Split Block? tool on the upper right. Once again, you have to have the block selected for the tool to be enabled and the cursor won’t change after you select the tool.


Next, click on the block wherever you want to create the new intersection.


Now the block has been split in two, basically creating an intersection between the two blocks. These two blocks are connected together through endpoints where we just clicked. Now we can connect to these endpoints!


Now, what if you want to remove a block? Simple. Click on the block and go to the “Advanced? tab in the Details panel.


There is a button called “Delete Block(s)?. Click it to remove the block.


Now we have another problem. Remember the block that we split before? We want to stick it back together, merge it back into only one block. To do this, first select the two blocks (you can use CTRL to select multiple blocks). In the Details panel, right next to the “Delete Block(s)? button, there is a button called “Merge Blocks?. Just click on it to merge the two blocks back together!


And that’s it! You now know how to edit the map. Just three more tips before I end this post. There is a checkbox called “Aerial Photos?. This is incredibly useful when editing the map geographically. It displays satellite photos, allowing you to do more precise editing (be careful with it though, since the photos may be a few years old). The second feature that you should use extensively when doing geographic editing is the connectivity checkbox. This is the best way to know if you are connecting blocks correctly. The third thing to keep in mind is the usefulness of the Undo, Redo and Discard Changes buttons. Use them as much as needed! And use them to experiment and try out map editing. As long as you don’t hit Save, your changes won’t affect the system.

So go ahead, give map editing a try. It’s the coolest thing around.

October 24, 2008

Cyclopath Tutorial Part 2: Rating and Finding Routes

The fastest way to start using Cyclopath and getting some benefit out of it is using its route finder feature. It’s also one of the features that most users are already accustomed to thanks to other popular route finders. Let’s take a look at how to use the route finder.

On the left side of the interface, you will find the “Routes? panel:


At first, until we ask it to find a route, it will be empty. By clicking on the “Find New Route? button, you will be presented with the following popup:


Inputting addresses to search for here is pretty straightforward. But there are three more things to be aware of. First, besides addresses, you can also search for points. Points are those locations of interests that can be found throughout the map. For example, in the following screenshot, Mariucci Arena, Williams Arena, and TCF Bank Stadium are all points. This means that you can find routes to them by writing their names instead of street addresses.


The second thing to be aware of is the sliders at the bottom. One says Bikeability and the other says Distance. Cyclopath has a few ways of measuring bikeability, which we will talk about a little more later in this post. You can ask the route finder to find a route that is more bikeable or a route that is shorter.

The third thing to be aware of is that this interface may change somewhat in the near feature. As we are still in Beta development, some really cool features are currently in development. So stay on the lookout for these cool changes!

After you write in your source and destination addresses, click on the “Find? button to get your route. (click on the image to view a larger version)


You will get the route displayed on the map and the directions (included distance of each step) on the left. You can get a nice, printable version of the directions by clicking on the “Printer Friendly? button.

Now, let’s get back to bikeability. How is bikeability computed? The base case is based on a formula that takes into account aspects of the blocks such as usable shoulder space. Now comes the fun part. You can affect this computation by rating blocks. That’s right. How you rate blocks will change how the route finder computes bikeability. If you rate a block as excellent, the route finder will give that block preference. If you rate a block as poor, it will be penalized by the route finder. You can even rate a block as impassable to have the route finder avoid it altogether. By the way, for blocks you haven’t rated, if a reasonable amount of other users have rated it, their averaged rating will be given priority over the base formula. Cool, isn’t it? Now, let me show you where to apply the ratings:


When you click on a block, the Item Details panel will open. Here, you will be able to see the estimated rating of the block and the option for giving it your own ratings. Keep in mind that you have to be logged in to use this feature, so be sure to register! Once you have rated a block, all you have to do is save changes and your ratings are ready to be used the next time you search for a route.


By the way, blocks you have rated will be colored differently depending on the rating you give them. Check the Map Key at the bottom of the map to see which colors correspond to which ratings.


Now you should know how to rate blocks and find routes. Have fun rating!

October 21, 2008

Cyclopath Tutorial: Part 1

I am really enjoying the project I am working on, Cyclopath. It’s an awesome geowiki for cyclists in the Twin Cities. But for the first time user, it may be a lot to take in. It has a lot of neat features that most people don’t expect to see together (e.g. map editing and route finding). So I decided to dedicate my next few posts to explaining the basics of Cyclopath. I won’t cover all there is to say about it (that’s what the user manual is for), but I’ll try to focus on the most important aspects. Also, Cyclopath is still in Beta, so new features and changes occur frequently. Anyway, this should still prove to be useful. Enjoy!

Part 1: Getting Around Cyclopath

Cyclopath is at its core simply a map. That is why the most obvious thing you will notice when you visit it will be a map of the Twin Cities. Everything revolves around this map. After you have located the map (shouldn’t take you more than a few milliseconds) you can then start focusing on all the other awesome stuff lying around. Here’s an overview of some of the stuff you’ll find (labeled on the picture below for your convenience):

A) Help Button – If you get stuck, this is the place to go! This opens a new window with help information.
Log in/ Register Button – You can use Cyclopath even if you’re not registered, but that’s no fun. Please register!
B) Item Details Panel – This panel displays information about blocks (as in road segments) and points (as in locations of interest). It remains empty until you select a block or point.
C) I’ll talk about these other panels in later tutorials. For now, just take my word that they’re very useful!
D) The map, just in case you couldn’t find it.
E) Navigation – You can move around the map by either dragging it or using the navigation buttons here on the upper left. The plus and minus buttons are for zooming in and out, respectively.
F) Editing tools – Since this is a geowiki, it means that you can edit the map. That’s right. You can change information, points, and even the road segments themselves as you see necessary (try not to vandalize though). The set of tools on the upper right are used for editing, but we’ll delay the explanation of these tools for another tutorial. For now, all we need is the select tool.
G) More Tools – These are a few settings and tools. You can save any of your changes here. The four checkboxes toggle connectivity (which shows you which blocks are connected to which blocks), Watch Regions (we’ll talk about this later), Aerial Photos (so you can see what the map really looks like), and Sticky Intersections (we’ll talk about this later too).
H) Map Key – If you forget what some of the colors and shapes mean, just click on the map key for a refresher.


Viewing Item Details

When you are zoomed close enough, you can click on points and blocks to view their details. The screenshot below shows what that looks like.
A) A selected block – When you select a block, it is highlighted with blue and all its vertices are shown. Its information is then shown on the left.
B) Points are in the shape of circles. They too can be selected to display their information.
C) Name - The name of the block or point, which usually shows on the map.
D) Type – For blocks, you can select the road type.
E) Flags – Some more options to set for blocks.
F) Ratings – We’ll talk about this more in the next part of the tutorial, but basically this is where you rate blocks.
G) All blocks and points can have notes associated with them. This is where you can see and edit these notes. Blocks that have notes appear on the map highlighted with purple.


If you’re a new user, then you probably aren’t interested or confident enough to start editing right away. Take some time to explore the map, clicking on different byways and points to see their information.
I hope this brief introduction helps. Let me know in the comments section if you have any questions!

August 30, 2008

Cyclopath Now In Beta!

It's live! Cyclopath, the project I joined this last summer has just entered its public beta stage. That means anyone can try it out. So go ahead and visit the website here and take a look. If you're not from the Twin Cities you won't get much out of it, but it's still fun to try.

For those of you who forgot or don't know, Cyclopath is a geowiki. The 'geo' part is because it's a map and the 'wiki' part is because anyone can edit it. It's a map for cyclists near the Twin Cities in Minnesota which anyone can edit. It's like Wikipedia and MapQuest (or Google Maps) put together.

So go take a look!

July 25, 2008

Cyclopath: A Geowiki for Bikes


Last month I started working on a very interesting project as part of my transition to a new lab. This project, led by graduate student Reid Priedhorsky, is basically a geowiki for bikes called Cyclopath. What does it mean by geowiki? Well, think Wikipedia. Any user can edit wikipedia. That's what wikis are all about. Now, a geowiki is the same concept, but in a geographical setting. In our case, we have a map of the Twin Cities (MN) focused on bikes. And any user can edit it. That means users can change routes, comment on them, view older revisions, and much more. Furthermore, users of our geowiki can rate streets and search for routes based on distance or bikeability. It is a really cool project, which will be going into beta in August. If you want to sign up to be an alpha tester or just want to be notified when the site goes live, go to Also be sure to check out these two articles that appeared in local press last Saturday:
Star Tribune Cyclopath Article
Pioneer Press Cyclopath Article