Class AddressService
java.lang.Object
io.leandev.appfuse.almanac.address.AddressService
台灣地址(縣市 / 鄉鎮市區 / 村里)服務
提供與上一代 appfuse-common AddressService 等價的查找能力,差別在於資料來源
由直接連接內政部國土測繪中心(NLSC)改為連接 almanac
(GET /api/v1/address/...)。各層清單以檔案型快取保存——這類資料總量大、存取
零散,特別適合放磁碟層。
- Since:
- 4.0
-
Constructor Summary
ConstructorsConstructorDescriptionAddressService(AlmanacClient client, CacheManager cacheManager, Duration ttl) 建立服務 -
Method Summary
Modifier and TypeMethodDescription取得所有縣市findAllRoadsByTown(String cityCode, String townCode) 取得指定鄉鎮市區的所有道路findAllTownsByCity(String cityCode) 取得指定縣市的所有鄉鎮市區findAllTownsByCityName(String cityName) 依縣市名稱取得所有鄉鎮市區(名稱版,免代碼)findAllVillagesByTown(String cityCode, String townCode) 取得指定鄉鎮市區的所有村里findAllVillagesByTownName(String cityName, String townName) 依縣市與鄉鎮市區名稱取得所有村里(名稱版,免代碼)依代碼查找縣市findCityByName(String name) 依名稱查找縣市依代碼查找鄉鎮市區findTownByName(String cityName, String townName) 依名稱查找鄉鎮市區
-
Constructor Details
-
AddressService
建立服務- Parameters:
client- almanac 客戶端cacheManager- 快取管理器ttl- 快取存活時間
-
-
Method Details
-
findAllCities
-
findAllTownsByCity
-
findAllVillagesByTown
-
findAllRoadsByTown
-
findCity
-
findCityByName
依名稱查找縣市
查詢前先以
normalize(String)把俗寫「台」正規化為 almanac 官方用字「臺」,故傳入台北市或臺北市皆可命中。此方法為所有以縣市名查詢的入口(towns / villages /findTownByName(String, String)),正規化集中於此即全面覆蓋。- Parameters:
name- 縣市名稱(接受官方「臺」或俗寫「台」)- Returns:
- 縣市(查無則為空)
-
findTown
-
findTownByName
-
findAllTownsByCityName
依縣市名稱取得所有鄉鎮市區(名稱版,免代碼)
消費端通常以名稱(而非 NLSC 代碼)操作地址;本方法內部以
findCityByName(String)解析代碼後委派findAllTownsByCity(String),查無該縣市時回空清單。- Parameters:
cityName- 縣市名稱(如臺北市)- Returns:
- 鄉鎮市區清單(查無縣市則為空)
-
findAllVillagesByTownName
依縣市與鄉鎮市區名稱取得所有村里(名稱版,免代碼)
內部以
findTownByName(String, String)解析鄉鎮市區(其cityCode已含所屬縣市代碼)後委派findAllVillagesByTown(String, String),查無該縣市或鄉鎮市區時回空清單。- Parameters:
cityName- 縣市名稱(如臺北市)townName- 鄉鎮市區名稱(如松山區)- Returns:
- 村里清單(查無則為空)
-