朱宣霖
(河海大學,江蘇 南京 211100)
地理編碼(Geocoding)又稱地址匹配(address-matching),指建立地理坐標與給定地址一致性的過程[1]。該計算過程是將地址數據與參考地址庫中的地址進行匹配,找到最接近的地址,然后利用空間插值算法對這幾個地址對應的坐標進行插值,從而估算出給定地址的坐標。近年來,外賣平臺、打車軟件、快遞服務等基于地址的網絡經濟刺激了地址服務的需求,催生了網絡地址服務的迅猛發展[2]。如何快速、準確地將地址數據轉化為空間坐標成為當前互聯網經濟發展的剛需。中文地址一般有“小區+樓號”的小區地址和“道路+門牌號”的道路地址兩種類型[3]。空間形態的不同導致編碼平臺對兩種地址編碼的精度可能存在差異。
為了提升地理編碼的精度,人們在參考地址庫構建、地址匹配算法提升、地址規則化等方面展開了大量的研究。在參考地址庫構建方面,Prener等[4]利用興趣點地址數據豐富了參考地址庫,提升了地理編碼的精度。在地址匹配算法方面,目前比較常用的有針對地塊的地址匹配算法和基于道路與門牌號的插值算法[5-7]。在地址規則化方面,人們對于地址分詞、文字錯誤識別等問題展開了大量的探索[1,3,6]。此外,人們發現地址數據分布對于地理編碼的精度也會產生一定的影響。Cayo等[8]通過對城市、郊區以及鄉村的地址編碼精度進行比較。結果表明,人口稀疏的地區編碼精度較低,人口密集的地區編碼精度較高。其基本設想是:人口密集的地區參考地址數據豐富,因而更容易找到匹配結果,編碼精度相對更高。在遇到無法匹配的地址時,可以利用相近的地址數據插值得到對應坐標。相反,人口稀疏的地區編碼精度就越低。該研究表明,地理編碼精度會受到城市空間結構的影響。然而,當前研究的一個重要假設是門牌號/樓號空間連續、規則排列,且與建筑物一一對應[1,4,8-10]。在遇到地址庫中不存在的門牌號/樓號時,可以利用插值算法獲取對應坐標。當地址數據不規則時,就可能會導致較大的編碼誤差。
與西方的城市地址不同,中國的城市地址類型復雜[2-3,11-12],既有沿著道路線性分布的道路地址,也有按照一定規則排列的小區內地址。這種地址分布的差異給地理編碼精度提升帶來了更大的挑戰。
道路地址情況比較復雜。有的道路門牌號排列比較規則,號碼完整;有的位于尚未城市化改造的城中村或已經改造過的傳統街區,這類小區內建筑物形狀復雜,空間分布緊湊,門牌地址雜亂無序,往往存在相鄰小區犬牙交錯、局部包容的狀態。受到拆遷的影響,許多的建筑物被移除,導致小區門牌號不連續。此外,有的居民對建筑結構進行了改造甚至擴建,導致一個門牌號對應多個建筑物。這些問題導致地址數據庫中的地址存在門牌號/樓號缺失、空間上不連續、分布不規則、與建筑物不對應等問題。當一個地址無法準確匹配時,地理編碼算法不僅很難通過插值的方式找到匹配對象,甚至可能帶來更大的空間誤差。
與之相比,封閉小區外部設有圍墻,內部為規則排列的樓房,地籍權屬明確,樓號排序規則(見圖1)。有研究表明高達82%的新建小區為封閉小區[13]。按照國家房產測量規范對于小區的編碼規定,每個小區都擁有一個獨立的門牌號碼。小區內部的建筑物幢號排序統一按照規范要求,“從進大門起,從左到右,從前到后,按照‘S’形編號[14]。每棟樓的地址是小區門牌號地址加上樓號單元(通常以“*幢”表示)構成,如“江蘇省南京市秦淮區秦虹南路52號秦虹小區2幢”。
小區地址與道路地址之間空間結構的顯著差異可能會引起地理編碼精度的差異。針對這一問題,本文重點比較兩類地址之間編碼精度的差異。同時,為了比較不同編碼平臺對這種差異的敏感性,本文采用目前可用的4個網絡地理編碼平臺分別對兩類小區的地址進行編碼計算。
將N市核心區作為研究區域。該區位于城市中部,下轄12個街道、112個社區,總面積49.11 km2,常住人口約74萬人。該區域內住宅居民人數多,有大量的封閉式和道路地址。研究區域內有從明清朝代遺留下來的傳統街區,雖然有部分改造成了旅游景點,但仍有大量的市民居住其中。這些區域內的房屋大多為獨立房屋或院落,受城市改造的影響,區域內存在門牌號不連續、不規則甚至一個地址多個建筑的問題(見圖1)。此外,該區域內也有大量新開發的小區,這些小區的地址排列規則,數據相對完整。
研究采用近年來的入室盜竊數據作為研究對象。相比興趣點地址和疫情地址數據,入室盜竊的案發地址單一,不存在第二地址的問題。此外,這些數據經過報案人報警記錄,且經過警察登記,保證地址信息完整的同時避免了口徑不一致導致的差異性問題。相對于其他數據來源,該數據每條地址包含了所在城市、區/縣、道路、小區及樓號等數據,完整的數據結構為地理編碼計算提供了理想的實驗數據。依據小區類型分類,共有1 050個道路地址和1 229個小區地址。大部分地址數據集中在區域的中心位置,并形成以此為中心向周邊逐級擴散的形態(見圖2)。

圖2 研究數據空間分布
利用獲取的地址數據,本文通過以下操作流程獲取研究數據,并開展實驗研究。
(1)地址數據整理。將地址數據中不完整、不一致的信息去除掉。
(2)基于網絡地圖平臺的地理編碼計算。基于百度、高德、騰訊以及天地圖4個地圖平臺提供的API,將地址數據轉化為坐標數據。百度地圖提供的是百度坐標,高德、騰訊以及天地圖平臺提供的是火星坐標。因此,利用WanderGIS (2015)提供的火星坐標/百度坐標轉換程序將以上坐標轉換為WGS84坐標。
(3)真實位置獲取。利用已有的地籍數據庫對地址數據進行配準,并采用人工校正的方式對數據進行糾正。將人工糾正后的坐標數據作為真值,并用于數據的比較分析當中。
(4)誤差分布分析。利用編碼平臺獲取的WGS84坐標與人工糾正的數據比較,獲取誤差相對真值的相對位置。基于誤差分布制作雷達圖,對各個平臺形成的雷達圖進行比較,分析各個平臺在編碼封閉小區和道路地址之間的精度差異(見表1)。
(5)誤差統計分析。通過對誤差的統計,分析各個平臺編碼誤差的統計差異。
(6)累計圖比較。通過累計圖的比較,分析各個平臺編碼誤差在不同量級上的分布差異。

表1 封閉小區與非小區地址地理編碼誤差對比 單位:m
(7)分析并得出結論。從統計的角度分析各個平臺之間在統計上的差異以及產生原因,并與以往的研究比較,驗證平臺的優劣勢。比較封閉小區與道路地址精度的差異,找出哪一類社區地址的編碼精度高,并分析原因(見圖3)。

圖3 地理編碼及數據分析流程
由表1可以看出4個地圖平臺的編碼結果精度存在一定差異。針對小區地址數據,騰訊地圖的編碼結果誤差均值最大(115.71 m),其他3個平臺的誤差未發現太大的差異(59.81 m,50.71 m)。針對非小區地址數據,騰訊地圖的誤差均值略高(278.83 m),其余幾個編碼平臺的編碼誤差(223.30 m,225.08 m)沒有太大的差異。這與以往關于地理編碼平臺精度差異的研究結論不同[2,11]。在田沁等[2]的研究中,騰訊的編碼精度最高,而高德、搜狗的編碼精度最低。其原因可能包括3個方面。第一,文中采用的是房屋地址數據,而不是POI(興趣點)數據。POI數據存在大量的名稱相似,甚至名稱一致的情況(比如:鼓樓區中山路、玄武區中山路),名稱存在大量字段相似,容易導致地址匹配出現較大的誤差。而小區和小區樓號數量少,且存在相似或重復的情況也少,因此匹配的誤差更小。第二,文中采用的數據位于城市的主城區。廖薇薇等[11]的研究采用的數據覆蓋全市,其中包含了部分郊區。與郊區相比,市中心人口密集,數據庫地址豐富,為地理編碼匹配提供了大量的參考地址。第三,近年來百度地圖的編碼地址算法不斷升級,地址庫數據也在不斷更新和豐富,因此地理編碼算法的精度會有所提升。
從編碼誤差的分布來看,4個平臺在識別地址性能方面也存在較大的差異。針對小區地址,4個平臺的編碼誤差大多集中在1 km以內,而道路地址的編碼誤差大量超過1 km,其中有部分超過2 km。在4個平臺之間,騰訊計算小區地址的誤差相對聚集。此外,幾個平臺編碼誤差未見較大的空間差異,這可能是由于圖4的制圖范圍在2 km以內,只有各個平臺之間的編碼誤差較大、數量多時才能通過這種制圖方式反映出來。
編碼誤差的百分位分布進一步表明了幾個平臺編碼誤差的差異(見表2)。針對小區,百度、天地圖在85%分位和95%分位的誤差最小(百度98 m,187 m,天地圖95 m,187 m),高德在85%分位和95%分位的誤差最大(201 m,496 m);針對開放式小區,騰訊在85%分位和95%分位的誤差最小(207 m,493 m),高德在85%分位和95%分位的誤差最大(290 m,502 m)。
針對小區地址,百度和天地圖產生大誤差的比例較少,而高德產生大誤差的數量較多;針對道路地址,騰訊產生大誤差的比例較少,而高德產生大誤差的數量較多。

表2 4個平臺地理編碼誤差累計百分比 單位:m
不同平臺誤差的分布更細致地刻畫了各個平臺編碼誤差的分布情況(見圖4)。針對小區地址,百度地圖和天地圖中誤差線長度在100 m以內的地址數量占比為85%左右,誤差線長度在180 m以內的地址數量占比達95%;騰訊地圖和高德地圖中85%分位所對應的誤差線長度分別為150 m和200 m, 95%分位對應的誤差線長度分別達到300 m和480 m。
不同的地圖平臺中所對應的地理編碼精度存在差異。針對開放式小區,在4類平臺中誤差線長度在200 m以內的小區數量占比為85%左右,與小區相比,顯然其誤差更大;而且同一地圖平臺中從小區地址和道路地址數據對比中可以發現,當小區數量累計占比達到85%和95%時,4個平臺對小區地址的編碼精度都高于道路地址的精度。這一結果與表1中對于均值的統計結果一致,說明小區地址的編碼精度普遍高于非小區地址的編碼精度,這與本研究對于這一問題的猜想相一致。
由累計曲線的走勢(見圖5)可以看出,4類平臺中道路地址相比于小區曲線增長更為緩慢,并始終低于小區的累計曲線;小區地址和道路地址累計曲線的總體走勢均為先陡增再緩慢增長,但小區地址的增長速度始終高于道路地址。兩類曲線均在最初的200 m范圍內增長最為迅速,并隨著誤差大小的增加,曲線縱坐標的增長速度逐漸下降,說明小區地址的編碼誤差更集中。相比之下,道路地址誤差的分布值域更廣。

圖4 4個網絡編碼平臺針對封閉小區與非小區地址編碼誤差分布
由不同的平臺所得到的累計曲線分布圖可以看出,百度地圖和天地圖的曲線形狀較相近。因此判斷百度和天地圖使用的編碼地址參考庫和算法的一致性比較強,且高精度匹配的比例更高;高德地圖的曲線最緩,產生小誤差的比例較低,大誤差的比例較高;騰訊地圖的編碼結果位于中間。

圖5 4種平臺地理編碼誤差累計曲線
綜合看來,小區地址的編碼精度全面優于道路地址的編碼精度,這一結論在4個地理編碼平臺中表現比較一致。該結果驗證了本研究關于編碼平臺針對小區地址與道路地址編碼精度差異的設想。即封閉小區在空間上存在邊界,編碼誤差受到地理邊界的約束而限制在一定范圍內,道路地址的邊界模糊,因而編碼誤差容易較大。隨著城市化進程加速,許多房屋拆遷改造導致小區形狀不規則,使誤差沒有地理邊界的約束。此外,新小區內地址一般分布比較規律。
(1)小區地址的編碼精度較高,道路地址的編碼精度相對較低。這一結論在4個網絡編碼平臺的結果具有一致性。這主要與城市的結構有關,需要針對不同的地址類型開發相應的匹配算法。道路地址分布結構雜亂無序,利用地理編碼進行精度配準時,偶然性較大,即使地圖平臺內部的算法十分完善,也無法完全降低道路地址配準不可控性的發生,使得相對于小區而言,其地理編碼配準的精度較低,誤差較大。小區分布結構有序,利用地理編碼進行插值算法時能夠更加快速定位小區單元樓號,使得地址匹配準確率更高,誤差較小。
(2)針對同類型的地址,各編碼平臺之間存在精度的差異。百度和天地圖在小區地址匹配中精度更高,高德在小區地址匹配中精度最低;騰訊在開放式小區地址匹配中精度更高,高德在開放式小區地址匹配中精度最低。表明平臺在解碼粗粒度地址和細粒度地址之間的能力存在差異。編碼結果中大誤差比例高說明編碼平臺對于粗粒度地址識別能力弱。封閉小區誤差小說明小區識別能力強;道路地址誤差大且比例高,說明平臺對于粗粒度地址(如道路、區縣)識別能力弱。編碼結果小誤差比例高,說明平臺針對小區地址識別能力弱。平臺地址庫中的樓號地址完整性有待豐富,匹配算法有待改善。道路地址小誤差多說明樓號/門牌號地址不完整,插值算法精度有待提高。
(3)綜合各個平臺編碼結果的差異,可以給地理編碼平臺提出建議:針對封閉小區的地址,百度和天地圖匹配小區/道路的能力較強,樓號/門牌號地址編碼能力有待進一步提升;高德地圖匹配小區/道路,甚至區縣的能力較弱,這類粗粒度地址的編碼能力有待進一步提升;針對非小區地址,騰訊產生大誤差的比例較少,說明騰訊在粗粒度的地址庫構建和匹配能力上較好;而高德產生大誤差的數量較多,說明高德地圖粗粒度地址庫的構建及匹配能力較弱。
(1)研究區域及數據的制約。由于研究區域僅為一個城市的部分區域,而研究數據為犯罪數據。本文的研究成果是否適用于其他城市和區域(如城鎮及鄉村地區),以及其他數據類型(如POI數據、疾病數據)仍值得進一步探討。
(2)如何利用本文的結果提升編碼精度仍值得進一步研究。本文通過對比性分析總結了封閉小區與道路地址編碼誤差的差異,但如何利用這些結果提升編碼的精度仍值得進一步研究。