Name

Geocode_Intersection — 接收 2 条相交的街道以及state、city、zip,并输出位于交叉路口的第一个交叉街道上的一组可能位置,还包括一个 geomout 作为 NAD 83 经纬度中的点位置,一个标准化地址 (addy )每个位置以及评级。 评级越低,匹配的可能性越大。 结果首先按最低评分排序。 可以选择传入最大结果,默认为 10。使用 Tiger 数据(edges、faces、addr)、PostgreSQL 模糊字符串匹配(soundex、levenshtein)。

Synopsis

setof record geocode_intersection(text roadway1, text roadway2, text in_state, text in_city, text in_zip, integer max_results=10, norm_addy OUT addy, geometry OUT geomout, integer OUT rating);

描述

该函数接受两条交叉的街道、一个state、city、zip作为输入,并输出位于交叉口上的第一条街道上的可能位置集合。每个位置包括 NAD 83 经纬度的点几何、每个位置的规范化地址以及评分。评分越低,匹配度越高。结果按照评分从低到高排序。还可以选择传入最大结果数,默认为 10。函数返回每个结果的标准化地址(addy)、NAD 83 经纬度的点位置(geomout)以及评分。评分越低,匹配度越高。结果按照评分从低到高排序。此函数使用 Tiger 数据(edges、faces、addr)和 PostgreSQL 模糊字符串匹配(soundex、levenshtein)进行计算

可用性: 2.0.0

示例:基本

下面的示例计时是在一台 3.0 GHZ 单处理器 Windows 7 计算机上进行的,该计算机具有 2GB RAM,运行 PostgreSQL 9.0/PostGIS 1.5,并加载了所有 MA 状态 Tiger 数据。 目前有点慢(3000 毫秒)

在 Windows 2003 64 位 8GB 上测试 PostGIS 2.0 PostgreSQL 64 位 Tiger 2011 数据加载 -- (41ms)

SELECT pprint_addy(addy), st_astext(geomout),rating
            FROM geocode_intersection( 'Haverford St','Germania St', 'MA', 'Boston', '02130',1);
           pprint_addy            |         st_astext          | rating
----------------------------------+----------------------------+--------
98 Haverford St, Boston, MA 02130 | POINT(-71.101375 42.31376) |      0

即使没有在地理编码器中传递 zip,也可以猜测(在 Windows 7 上大约花费了 3500 毫秒),在 Windows 2003 64 位上花费了 741 毫秒

SELECT pprint_addy(addy), st_astext(geomout),rating
                FROM geocode_intersection('Weld', 'School', 'MA', 'Boston');
          pprint_addy          |        st_astext         | rating
-------------------------------+--------------------------+--------
 98 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3
 99 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3

相关信息

Geocode, Pprint_Addy, ST_AsText