# 出生地離線目錄

本目錄使用 [GeoNames](https://www.geonames.org/) 的公開地理資料，依 [Creative Commons 姓名標示 4.0 國際授權條款（CC BY 4.0）](https://creativecommons.org/licenses/by/4.0/) 改作及散布。原始資料可免費用於商業用途；GeoNames 不為本網站背書，原始資料與本目錄均不保證完整性、精確性或即時性。

## 資料來源與改作

- 國家、城市、一級行政區及時區：[GeoNames 官方資料下載](https://download.geonames.org/export/dump/)，使用 `countryInfo.txt`、`admin1CodesASCII.txt`、`cities1000.zip`。
- 台灣採 `TW.zip` 的 `ADM2` 縣市紀錄：22 縣市，保留每個縣市自己的代表座標及 `Asia/Taipei` 時區，不使用鄉鎮市區的座標代替縣市。
- 台灣的選單顯示為「台灣 → 台灣 → 22 縣市」。第二層的「台灣」是單一介面選取分組，不表示行政隸屬有任何變動。其他國家的州省及城市資料不受此顯示調整影響。
- 主要出生地的中文名稱來自 [GeoNames 官方分國別名稱資料](https://download.geonames.org/export/dump/alternatenames/)。使用台灣、中國、日本、南韓、香港、澳門、馬來西亞、新加坡、美國、加拿大、澳洲、紐西蘭及英國的語言標記中文名稱，排除歷史名稱及俗稱。
- 中文名稱透過專案既有的 OpenCC 繁體化，並補充常用國家的州省地區繁體顯示名稱；顯示名稱的翻譯不改動 GeoNames 的地名編號、座標或時區。國家名稱使用建置環境的 Unicode CLDR／`Intl.DisplayNames` 繁體中文名稱；台灣、香港、澳門使用本網站顯示名稱。
- 缺少可確認中文譯名的海外固有地名保留原文，不將日文漢字或歷史別名當成現代中文地名。
- 城市資料排除已標為歷史、荒廢或摧毀的聚落；未能對照一級行政區的紀錄集中在「其他地區」。這不是完整的全球地址或行政區資料庫，未收錄每個村里或醫院。
- 每個城市保留原始 GeoNames 地名編號及 WGS84 經緯度，以城市所屬的 IANA 時區供程式處理歷史 UTC 偏移與夏令時間，不以國家推定單一時區。

每次建置使用的確切來源 URL、下載檔案大小、SHA-256、建置時間、收錄筆數及排除紀錄列於 [sources.json](./sources.json)。

## 使用與更新

地理資料已隨網站部署；選取地區只向本站讀取 `/locations/{國家代碼}/{地區代碼}.json`，不呼叫第三方地理 API。檔案路徑不包含出生日期、出生時間或個人姓名。

國家與州省地區索引為 `manifest.json`；城市資料按州省地區拆檔，避免載入某國家時同時下載全球城市。全球採 GeoNames 的一級行政區（州、省或同等地區）→ 城市；台灣採單一「台灣」選取分組 → 22 縣市。座標為聚落或縣市行政區的代表位置，不是精確出生地址，無法代替實際出生地址的測量。

新版台灣的固定路徑為 `/locations/TW/TW.json`。舊版的 `TW-PROVINCE.json`、`MUNICIPALITIES.json`、`FJ-PROVINCE.json` 保留給已開啟的舊分頁；新索引不列出舊分組。恢復舊表單或送至伺服器時，只有這三個已知舊分組可轉為 `TW`，再由可信的台灣目錄核對城市編號與座標，不能藉此提供任意城市或客戶端座標。

在專案根目錄執行 `node scripts/build-location-catalog.mjs` 可使用 `local/location-sources` 的來源快取重建。只需套用單一台灣分組時，可執行 `node scripts/build-location-catalog.mjs --taiwan-only`，直接合併已部署的台灣城市資料，不下載資料、不重寫海外城市檔案。需要更新官方來源時執行 `node scripts/build-location-catalog.mjs --refresh`。建置器只下載預先列出的固定官方公開檔案，不接受使用者生日、地名查詢或任意下載網址。

本地理資料的授權與網站原始程式碼授權分開適用；再次散布時須保留 GeoNames 來源、CC BY 4.0 授權連結及改作說明。
