Ich entwickle einen Reverse-Geocoder für Kanada. Bisher kann ich bei gegebener Breite die nächstgelegene Straße (Liniensegment) finden, die die Richtung des Liniensegments und die Adressbereiche für beide Straßenseiten enthält. Ich versuche jetzt herauszufinden, wie ich die nächstgelegene Hausnummer programmgesteuert an den angegebenen Lat / Lng-Punkt annähern kann.
Hier ist ein Beispiel für eine Zeile mit den Straßendaten:
-[ 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
Bei einer Lat / Lng-Koordinate, die in der Nähe des Liniensegments "the_geom" liegt, kann eine Person visuell erkennen, auf welcher Straßenseite sich der Punkt befindet (linke oder rechte Seite) und wie weit er sich entlang des Segments befindet Annäherung an eine Hausnummer. Wenn der Punkt beispielsweise auf der rechten Seite liegt, drei Viertel der Straße hinunter, würde ich die Felder r_hnumf (rechte Seite, erste Nummer) und r_hnuml (rechte Seite, letzte Nummer) verwenden ... Die Adresse ist wahrscheinlich in der Nähe zu:
3232 Breen Road North-west
Was ich suche, ist eine bewährte Methode, um dies entweder in PostGIS (für das ich neu bin) oder in der Anwendungsschicht zu berechnen / zu approximieren, sobald die Zeile abgerufen wurde.
Vielen Dank!
quelle