We have OSM shapefile of buildings polygons connected to OSM shpaefile of roads. And then from TIGER we have their well known address range table connected to roads again.

So via roads we can connect between buildings polygons (OSM) & address ranges (TIGER). {All this because in TIGER we don't have shapefile of buildings polygons}.

Now, Is it good idea to automatically assign each polygon with an address? For example If we have range of 17, and there are 17 polygons - With the direction data - Isn't it should be a trivial task? Is it true for any case of matched number of polygons and numbers in the range?


This won't work reliably.

It won't work if TIGER and OSM data are from different dates which is usually the case. TIGER is only updated once in a while. In contrast, OSM is updated continuously however the up-to-dateness depends heavily on the area.

It won't work if TIGER and OSM have a different view of the data. According to your description TIGER has an address for each building. OSM may have a polygon for each building plus a polygon for each garage. OSM might combine two buildings together into one polygon (e.g. if the buildings are next to each other). OSM might separate one building into two polygons (e.g. if the building looks like two buildings). Even if the numbers in TIGER and OSM match there is no guarantee that the actual addresses and polygons are matching, too.

There are several solutions:

  • Use address data from OSM
  • Import TIGER address data into a geocoder and perform a geocoding query for each OSM building. This will assign the nearest TIGER address to each OSM building but will require lots of resources.
  • Thanks for the answer. 1. What you mean by OSM address data? As far as I know, sometimes buildings came with address tags and sometimes not. Is there other ahapefiles I'm missing here? 2. Import to geocoder-what is that geocoder practically? A peice of code performing spatial qeury of type nearest? But ain't it the same I described? Because no addresses in TIGER, just ranges, so anyway the geocoder code will perform similar algorithm to what I suggested, no? – michael Aug 23 '16 at 16:33
  • 1
    1. Address data in OSM is mapped in different ways. Addresses can be added to the building outlines, they can just be added to nodes inside of a building or just a node with no building polygon at all, or at a node of the outline of a building (usually an entrance). Also not all addresses data is immediately available, some has to be calculated by building up an address hierarchy. – scai Aug 23 '16 at 17:53
  • 1
    2. Yes, a piece of software like Nominatim. And no, a geocoder performs much more work than just looking at the surroundings. Building a good geocoder is a very complex and difficult task requiring a good understanding of the data model, address hierarchies in general and the addressing scheme of the country in question. – scai Aug 23 '16 at 17:54
  • Thanks. Regarding the Geocoder - Nominatim is based on OSM address data mentioned above, so what added value can he give rather than match the 'appropriate' OSM address data to Lat/Lon (appropriate is tricky but the point is what is the raw source data...)? Let's say Nominatim has TIGER - Again, let's assume all you wrote, but the very basic step will be interpolation of the addresses range? Because still this is the "raw source data"... no? – michael Aug 23 '16 at 20:06
  • Even if Nominatim just "has" TIGER (which isn't true, OSM address data consists of various sources, most importantly crowd-sourced address data) then it is still a very good choice to solve the "matching" part of your task. This is just one of many approaches. I'm not saying you should use Nominatim under all circumstances. I'm just listing possible solutions. Which solution is the best depends heavily on your use-case and ultimate goal which is still quite unclear to me. – scai Aug 23 '16 at 20:16

Your Answer

