筆者曾在 2021 年 3 月訪問一位開發者有關香港政府資訊科技總監辦公室(OGCIO)的地址搜尋服務 API。開發者 2020 年尾曾在社交網絡表達意見,不明為何同一座大廈有不同的 GeoAddress (19位數值)。開發者曾查閱 API 的規格文件,文件指 GeoAddress 是地址的 Easting 和 Northing,但開發者發現測試結果的 Easting、Northing 與文件的 spec 不同。
他認為地址系統是一個複雜問題,種類分法也有不同,例如以大廈、法團或地址為單位三種分法。還有,相連大廈究竟是一棟還是多棟。
數據不齊全及數據問題
該位開發者指出數據亦不齊全,他舉例地政總署有登記的工業區工業大廈,地址搜尋服務卻沒有相關數據。他亦覺得 API 不好用,他認為可能 API 設計不想開發者作以下用法。
例如:開發者想得到某街道上所有地址,但 API 卻不容許這樣做。
- 回傳的數據會有重複。例如大廈是16-18號,API 回傳16號/18號/16-18號。
- 回傳的數據有上限,只得200,出奇地少。
他認為很多開發者不介意 OGCIO 公開分享整個數據庫,讓開發者自行思考怎去用,但他猜測 OGCIO 可能不想。
他舉例,坊間開源專案 HKAddressParser 用兩套不同 API 來做地址搜索,還須額外 hacking,他估計效果只有八成。
不乎開發者期望的功能
開發者認為絕大多數的用家期望輸入地址後,系統只回傳唯一數據,但這不是 API 的問題,不能怪有關部門,而是地址系統本身問題。另外,開發者希望可用 ID 來搜尋地址,例如 GeoAddress。如果 API 能以經緯度或其它可分辨位置來搜尋也好。
筆者問到開發者如何解決 coding 需要?也是用兩套 API?
開發者的想法是用任何方法盡量取得所有數據,然後自己再思考用甚麼方法重整數據結構,所以開發者認為就算數據不完整,還是希望當局能分享整個數據庫,然後開發者自行重整數據結構就能解決 coding 需要了。最理想大家不用使用 Google Map API,因為該 API 也不是很準確,價錢亦貴。
他亦認為另一套由地政總署開發的香港地理數據站的 API 搜尋地址功能更差。
請成為 Patreon 會員支持森路歷程寫作及筆者的開源工作。 – https://www.patreon.com/sammyfung