薛梅,向华
(重庆数字城市科技有限公司,重庆 400020)
随着地理信息系统在城市信息化建设中越来越广泛的应用,政府部门之间对空间数据与非空间数据共享整合的要求日益迫切。据专家统计,政府各部门拥有大量的政务信息中,80%的信息都与地理空间位置密切相关,但是这些信息几乎都没有空间坐标,因此无法与其他信息整合,无法实现空间分析与可视化。
为了将这些空间信息与非空间信息集成与融合,实现大量统计和表格信息的空间化,就需要建立空间和非空间信息之间的联系,地理编码正是建立这两者之间联系的最重要手段。以地名/地址数据作为基础纽带,通过地理编码,使政府各部门分散的信息资源库之间建立有机的联系,从而在统一的地理参考框架中,构建起空间信息和非空间信息进行融合的框架和模型,依据此框架和模型可以满足直接的、实时的数据共享要求,实现不同数据类型、不同系统之间的集成操作。
地理编码在经济社会和人们的日常生活中起着十分重要的作用。在建立地名、路名、楼名和门址等数据库后,可支持与位置相关的服务,如LBS、智能交通、移动梦网、影像数据库的查询等;对社会、经济和人口信息可以进行匹配,从而进行分析、统计、管理、制图和可视化表示,以支持政府的管理和决策。
在公安部发布的警用地理信息系统(PGIS)技术规范中,明确将建立标准地址库、实现地址匹配作为警用地理信息系统的基础建设内容。在地市、区县等各级政府的地理信息共享交换平台中,也将地理编码作为基础性建设内容来完成。地理编码已经成为地理信息系统的基础设施之一。
由于地理编码在地理信息社会化应用中具有关键性作用,各国地理信息系统工作者对相关技术和方法进行了大量的研究。
国外成熟的地址标准模型如表1所示。
国外地址模型 表1
目前全球最通用的商业GIS平台——ArcGIS平台,提供了地理编码的应用工具 Geocoding Tools。Geocoding Tools提供了整套地理编码解决方案,并可定义多种地址规则(多为美国地址标准)。但遗憾的是,由于我国地址命名的无序性以及中英文编码、语法差异问题,GeoCoding Tools对我国地址匹配的准确程度并不高,使用起来不具备太大现实意义。
除ArcGIS等专业地理信息引擎外,Google Map API也推出了基于 WebService的地理编码服务[3]。Google Geocoder将地址匹配准确程度用9个级别来表示,其结果用通用的KML表示,具有接口简单,使用方便的优良特点。
地理编码具有很强的地域和语言限制,目前尚无能够适应所有国家和地区的地理编码。由于我国历史文化对地名和地址命名的影响,加之近年城市建设的飞速发展,使得我国地址命名异常复杂,结构无序,门牌号码编号混乱等,这些都限制了我国地址编码技术的发展[1]。我国目前还没有统一的地址命名规范和标准,也造成了各地的地址情况不统一。
近年来我国科技工作者对地理编码技术也展开了大量的研究[2,4,5]。各地纷纷建立起自己的标准地址数据库,开始利用地理编码技术解决业务信息与地理位置关联问题。代表性的城市包括:北京、南京、上海等。代表性的公司包括:51地图、北京超图、山海经纬、方正奥德等公司。在我国,地理编码商用引擎已经出现,并应用在数据共享交换平台、公安等行业中,但地址匹配的准确率和效率都有改进空间。
在我国大部分地区,地址由行政区划+限定地址+局部地址组合而成,共计9种组合情况,如表2所示。
描述性质的标准地址,在其空间上也有着层级关系,按照空间范围从大到小,描述精度从粗到细表达。
根据地址的描述信息,按表述层级进行分级后,依据地址类型进行编码,以“重庆市江北区观音桥街道电测村231号重庆数字城市科技有限公司”这一描述为例,进行地址分级见表3,分级后的编码为:010201000100010231。
通用地址组合 表2
地址分级实例 表3
地址匹配的过程是将描述性地址转换为地理位置的过程。在实际工作中,必须考虑到转换结果有三种可能:①完全没有找到匹配的地理位置,例如,输入“早上好”,肯定找不到匹配位置;②找到一条完全符合的地理位置,例如,输入“江北区电测村231号”;③找到一条或多条部分符合的地理位置,例如,输入“江北区建新南路”。因此,用户在访问地址匹配应用时,应能指定匹配的精确程度。
在地址匹配分析中,将匹配精确程度分为9级,分别为:省|市|区县|乡镇|村|组|道路(街路巷或居住地)|建筑物(楼门牌或POI)。如按照精确程度划分,包含以下几种可能性:
(1)匹配到行政区划,例如输入“重庆市江北区”,匹配到江北区,从空间表达上来说是一个面状区域,为了简化,输出该多边形最小外接矩形的中心点经纬度。
(2)匹配到限定性地址,例如输入“重庆市江北区电测村”,从空间表达上来说是一个线状条带或面状区域,为了简化,输出线或多边形最小外接矩形的中心点经纬度。
(3)匹配到局域性地址,也就是建筑物本身。例如输入“重庆市江北区电测村231号”,直接输出经纬度坐标。如果需要得到该地址所在的建筑物,通过空间关系反算得到。
地址匹配的分析过程如图1所示。
①AddrParser:综合利用分词技术、地址元素字典表对输入的描述性地址进行分词处理,依据语义库进行词语筛选,去掉无用的描述信息,将其转换为标准地址模型的层次结构。
②AddrStandalizer:去掉一些不合法字符;利用词典进行输入分词;对照别名表,对地址运用正则表达式匹配等方法,进行规范化处理。例如“市科委”将转化成“重庆市科学技术委员会”。将规范化的地址要素转换为地址编码。
③Feature Matcher:利用地址编码到地址表中进行检索,根据上下层级地址之间的包容关系,找到可能符合条件的待选地址。
④AddrInterpolator:在可能符合条件的待选地址中进一步匹配和解析,按词语匹配程度和空间匹配程度进行匹配进度打分。按照匹配精度对待选地址进行排序,选取排序最靠前的地址,认定为符合条件的匹配结果。
地址匹配效果如图2所示。
图1 地址匹配流程
图2 地址匹配效果(由文本转化为十进制经纬度)
逆地址匹配是指将地理坐标转换为标准地址的过程。和地理编码相比,逆地理编码实现更加简单,而且准确率更高。这是因为输入相对地理编码的描述地址更加准确和规范。
在以点位为参考地址的模型下,逆地址匹配的通常做法是:设定一个默认缓冲值(如10 m),找到这个范围内所有的地址点位,然后取离输入点最近的地址作为结果输出。其匹配准确度完全由地址点位数据决定。因此,在数据采集过程中,应该让地址位于建筑物的正中心,以最大限度提高逆运算的准确程度。逆地址匹配效果如图3所示。
图3 逆地址匹配效果(由十进制经纬度转化为标准地址)
地理编码在地理信息社会化应用中,具有举足轻重的作用。从技术实现上,地理编码具有很强的地域和语言限制,目前尚无能够适应所有国家和地区的地理编码。由于我国地址存在命名异常复杂,结构无序,门牌号码编号混乱等问题,无法利用欧美国家的道路插值方式进行地理编码,因此,本文提出了一种基于无规则地址点的地理编码模型,并实现了基础地理编码模型的分析应用:地址匹配和逆地理编码。
[1]GoldbergW.Daniel.A Geocoding Best Practices Guide.University of Southern California[M].GIS Research Laboratory,2008
[2]宋启凡,李莉,朱雪征.国外地址数据标准分析及启示[J].地理信息世界,2009,7(1):60~66
[3]郭会,宋关福,马柳青等.地理编码系统设计与实现[J].计算机工程,2009,35(1):250 ~252
[4]李军,李琦,毛东军,郭玲玲.北京市地理编码数据库的研究[J].计算机工程与应用,2004,40(2):1~3
[5]陈细谦,迟忠先,金妮.城市地理编码系统应用与研究[J].计算机工程,2004:30(23):50~52
[6]Dramowicz,Ela.Three Standard Geocoding Methods[EB/OL].http://www.directionsmag.com/article.php?article_id=670October 24,2004