周邊建物資料處理方法
本 Demo 的周邊建物取自 OpenStreetMap,© OpenStreetMap contributors,以 ODbL 1.0 授權。周邊建物只做視覺參考與匯出,不參與任何法規計算。
1. 來源與查詢
主要來源:OpenFreeMap 向量圖磚(OpenMapTiles 綱要的 building 圖層,z14)。瀏覽器直接下載基地所在約 2 公里見方的圖磚,裁切到圖磚邊界後以基地中心為圓心過濾半徑。相鄰且同高的建物在圖磚中可能被合併成一個輪廓,跨圖磚的建物會被切成兩塊,因此介面計「輪廓」而非「棟」,位置精度約 1 公尺。授權:OpenFreeMap、© OpenMapTiles、Data © OpenStreetMap contributors。
備援:Overpass API(overpass-api.de,備援 overpass.private.coffee),僅在圖磚失敗時經本站伺服器查詢;使用者按「重試其他來源」才由瀏覽器直接查詢。查詢語句:
[out:json][timeout:25];way["building"](around:半徑,緯度,經度);out tags geom;
Overpass 只取 building、building:part、building:levels、height、name 欄位,查詢座標四捨五入到小數 4 位(約 11 公尺)並快取 7 天;未查詢 relation 型建物。
2. 高度
- OpenFreeMap 圖磚:採
render_height。實測其規則為 ceil(樓層數 × 3.66 m),無資料者一律為 5;任何整數樓層都算不出 5,故 5 視為高度未知(實際高度恰為 5 公尺的建物會被保守地當成未知)。 - 有
height標記(公尺):直接採用。 - 只有
building:levels:樓層數 × 3.2 公尺,標為「推估」。 - 兩者皆無:高度未知,只畫地面虛線輪廓,不擠出量體,也不匯出成實體。
3. 座標
經緯度以 WGS84 橢球的子午圈與卯酉圈曲率半徑換算為以基地原點為中心的局部公尺座標,再依使用者設定的指北角旋轉;1 公里範圍內誤差約數公分。質心落在基地內的建物視為基地上的既有建物,不顯示。
4. 限制
- OpenStreetMap 的台灣建物資料由志工繪製,各地完整度差異很大(2026-10 實測:臺北大安 150 公尺內 70 個輪廓,臺中、高雄部分地點不到 10 個);空白處不代表空地。輪廓少於 15 個或有高度者不到 30% 時,介面會標「資料稀疏」。
- 樓層數 × 3.2 公尺只是推估,實際高度依建物而異。
- 本站不建立、不保存任何以 OSM 為基礎的資料庫;查詢結果只在瀏覽器與伺服器快取中暫存。
5. 其他第三方服務
- 地址查詢:OpenStreetMap Nominatim,經本站伺服器轉送,整個網站每秒最多 1 次,結果快取 7 天。轉送時不附帶使用者身分。
- 底圖:內政部國土測繪中心臺灣通用電子地圖 WMTS(政府資料開放授權)。正射影像圖層的授權條件尚待確認。