[mkgmap-dev] Issues with --housenumbers
From Gerd Petermann gpetermann_muenchen at hotmail.com on Thu Jan 8 20:08:30 GMT 2015
Hi WanMil, > > > > First of all: In most cases the existing code works quite well, > > but in many special cases it fails. > > I remember when I started to implement the house number support for OSM > data I thought "oh just give it a short try if a very simple algorithm > can convert some of the house numbers to the mkgmap format". I am > surprised how good it works :-) Anyhow rather no specials are supported > and OSM sometimes is also an abbreviation for "Open Specials Map"... Well, when you coded it I found only a few housenumbers in my area, so I did not even care about the result. Nowadays the data is much better, but there are also many more errors. > > > > > I did not yet find a good solution, so I start to describe the problems > > with the existing code. > > > > 1) No support for random house numbers. > > In some areas there is no obvious order in house numbers. > > Nevertheless the current code in mkgmap always produces > > house number data that assumes that the numbers are either > > in ascending or descending order. We would need new data > > structures to support this, or at least ignore random housenumbers. > > The effect of the current code is that MapSource shows multiple > > possible places when you enter a road and a housenumber, > > and maybe none of the places is correct. > > Are single house numbers supported by the mkgmap format or do we always > have to attach an address interpolation to a street segment? If single > house numbers are not supported it is possible only to ignore them or to > cut the street into little segments. If I got it right, we could add nodes and assign one number to each. I've started the new branch housenumbers2 to experiment with this. > > > > > 2) No plausibility check is done. > > The current code assigns a house (number element) to the closest road > > segment. > > It orders the houses by sorting these closest points. > > a) This doesn't work very well when multiple houses lie at the end of a > > road. > > As an effect, a house with number 12 maybe assigned to the left side of > > a road > > containing only odd numbers (or vice versa), or > > b) It also often fails when multiple houses are connected to the road > > with an unnamed > > service road. In many areas you have a group with odd numbers 1-9 > > followed by another group > > with numbers 11-17. Depending on the position of the houses, the > > calculated order might be > > 5,7,9,1,17,15,13,11 which results in an interval 5..11 instead of 1..17. > > The result also depends on whether the service road is in the map or not . > > Maybe this should be changed so that mkgmap tries to detect if the house > numbers are in/decreasing, even/odd/mixed and then use > min/max(housenumber) instead of first/last(housenumber)? Yes, tried that in the branch, seems to improve many cases where the code in trunk is wrong. > > > c) In some areas, different road objects are created with the same road > > name, e.g. when > > a p-shaped road is split or the road forms some kind of grid like this a > > # sign. > > In such an area it is likely that some houses are assigned to the wrong > > (part of a )road. > > I think this can be fixed only by associated street relations. It would > also be possible to calculate a candidate list of street segments for > each house number and then try to assing the house number so that it > fits best. But this sounds quite complex. I'd like to repair the cases where we have addr:interpolation info. The rest is more complex, but seldomly needed. > > > d) In some cases we might be able to detect wrong OSM data as such and print > > a corresponding message. > > Can you give some examples beside the easy ones (no street found for > house number 999 or house number without street name tag)? I found a few wrong numbers in my area because they did not match the odd/even rule which is used almost everywhere. Also, a sequence like 2,4,6,8,10,1,14 looks like the 1 should be a 12. Later I noticed this link: http://gulp21.bplaced.net/osm/housenumbervalidator/ > > > > > Both points 1) and 2) are correlated. Without a plausibilty check we > > cannot detect > > the random house number case, so I think it is an interesting problem > > of pattern recognition. The human brain is very good with that, but it > > is difficult to find > > a quick and good algo for it. > > Yep. Can you estimate how many percents of house number are not handled > well by the current algorithm? I think in my hometown I found more errors caused by wrong OSM data. The branch is already a little bit better. In areas that use addr:place mkgmap doesn't work at all until we support random numbers. Gerd -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20150108/7547f484/attachment-0001.html>
- Previous message: [mkgmap-dev] Issues with --housenumbers
- Next message: [mkgmap-dev] minxed-index branch ready for trunk?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list