Estoy desarrollando un inversor de geocodificación para Canadá. Hasta ahora, dado un lat/lng, puedo encontrar la calle más cercana (segmento de línea), que incluye la dirección del segmento de línea y los rangos de direcciones para ambos lados de la calle. Ahora estoy tratando de averiguar la mejor manera de aproximar de forma programática el número de casa más cercano al punto lat/lng dado.
Aquí tienes un ejemplo de una fila que contiene los datos de la calle:
-[ REGISTRO 1 ]-
[...]
l_adddirfg | Misma Dirección
l_hnumf | 3219
l_hnuml | 3235
l_stname_c | Breen Road North-west
r_adddirfg | Misma Dirección
r_hnumf | 3224
r_hnuml | 3236
r_stname_c | Breen Road North-west
the_geom | 0105000020E610000001000000010200000002000000B0F6990E78885CC088DF2B5F3C8C49400875B39A89885CC0A0BCA6AC4B8C4940
Entonces, dado un coordenada lat/lng que se encuentre cerca del segmento de línea "the_geom", una persona podría visualmente determinar en qué lado de la calle se encuentra el punto (lado izquierdo o derecho) y a qué distancia a lo largo del segmento se encuentra, estimando así un número de casa. Por ejemplo, si el punto se encuentra en el lado derecho, a tres cuartos de la calle, utilizaría los campos r_hnumf (lado derecho, primer número) y r_hnuml (lado derecho, último número)... La dirección de la calle probablemente sea cercana a:
3232 Breen Road North-west
Lo que estoy buscando es una mejor práctica para calcular/aproximar esto en PostGIS (en lo que soy nuevo), o en la capa de la aplicación una vez que se obtiene la fila.
¡Gracias!