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