名称

Geocode_Intersection — 接收两个交叉街道以及州、城市、邮政编码,并输出第一个交叉街道上所有可能的交叉点位置,还包括一个 geomout 作为 NAD 83 经纬度坐标系的点位置,每个位置的 normalized_address(addy)以及评分。评分越低,匹配可能性越大。结果按评分从低到高排序。可以选择传入最大结果数,默认值为 10。使用 Tiger 数据(边、面、地址)、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);

描述

接收两个交叉街道以及州、城市、邮政编码,并输出第一个交叉街道上所有可能的交叉点位置,还包括 NAD 83 经纬度坐标系的点几何图形、每个位置的规范化地址以及评分。评分越低,匹配可能性越大。结果按评分从低到高排序。可以选择传入最大结果数,默认值为 10。返回每个位置的 normalized_address(addy)、NAD 83 经纬度坐标系的点位置 geomout 以及评分。评分越低,匹配可能性越大。结果按评分从低到高排序。使用 Tiger 数据(边、面、地址)、PostgreSQL 模糊字符串匹配(soundex、levenshtein)。

可用性:2.0.0

示例:基本

以下示例的计时是在一台配备 3.0 GHz 单核处理器、2 GB 内存、运行 Windows 7 的机器上进行的,该机器运行的是 PostgreSQL 9.0/PostGIS 1.5,并加载了所有马萨诸塞州的 Tiger 数据。目前速度有点慢(3000 毫秒)

在 Windows 2003 64 位 8 GB 上测试,PostGIS 2.0 PostgreSQL 64 位加载了 Tiger 2011 数据——(41 毫秒)

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

即使没有传入邮政编码,地理编码器也可以猜测(在 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

另请参阅

GeocodePprint_AddyST_AsText