PostGIS: Approximating a house number from street address range - Mailing list pgsql-general

From René Fournier
Subject PostGIS: Approximating a house number from street address range
Date
Msg-id F9C7B576-4A5E-49A2-B300-18EB7CD43F61@renefournier.com
Whole thread Raw
Responses Re: PostGIS: Approximating a house number from street address range  (Andy Colson <andy@squeakycode.net>)
List pgsql-general
Hi,

I'm developing a reverse-geocoder for Canada. So far, given a lat/lng, I can find the nearest street (line segment),
whichincludes line segment direction and address ranges for both sides of the street. I'm now trying to figure out the
bestway to programmatically approximate the nearest house number to the given lat/lng point.  

Here's an example of a row containing the street data:

    -[ RECORD 1 ]-
    [...]
    l_adddirfg | Same Direction
    l_hnumf    | 3219
    l_hnuml    | 3235
    l_stname_c | Breen Road North-west
    r_adddirfg | Same Direction
    r_hnumf    | 3224
    r_hnuml    | 3236
    r_stname_c | Breen Road North-west
    the_geom   |
0105000020E610000001000000010200000002000000B0F6990E78885CC088DF2B5F3C8C49400875B39A89885CC0A0BCA6AC4B8C4940


So, given a lat/lng coordinate that lies near the "the_geom" line segment, a person could tell visually which side of
thestreet the point is on (left or right side), and how far along the segment it is -- thereby approximating a house
number.For example, if the point lies on the right side, three-quarters down the street, I would use the fields r_hnumf
(rightside, first number) and r_hnuml (right side, last number)...  The street address is probably close to: 

    3232 Breen Road North-west

What I'm looking for is a best practice in either computing/approximating this in PostGIS (which I'm new to), or in the
applicationlayer once the row is fetched. 

Any ideas? Thanks!

...Rene



pgsql-general by date:

Previous
From: Rich Shepard
Date:
Subject: Re: psql died in midst of session [FIXED]
Next
From: "Mahlon E. Smith"
Date:
Subject: Re: Monitoring Replication