Skip to content
mattwigway edited this page Jan 16, 2012 · 7 revisions

This is a page to collect ideas about using OpenTripPlanner for indoor mapping. Most of these ideas are not in the issue tracker yet, because we need to think about them a bit first.

Area Routing

OTP needs to be able to route users through areas instead of only on linear features. This is a pretty big job, although since ways are currently converted to multi-entrance, multi-exit vertices, we may be able to get away without changing the graph structure.

The way I was initially thinking of implementing this was to make each polygon on a node, and indeed this would always work in the case that the plaza is a convex polygon with no holes, and would often work in more complex polygons. The issue I see is that sometimes it might be more efficient for the planner to route through a polygon, onto a path and back onto the polygon. If the polygon were represented as a single node, this would not make sense. Consider the example below:

__________________________________
|                                |
|     _______________________    |
|     |                     |    |
|     |                     |    |
|     |                     |    |
|     |                     |    |
|     |                     |    |
|a    |---------------------|   b|
|     |                     |    |
|_____|                     |____|

The horseshoe shape is a hard-surface plaza, and the dashed line is a path connecting the two sides of the plaza (this is something that one might see, for example, at a large university quad). If we modeled the entire polygon as an area, we'd have two problems. First of all, the path would connect the polygon node to itself, which doesn't make much sense. Second of all, a and b on opposite sides of the courtyard would be connected to the same node, and OTP would ask the node for a geometry. The node, not knowing about the path, would create a shortest path from a, north, east through the top of the shoe and then south to b, when the shortest path is actually to go due east from a, take the path across, and the traverse a different part of the same polygon again.

For the best routing, I think we need to decompose a polygon to a visibility graph that should be integrated with the main graph. I haven't found a library that does this in Java yet, but some software is listed in the Spatial network analysis software page on Wikipedia.

This would also be useful outdoors, for public plazas &c.

Elevators/Lifts

Matt Conway (mattwigway) has started work on this in #582.

Clone this wiki locally