如何批量查詢地址所屬的街道辦事處?
周五的時(shí)候有個(gè)同學(xué)向我求助,十萬(wàn)火急的樣子,加了微信就立刻給我語(yǔ)音,錦一爸爸很懵逼,這還是第一次有同學(xué)加了微信就立刻語(yǔ)音的。

他們是剛畢業(yè)的學(xué)生,在銀行工作,還在實(shí)習(xí)期,領(lǐng)導(dǎo)周五突然給了他們下了一個(gè)死任務(wù),要求他們?nèi)ツ玫剿诔鞘腥啃^(qū)的地址和經(jīng)緯度信息,以及這些小區(qū)所在的街道辦事處。
當(dāng)然了,如果不限定時(shí)間,這些都沒什么,即使用最笨的方法一個(gè)個(gè)去搜索都行,但問題就在這里,他們的領(lǐng)導(dǎo)要求必須在周日之前完成。不得不說現(xiàn)在的小伙伴都比較有求助思維,他們?cè)谥跎舷仁撬阉鞯搅宋抑暗囊黄恼隆度绾潍@取一個(gè)城市全部的小區(qū)名以及房?jī)r(jià)數(shù)據(jù)?》,然后找到了我,希望我能幫他們解決這個(gè)問題。
他們的問題其實(shí)可以細(xì)化為兩個(gè):第一:如何獲取一個(gè)城市全部的小區(qū)數(shù)據(jù)?這個(gè)上面的那篇文章已經(jīng)給出了解決方案,另外EasyPoi高德版也可以解決這個(gè)問題,獲取到的信息會(huì)同時(shí)包含地址、經(jīng)緯度等信息。所以這個(gè)問題可以視為已經(jīng)解決。
第二:如何根據(jù)指定的地址獲取所在的街道辦事處?這個(gè)問題比較難,為什么呢,因?yàn)榻值擂k事處是一個(gè)行政單位,地理邊界信息很難拿到。
街道辦事處,是我國(guó)鄉(xiāng)級(jí)行政區(qū)街道的管理機(jī)構(gòu),是基本城市化的行政區(qū)劃,下轄若干社區(qū)居民委員會(huì),或有極少數(shù)的行政村。一般情況下,城市社區(qū)指居民委員會(huì)轄區(qū),農(nóng)村社區(qū)指村民委員會(huì)轄區(qū)。
這個(gè)問題其實(shí)很早之前有同學(xué)問過,也做了一些研究,一直拖著沒有完成。今天正好趁著是周末有時(shí)間,給大家分享下這個(gè)問題的解決方案,只說思路,不做過多理論說明。總結(jié)來(lái)說,已有比較成熟的解決方案,后面會(huì)嘗試改進(jìn),有這個(gè)需求的同學(xué),可以直接來(lái)找我。
目前的解決方案
因?yàn)樗麄円谋容^急,錦一爸爸是通過一個(gè)叫郵編庫(kù)的第三方網(wǎng)站來(lái)解決這個(gè)問題的。
郵編庫(kù)官方網(wǎng)站:https://www.youbianku.com/

對(duì)于如何批量查詢地址所在的街道辦事處,這個(gè)網(wǎng)站開放了一個(gè)批量查詢的api接口,通過這個(gè)接口,你只需要提供地址或者經(jīng)緯度就可以獲取所在的街道辦事處。

當(dāng)然了,這個(gè)服務(wù)是收費(fèi)的,大概就是0.1元/條。準(zhǔn)確率官方自稱是95%左右。

這個(gè)客服系統(tǒng)還不完善,如果需要緊急完成地址的批量轉(zhuǎn)換,估計(jì)會(huì)比較惱火。如果你也有這個(gè)需求,可以直接聯(lián)系錦一爸爸,錦一爸爸可以為你提供你所在城市的全部的小區(qū)或者指定的poi的地址信息。但是目前還是要通過調(diào)取這個(gè)郵編庫(kù)的服務(wù)來(lái)批量解析街道辦事處信息。所以這一塊是需要收費(fèi)的,具體收費(fèi)標(biāo)準(zhǔn)請(qǐng)參考郵編庫(kù)的api接口收費(fèi)標(biāo)準(zhǔn),錦一爸爸不會(huì)從中獲取差價(jià)。

原理分析和后續(xù)的解決方案
對(duì)于如何根據(jù)地址獲取所在街道辦事處這個(gè)問題,錦一爸爸大概是在去年12月份就開始思考。一方面是當(dāng)時(shí)有幾個(gè)同學(xué)問了我這個(gè)問題,還真巧了,和今天提出問題的同學(xué)一樣,大多也都是銀行部門工作的同學(xué);另一方面,我當(dāng)時(shí)還在做金融風(fēng)控相關(guān)的數(shù)據(jù)產(chǎn)品,因?yàn)閮?nèi)卷得比較厲害,正在絞盡腦汁想從地理位置數(shù)據(jù)上入手做出點(diǎn)什么東西出來(lái)。主要解決思路有三個(gè):
方案一:獲取所有街道辦事處的地理邊界面數(shù)據(jù),判斷指定的地址是落在哪個(gè)街道辦事處邊界內(nèi)
2017年左右我曾寫過一個(gè)獲取歷年全國(guó)社區(qū)/村委會(huì)的數(shù)據(jù)采集程序。

每年的社區(qū)村委會(huì)個(gè)數(shù)大概在60萬(wàn)左右,街道辦事處是社區(qū)村委會(huì)的上一級(jí)行政管理機(jī)構(gòu),數(shù)量大概在10~20萬(wàn)左右或者更小,所以技術(shù)不上是問題。問題就在于很難獲取到街道辦事處級(jí)別的地理邊界數(shù)據(jù),這個(gè)方案應(yīng)該是目前最精確的一個(gè)方案了,考慮到這個(gè)公眾號(hào)的讀者里有很多是從事地理規(guī)劃的同學(xué),所以如果有同學(xué)有獲取這個(gè)地理邊界數(shù)據(jù)的方法,請(qǐng)不吝賜教(我的微信號(hào):soaringoul)。
方案2:獲取所有街道辦事處的地理位置點(diǎn)數(shù)據(jù),判斷指定的地址距離哪個(gè)街道辦事處最近
與方案一不同的是,這里是將所有的街道辦事處辦公地點(diǎn)所在位置做為判斷 依據(jù),然后根據(jù)距指定地址的距離遠(yuǎn)近來(lái)判斷,顯而易見,這是存在誤差的。

方案3:在方案2的基礎(chǔ)上,增加地址中道路維度進(jìn)一步判斷
這個(gè)就是在方案2的判斷結(jié)果之上,進(jìn)一步將地址中的道路信息作為進(jìn)一步的判斷。這一塊特別要說明的是不是根據(jù)街道辦事處辦公點(diǎn)地址中的道路來(lái)與目標(biāo)地址中的道路來(lái)匹配,而是將相應(yīng)街道辦事處轄區(qū)內(nèi)的居委會(huì)所在的多個(gè)道路與目標(biāo)地址中的道路來(lái)匹配。

這個(gè)方法的缺點(diǎn)是要維護(hù)龐大的道路名和居委會(huì)地址數(shù)據(jù),需要持續(xù)維護(hù),但相比方法2理論上能減少一定程度上的誤差,具體能減少多少,還是要用數(shù)據(jù)來(lái)說話,如果說識(shí)別的精度提供有限,可以直接采集方案2。以上是我自己總結(jié)的一些方案,鑒于這個(gè)公眾號(hào)的讀者里有很多地理規(guī)劃的專業(yè)人士,如果有更好的方法,歡迎隨時(shí)溝通交流 ,我的微信號(hào): soaringsoul