[Geowanking] Interpreting dual carriageways

Michal Migurski mike at stamen.com
Sun May 17 18:31:32 PDT 2009


Hi,

This is a geometry question.

I'm working on a personal project using OpenStreetMap data that  
requires a cross street index, that is, an ordered list of every  
intersection along a street. I have it working fairly well, but I'm  
running into a wall with dual carriageways. Here's an example from  
Oakland:

	http://www.openstreetmap.org/?lat=37.80892&lon=-122.28339&zoom=17&layers=B000FTF

14th Street crosses Adeline, Chestnut, Linden, Filbert, Myrtle, and  
Market, but it does so twice and in two different directions. I've  
gotten to a point where I'm able to extract a bundle of linestrings  
that represent a length of road between two major intersections, e.g.  
14 St between Myrtle and Market, but I'm having difficulty detecting  
and correcting the potential presence of two overlapping carriageways.  
I'm hoping to have something that can deal with regular single- 
carriageway streets, this example of 14th St. in Oakland, places where  
a single carriageway splits into two (e.g. to the west, where 14th  
crosses Kirkham), and so on.

I'm working in Python, with PostGIS and Shapely.

I *think* what I'm aiming for is a near-parallel line detector, so I'm  
experimenting with normalizing road orientation to zero and projecting  
onto a straight line. It's getting squirrelly and I'm hoping someone  
can help point to an existing approach to this problem.

I'm open to the idea that there may be some manual intervention needed.

-mike.

----------------------------------------------------------------
michal migurski- mike at stamen.com
                  415.558.1610







More information about the Geowanking mailing list