薛梅,向華
(重慶數字城市科技有限公司,重慶 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