---
# A curved road number house address grid, pandoc markdown master file
# https://www.jidanni.org/geo/house_numbering/grids/tw/taichung/dajia/youshi/
# Author: Dan Jacobson https://www.jidanni.org/
# Copyright: https://www.gnu.org/licenses/gpl.html
# Created: 2026-04
# Last-Updated: 2026-06-02T15:50:37+0000
# Update #: 1034
title: 路號門牌弧形網
author: 積丹尼
keywords: [
門牌號碼規劃,
路名規劃,
門牌座標網,
折疊單軸座標系統,
OGR/GDAL,
House address planning,
Road number planning,
House address grids,
Folded single axis coordinate system,
]
abstract: |
本文假定一個城市,其路名、門牌皆空白,待我們制定最佳編訂方式。
我們結合台灣【幾巷幾弄】與猶他州【門牌座標即路號】
等各系統優點,套在工業區弧形路網上,座標軸折疊, X, Y 共用。
#en_on
Let's say street names and house numbers are all empty. Have you,
the reader, thought about how to number them?
We merge Taiwan's "Lane P Alley Q" with Utah's "raw
coordinates as road name" and other house numbering / road naming
systems from around the world. We remove one of the plane coordinate
axes and bend the
other, getting a single axis to do double duty.
In the lab we then drape this all upon the curved streets of Youshi Industrial
Park, Taichung, Taiwan, just as an experiment. To the person in the
street this is a system that cannot be simplified further, and does
not require a cellphone.
#en_off
弧形以 OpenStreetMap 逐路口當控制點,由 OGR/GDAL/SpatiaLite
thin plate splines, Viking GPS 出圖。
犧牲【幾公尺/多少門牌】固定比例,換取【平行的路,門牌同步】。
#en_on
To handle the curvature we used each road intersection's OpenStreetMap
data to make ground control points, and then OGR/GDAL/SpatiaLite
thin plate splines, finally making maps on Viking GPS. GIS staff use
the same house number / road number coordinates as the general
public. In the past we might have wanted a constant meters-per-house
number ratio. Now more important is parallel roads should have lockstep
house numbers, even when curved.
#en_off
本系統如方格紙,定位免手機免地圖。
「1450路654號」欲表達途徑時亦能作「700路1600街600巷1450弄654號」,
誤置「654路1450號」仍相鄰。
惟山區無方形路網,本系統不如傳統【幾巷幾弄】。
#en_on
In the flatlands it's like walking on a sheet of graph paper. No
need for a map. But in the mountains or crooked road areas our
system can't beat Taiwan's
traditional "Lane P Alley Q". However in the flatlands we can also
combine the systems, allowing packing in a path to hard-to-find addresses:
"No. 654 Alley 1450 Lane 600 Street 1600 Road 700", and all the fire
department responder needs to double check is, "Did I hear you say
1450 and 654?"
#en_off
---
::: extra
:::
## 緣起 / Background
::: {lang=zh-TW}
門牌號碼規劃,都市計畫課不教,[^no-school-z]地理資訊系統無按鈕。 [^hate-z]
地圖再好,門牌循序彌補不了。今天假如路名、門牌全部空白,新的我們要怎麼樣編訂?
[^no-school-z]: [只有如 @APA2023。]{lang=zh-TW}
[^hate-z]: [門牌條例也無法保障對面門牌不會差幾百號,何況平行的路,門牌同步。
公所派員持筆記本編門牌,千古恨。 連雙胞胎門牌通通來。]{lang=zh-TW}
:::
::: {lang=en-US}
House numbering planning, they don't teach it even at urban planning
institutes.[^no-school-e] And then the municipal office sends someone out with
pad of paper to number houses: disaster! One that even the best maps can't fix.
And then there are the GIS professionals, never imagining what if they were
tasked with creating an addressing system from scratch.
[^no-school-e]: [All there is is e.g., @APA2023.]{lang=en-US}
:::
## 課題 / Challenges
::: {lang=zh-TW}
- [瑞士座標](https://en.wikipedia.org/wiki/Swiss_coordinate_system) X, Y
不重複, 不怕倒唸 Y, X. 惟國家座標無法旋轉、拉扯,適應各城市路網。
- 馬尼拉 [Bonifacio Global City
(BGC)](../../../../ph/ncr/bands/high.html#bgc){#bgc-z} 南北 1…15th
Avenue 與東西 20…39th Street 編號也不重複, 但 BGC 未據此簡化而均稱
Road,也未乘 100, 仿猶他州:
- 猶他州: 據 @RoseRedwood2015 美國 10% 城市中,
南北、東西兩向路名均採[號碼街](https://en.wikipedia.org/wiki/Numbered_street)。
而猶他州常見的系統裡也進一步,如 56th Street 直接稱謂 5600 Street,
也就是門牌座標值當路名: 過了 5600 Street 後, 左右門牌從 5600 起。
惟猶他系統仍具 5600 南北東西共四路,而我們則四個[象限
角](https://zh.wikipedia.org/wiki/%E8%B1%A1%E9%99%90%E8%A7%92)僅採一個
[@5135451],極其防笨,排除混淆風險。
- 台北市: 即使巧合仁愛東路某段235巷連通忠孝東路同段234巷, 但按照 @laws1
該巷仍必制定分點,無法一路同名。[^compare-z]
另外,台北市[【之幾】]{#zhiji-z}門牌充斥,我們則預留足夠
[正整數](https://zh.wikipedia.org/zh-tw/%E6%95%B4%E6%95%B0) (positive
integers).
- 波哥大: № 60-51 → 6051[^m51-z], 51 也脫離公尺。 Calle 61 →
6100; Calle += 25000, Carrera += 75000,再合併同一詞稱呼。
[^m51-z]: [除其[連接號(-)](../../xinshe/lanes/xinshe.html#pros_and_cons)]{lang=zh-TW}
[^compare-z]: [而在我們的系統裡,\
該巷巷號,因是從遠方【1000路】分出來的,不管斷斷續續的否,
均同一巷號。]{lang=zh-TW}
:::
::: {lang=en-US}
- In the [Swiss Coordinate
System](https://en.wikipedia.org/wiki/Swiss_coordinate_system) X, Y do not
overlap. Thus even if you read them Y, X there is no danger of confusion.
Alas, one is not allowed to bend and twist such a system to fit the street
pattern of each individual town.
- Manila's [BGC](../../../../ph/ncr/bands/high.html#bgc){#bgc-e} Streets and
Avenues don't have overlapping numbers either: the first twenty in one
direction, the next twenty perpendicular, but they stopped short of then
calling them all just Roads, nor multiplying by 100, like Utah:
- Utah: according to @RoseRedwood2015 in 10% of US cities, both north-south, and
east-west [streets use
numbers](https://en.wikipedia.org/wiki/Numbered_street). Indeed, in Utah they
take things to the extreme. Instead of 56th Road they simply say 5600 Road,
with the unadorned house addressing coordinates also taking the role of the
official road name. However as they use all
[quadrants](https://en.wikipedia.org/wiki/Orthant), they pay the price by
needing N. S. E. W. road name prefixes, adding to confusion worries.
- Taipei: Even if there was a place in Taipei where there was "parallel roads,
parallel numbers", there would still be the problem of what to do when a
certain theoretical Lane 235 Renai E. Rd. Sec. 9 hits a certain theoretical
Lane 234 Zhongxiao E. Rd. Sec. 9. Yes, the rule book, @laws1 goes into detail
about where to divide that innocent single same lane. Whereas in our system
that lane would trace its roots back to Road 1000, and use the same number it
had when it broke off from Road 1000, no matter if it is all completed or not,
or just a bunch of sections, but in the same alignment. By the way, our system
reserves plenty of numbers, enough for all *legal* width houses and roads too,
so there's no need for ["123-1" dashed]{#zhiji-e} mess. Yes, we can have a
100% [positive integer](https://en.wikipedia.org/wiki/Natural_number) system.
Yes, ingredients: 100% **natural numbers**, plus one "№" and one "Road"
prefix. Can it be simpler?
- Bogotá: We 1) dump their [dash](../../xinshe/lanes/xinshe.html#pros_and_cons).
60-51 → 6051, also we remove the connection with actual meters. 2) We
ensure perpendicular road numbers don't overlap, removing the need to
distinguish Streets from Avenues. 3) Not only houses, but road names use the
same phraseology: Road 61 becomes Road 6100.
:::
::: {lang=zh-TW}
去除各地缺點後,套在弧形工業區路網之前,
必先放棄前一波門牌改革【幾公尺/多少門牌全區固定比例】概念,
換採【平行的路,門牌同步】,如橢圓形操場逐跑道, 內線門牌會較密。
另外,因弧形,故本文南北東西、甚至左右,都不提,僅講框內側為雙號…
:::
::: {lang=en-US}
After eliminating the pitfalls of each system, we add our own algorithm
[@5135451], and then see if can deal with a curved industrial park. Yes it can,
but we must first give up on the earlier revolutionary numbering practice of a
fixed numbers-per-meter ratio. That was a good reform back in the past, but
we've got an even higher principle to follow now: "Parallel roads, parallel
numbers".
:::
## 研究方法 / Methods
[{width=800}](wide.png){#fig-1}
::: {lang=zh-TW}
圖1: 紅、黃:路號兼門牌座標方格網。所有的路依序自綠色虛擬 L 字型「1000路」分出。
不但採單[象限角](https://zh.wikipedia.org/wiki/%E8%B1%A1%E9%99%90%E8%A7%92),且
X 與 Y 值不重疊,又不跨 0, 門牌全正無負,免分南北東西、幾段路。
地址舉例:1450路654號(側門:656路1452號)。底圖:
台中市大甲區[幼獅工業區](https://www.openstreetmap.org/#map=15/24.40501/120.65128)
[OpenCycleMap](https://wiki.openstreetmap.org/wiki/OpenCycleMap) "歷史"
路名。註:本研究僅限實驗室,未及現場。
:::
::: {lang=en-US}
Figure 1: Red, yellow: our road naming / house numbering grid. All the roads, in
numerical order, branch off green colored L-shaped imaginary Road 1000. We
restrict ourselves to the [first
quadrant](https://en.wikipedia.org/wiki/Orthant) and also don't allow X and Y to
overlap. Nor do we venture past 0, keeping the entire system positive: no need
for N. S. E. W. street name prefixes. House example: No. 654 Road 1450 (side
door: No. 1452 Road 656). Base map: [Youshi Industrial
Park](https://www.openstreetmap.org/#map=15/24.40501/120.65128), Dajia District,
Taichung City, Taiwan.
:::
::: {lang=zh-TW}
如[圖1](#fig-1),先畫一條路(綠色 "1000"),繞著社區的外圍,把社區框起來。
該路暫時尚未命名。該路走著,[框的內側]{#beg-z},依台灣習俗,發出號碼巷:
…[200巷](#3D-z){#3Dt-z}、300巷…[^haomaxiang-z] [^no-odd-z]
(且我們指定本(框內)側為雙號側,
因此整個系統所有路號跟著註定為雙號,全城無單號路。
框外則禁編,以免與框內產生雙胞胎門牌等。 [圖1](#fig-1)【0 路】同樣不許跨越。)
[^haomaxiang-z]: [這就是台灣系統的精華,號碼巷與門牌號碼同體。]{lang=zh-TW}
[^no-odd-z]: [我們不採201巷、301巷,因為我們認為200巷、
300巷比較整齊。]{lang=zh-TW}
:::
::: {lang=en-US}
As in [Figure 1](#fig-1), we first draw out a road (green, "1000"), going around
the edge of our community. We won't name our road just yet. As we go along the
road, on the [inside of the frame]{#beg-e} we will make branch roads [Lane
200](#3D-e){#3Dt-e}, Lane 300… (This is a highlight of Taiwan practice:
we're on the even side of the road, so between houses 486 and 490 there might be
a Lane 488 instead of a house. And we are choosing to make our lanes branch off
at every hundred, to keep things neat. Note we choose 200, 300… and not
201, 301… You the reader certainly agrees that looks more sharp, no?
:::
::: {lang=zh-TW}
到了將生出1000巷的時候,我們不但生出它,也[^turn1000-z]轉入它,
亦即沿著框角90°轉彎,然後繼續,框的內側照樣生出1100巷、1200巷…
[^turn1000-z]: [也不必急轉彎,可慢慢轉,以維持我們的單軸理論(@5136389)。
也不見得要轉剛好 90 度, @hpfd 為例。]{lang=zh-TW}
:::
::: {lang=en-US}
So OK, we're making our numbered lanes and what do you know, after making Lane
1000, it is time for lunch or something, and we not only make Lane 1000, but
also "turn" [^turn1000-e] into it, both as in "turn the steering wheel", and as
in "become". Fine. Anyways, we proceed
nonetheless, creating branch roads on the even side, Lane 1100, Lane
1200…
[^turn1000-e]: [We don't need to make a sharp turn. A gentle turn
might help us better prove our "single axis" theory, (@5136389).
Nor must we turn exactly 90°, @hpfd. ]{lang=en-US}
:::
::: {lang=zh-TW}
巷均取名妥, 而在我們的系統,所有的路同等。 既然同等,無路與巷之別,故
均改稱路。 回顧[圖1](#fig-1),剛走綠色路,
比較周圍的路號,其唯一可能的路號就是我們貼的「1000路」,
[^far-z]該1000路也就是我們門牌座標【折疊[單軸]{#dz-z}】。[^more-z] 接著能製圖:
[^far-z]: [一般該框應遠離社區(@mmmxs2024dj)。
遠到社區萬年後也不會延伸觸及它。因越框的部分無法發門牌號碼,否則與
框內地址重複[@5135451]。故採單[象限
角](https://zh.wikipedia.org/wiki/%E8%B1%A1%E9%99%90%E8%A7%92)。
這次則特別設於近郊讓讀者同[圖1](#fig-1)看得到。]{lang=zh-TW}
[^more-z]: [其實上邊講的逐巷子也不一定都要鋪設。留在地圖上僅當紅色線條也可以。
它們主要的功能是做我們門牌座標方格網。再則,鋪設後,寬度可能很寬,
我們先均改稱【路】,與1000路同等,甚至免鑽牛角尖定義什麼叫路、街、巷、 弄, 如
@laws1, 生長過程一直改名, 如昆蟲脫皮。 均先稱【路】好了。
]{lang=zh-TW}
:::
::: {lang=en-US}
OK, but we still haven't named our road yet. Now didn't we just also dart into
Lane 1000? But how can Lanes give birth to more Lanes? (Not in Taiwan.) Ah! I
got it: let's call them all "Roads". Looking back at the [map](#fig-1) we
observe the position is correct. So calling the green road "Road 1000" makes
sense.[^far-e] That Road 1000 is our so-called "[single folded axis]{#dz-e}"
coordinate system's single axis.[^more-e] OK, we're ready to make maps:
[^far-e]: [Normally that frame (single L-shaped axis, Road 1000 here) should be
farther away from the community than here. (@mmmxs2024dj). Far
enough so even many years later community development won't get
near it. Because once you leave the frame, there is no way to
number houses without creating twins [@5135451]. That's why we
chose only the [first
quadrant](https://en.wikipedia.org/wiki/Orthant). This time we
especially made the frame close to town so it would fit on
[Figure 1](#fig-1) so you the readers could see it up close.]{lang=en-US}
[^more-e]: [Actually we don't really need to build any roads: those
green and red lines are simply our graticule, that governs how we
name roads and number buildings. Furthermore, once you really
bulldoze them, they might be quite wide. So we'll beat the rule
book @laws1 to it and call them all Roads right from the
beginning, instead of needing to upgrade the name from Lane to
Street to Road according to width, like some molting insect.]{lang=en-US}
:::
::: {lang=zh-TW}
1. 由 [Overpass Turbo](https://overpass-turbo.eu/) 取得 [開放街圖
OpenStreetMap](https://www.openstreetmap.org/) 路網及門牌點。 [^tc-origin-z]
1. 建立新舊對照檔:工十路 100, 青年路 400…, 幼七路 2800, 幼九路
3100.[^xy-z] [^no-nesw-z]
1. 在 GNU/Linux 用 [OGR/GDAL](https://gdal.org/)/SpatiaLite 逐路交叉當控制點
(ground control points.)
1. 再由 `ogr2ogr -tps` ([thin plate
spline](https://en.wikipedia.org/wiki/Thin_plate_spline))
使控制點夠密合。圖以 [Viking GPS](https://github.com/viking-gps/) 輸出。
[^vs.shear-z] [^hou-z]
[^vs.shear-z]: [相對於如 @hpfd,
該市法規規定單一斜度。我們則各處斜度略異,難以法令規定。]{lang=zh-TW}
[^hou-z]: [這個都建立了之後,我們就脫離了 WGS84, 座標變簡單了: (1450,656) =
(656,1450).]{lang=zh-TW}
[^tc-origin-z]: [OpenStreetMap 門牌點源自台中市政府民政局開放資料。]{lang=zh-TW}
[^xy-z]: [對外。說穿了,對內,亦即與 GIS 操作時, 1000 以下就是 Y, 1000 以上就是
X. 1000 本身呢? 不敢碰! 一般不會那麼靠近社區,且此案採 1000 當折疊軸,
因剛好橫的路能用三碼內標示(其實,[不良示範](#bad3t-z)。) 另一案也許採
3700, 看地形需求而定。
反正三個[象限](https://zh.wikipedia.org/wiki/%E8%B1%A1%E9%99%90%E8%A7%92)鎖定,
唯一能拓展是一直增加路號,從目前3100×1000門牌網向更高方向成9000×1000.
若再向東延伸,就需變 5 碼了。通常如果沒有其他考量,四碼我們會把
[2500/7500](../../../../ph/ncr/bands/high.html#up_diliman)定近城市中心,
五碼則25000/75000。]{lang=zh-TW}
[^no-nesw-z]: [不是 3100 東,也非 3100 北,而只是 3100, 又是
(其交叉路的房子用的)門牌座標值,也是未來的路號:原幼九路要變成
【3100路】, 唯一的名字。]{lang=zh-TW}
:::
::: {lang=en-US}
1. Via [Overpass Turbo](https://overpass-turbo.eu/) we obtain
[OpenStreetMap](https://www.openstreetmap.org/) road network and address
points. [^tc-origin-e]
1. We visually choose what old road names to attach new road values to, and make
a table: 工十路 Gong 10th Road: 100, 青年路 Qingnian Rd.: 400…, 幼七路
You 7th Rd.: 2800, 幼九路 You 9th Rd.: 3100[^xy-e] (not 3100 East, not 3100
North, just plain 3100, which is also the house number at all roads crossing
it, and also its future name. Former 幼九路 You 9th Rd. is going to become
"Road 3100", with no other alias.)
1. On GNU/Linux we use [OGR/GDAL](https://gdal.org/)/SpatiaLite to make the
intersections of these roads become our ground control points (GCPs).
1. Then using [thin plate
splines](https://en.wikipedia.org/wiki/Thin_plate_spline) (`ogr2ogr -tps`) we
fit our grid tightly on the road network and output maps via [Viking
GPS](https://github.com/viking-gps/).
1. Thus we finally leave WGS84 behind, with our new simple coordinates, where
e.g., (1450,656) = (656,1450)! [^vs.shear-e]
[^vs.shear-e]: [Compared to e.g., @hpfd, where their ordinances
regulate a single skew, our skew differs at every point. No
something easy to codify into law.]{lang=en-US}
[^tc-origin-e]: [Those OpenStreetMap address points of course originated at the
Taichung City Civil Affairs Bureau's opendata.]{lang=en-US}
[^xy-e]: [To the outside. But to the inside, interacting with GIS systems, yes,
below 1000 is Y, above 1000 is X. What about 1000 itself? Keep your distance
and you'll be fine. Normally it wouldn't be close to town anyway. And, us
choosing 1000 for the folded axis in this project is because we noticed
there were only about 10 cross streets, so we could keep their names all 3
digits long. [Bad idea](#bad3t-e). In some other project we might pick oh,
3700 to be the folded axis. Depends on the geography there. Anyway we have
sealed off three [quadrants](https://en.wikipedia.org/wiki/Orthant) leaving
only one direction for growth. So currently we have a 3100×1000 grid
and at most have it become a 9000×1000 grid before needing 5 digits,
which if we started adding in, would then would get us in trouble if we ever
upgraded the whole system to 5 digits… Anyway, with all things being
equal, a town should have its center at
[2500/7500](../../../../ph/ncr/bands/high.html#up_diliman), or 25000/75000
etc.]{lang=en-US}
:::
## 研究成果 / Results
::: {lang=zh-TW}
相應路網([圖1](#fig-1){#flex1-z}), 100 × 100[^flex-z] 門牌號碼的街塊
(city block), 長度自 53 至 134 公尺不等。 乍看數字, 民眾無法【看幾號,知幾
尺】, 惟其變化是逐漸的, 並非忽長忽短, 而換來的是路網能與門牌座標同體。
一些特點如下:
[^flex-z]: [單五十,雙五十。 詳[附錄](#flex-z)]{lang=zh-TW}
:::
::: {lang=en-US}
As seen in [Figure 1](#fig-1), the length of a hundred number long city block
([50]{#flex1-e} on each side, odd and even) now becomes flexible, from 53 to 134
meters in this particular Industrial Park. But isn't that just "parallel roads,
each numbered independently" of the (Taiwan) past? No. It is more like the lanes
of an oval athletic running track, with differently individual lengths, but a
common formula holding them together[^flex-e]. OK, let's see what extra features
we also obtained,
[^flex-e]: [See [Appendix](#flex-e)]{lang=en-US}
:::
### 一、巷弄系相容 / Lane, Alley system compatible
::: {lang=en-US}
In [Figure 2](#fig-2), we see we also can, if needed, add flexibility to our
road naming system.
:::
{#fig-2}
::: {lang=zh-TW}
圖2: 一棟門牌為654號之房屋。 紅、黃:新路名兼門牌座標。底圖
[OpenCycleMap](https://wiki.openstreetmap.org/wiki/OpenCycleMap) 含 "歷史"
巷名。
:::
::: {lang=en-US}
Figure 2: A house, № 654. Red lines are proposed road names, and at the
same time the address graticule. Background
[OpenCycleMap](https://wiki.openstreetmap.org/wiki/OpenCycleMap) shows original
road names.
:::
::: {lang=zh-TW}
本系統【免手機免地圖】。那麼,1450路 ([圖2](#fig-2)) 尚未由公園打通之前,
**1450**路**654號**, 若欲【免圖】引導, 得暫時另外寫成:
- 700路1600街600巷**1450**弄**654號**
- 700路1600巷600弄**1450**衖**654號**
- 1600街600巷**1450**弄**654號**
- 1600路600巷**1450**弄**654號**
- 600路**1450**巷**654號**等等方式。
:::
::: {lang=en-US}
E.g., the address
- **№ 654** Road **1450**
we can in fact write in many different ways. See [Figure 2](#fig-2).
- **№ 654** Alley **1450** Lane 600 Street 1600 Road 700
- **№ 654** Alley **1450** Lane 600 Street 1600
- **№ 654** Alley **1450** Lane 600 Road 1600
- **№ 654** Lane **1450** Road 600
- etc.
:::
::: {lang=en-US}
That's right. We grafted in the cleverness of Taiwan's addressing format, giving
addresses "built-in navigation systems" all in just a few words.
:::
::: {lang=en-US}
And when might we use such longer addresses? When Road 1450 ([Figure 2](#fig-2))
hasn't yet been blasted through the park yet, and we are worried that people on
Road 700 looking for Road 1450 will be disappointed, that's when.
And who shall use such longer detailed addresses? Shall the government issue
them as the official address of a house, or are they only to be used between
friends? Our article here today has no opinion, but must warn, once the road
through the park is blasted through, the longer address becomes a superfluous
roundabout navigation instructions. However using the shorter address early,
before the road is blasted through, means people will need to user phones and
maps to find the home, violating our promise of "no phones or maps needed."
:::
::: {lang=en-US}
In fact in Taiwan local laws @laws1 say the Road, Street, Lane, or Alley name
choice is determined by pavement width! So after the road is blasted through the
park, what we wanted to now call "1450 Road" we must still call e.g., "1450
Alley". But the good news is at least the street sign needn't be the full "Alley
1450 Lane 600 Street 1600 Road 700", because it no longer belongs to only just
one branching system!
:::
### 二、自動編號 / Automated numbering
::: {lang=en-US}
As in [Figure 3](#fig-3), we can do automated batch numbering.[^autonum-e]
[^autonum-e]: [As in [Figure 3](#fig-3), we easily predict a house's future
number, simply from its coordinates. No need to consult road network data,
nor look at aerial imagery. A house that has coordinates slightly lower than
400 will get an even Road 400 address.]{lang=en-US}
:::
{#fig-3}
::: {lang=zh-TW}
圖3: 紅、黃:新路號兼門牌座標; 紫: AI 編的門牌;
藍:門牌條例中之末碼四者[^scary4-z]; 黑: "歷史"
[OpenStreetMap_Carto](https://wiki.openstreetmap.org/wiki/OpenStreetMap_Carto)
圖。
:::
[^scary4-z]: [@laws1
所顧慮[末碼四
](https://zh.wikipedia.org/wiki/%E5%9B%9B%E7%9A%84%E7%A6%81%E5%BF%8C)
者,惟今不談,免得文章失焦。]{lang=zh-TW}
::: {lang=en-US}
Figure 3: Red, yellow: New road name / house numbering grid; purple: address
recommendations; blue: a "fearsome final digit four[^scary4-e]" house number;
black:
[OpenStreetMap_Carto](https://wiki.openstreetmap.org/wiki/OpenStreetMap_Carto)
map containing current house numbers.
:::
[^scary4-e]: [We highlight a
[tetrophobic](https://en.wikipedia.org/wiki/Tetrphobia) …4
address, which Taiwan's addressing ordinances @laws1 have a special
clause for. But we will not discuss that today, to avoid our paper
losing focus.]{lang=en-US}
::: {lang=zh-TW}
如[圖3](#fig-3),自製簡略 AI,
> 凡座標略低於 q00 者給予 q00 路之雙號門牌,高則單之。
惟仍需戶政人員一一過目。 [^autonum-z] [^AI-z]
[^autonum-z]: [我們很容易預判編號後之門牌。如[圖3](#fig-3),
完全不參考路網數據, 也不看空照圖。
光從門牌座標略低於400,馬上給予隸屬400路之雙號門牌。]{lang=zh-TW}
[^AI-z]: [但是座標越低於 q00, 其大門越可能對著 (q-1)00 路,或說不定此處根本缺什
麼 q00 路。 此時不能繼續光以座標定門牌, 而要打開空照圖,
或查該屋方位角資料。 另外,靠近十字路口,一棟房子座標可能同時靠近各自 q00.
總而言之, 如其他 AI 一樣,
頒發門牌須慎重,仍請戶政人員一一過目。]{lang=zh-TW}
:::
::: {lang=en-US}
Our homebrew "AI" is rather naive, *Houses with (one) coordinate slightly less
than q00: give them an even numbered address on Road q00, odd for those slightly
higher.*[^AI-e]
[^AI-e]: [However the lower you go away from q00, well maybe their door actually
opens toward Road (q-1)00, or maybe there is no Road q00 here in the first
place. So we can't just blindly use coordinates to compute future addresses,
but must haul out the aerial imagery, and/or check house orientation angle
data. Also, close to four-way intersections, both coordinates might be close
to their own q00. Anyways, like with all AI, the housing officer needs to
double check each address recommended by the system, for sanity, before
officially issuing the address.]{lang=en-US}
:::
### 三、預防重編 / Avoiding needing to renumber later
::: {lang=zh-TW}
- [上述](#bgc-z){#bad3t-z} BGC 橫豎預留 20/80. 同樣兩數字較聰明方法則是 50/50
(39/49): 11…49, 51…99.
- 今我們在工業區用 1…999, 1001…9999. 同樣四數字較聰明方法則是
1001…4999, 5001…9999 (3999/4999), 也就是如[圖4](#fig-4):把 2500
與 7500 路口設於市中央, 甚至採 25000, 75000 以更長久。 而要求長度一
致是為識別哪波重編。 如 999 應屬 101…499, 501…999, 而非屬
1…999, 1001…9999 了。 [^chongbian-z]
本文是先帶讀者認識座標框細節。 以如 [BGC](#bgc-z),制定個尚未周全號碼範圍。
最後特此本段文字提醒懸崖勒馬: 實務上應設如 (25…, 75…)
為中央,而框, 50…, 放海域、山地, 莫讓都市發展越框導致無號可編。
[^chongbian-z]: [[附錄](#chongbian-z){#chongbian_t-z}。]{lang=zh-TW}
:::
::: {lang=en-US}
- [Above](#bgc-e){#bad3t-e}, BGC uses 1…19 in one direction, 20 and up in
the other. Smarter use of two digits would be 11…49 in one direction,
51…99 in the other.
- Today here at Youshi we also use 1…999 in one direction,
1001…9999 in the other. Smarter use of four digits would be
1001…4999, and 5001…9999. And worse, development has already
reached our frame (Road 1000). We've run out of numbers before we even
started.[^chongbian-e]
[^chongbian-e]: [[Appendix](#chongbian-e){#chongbian_t-e}.]{lang=en-US}
:::
{#fig-4}
::: {lang=zh-TW}
圖4: 2500, 7500 路口改設工業區中央,延後城市發展越框外。 框改 5000, 於圖外。
[CycleOSM](https://wiki.openstreetmap.org/wiki/CyclOSM) "歷史" 路名圖。
:::
::: {lang=en-US}
Figure 4: Roads 2500 and 7500 now placed at the center of the Industrial Park,
delaying development reaching the frame edge, now 5000, located off the map.
[CycleOSM](https://wiki.openstreetmap.org/wiki/CyclOSM) "historical" road name
map.
:::
## 結論與未來展望 / Conclusions and the future
::: {lang=zh-TW}
- 國內:花蓮壽豐方形路網,改採本系統或許能改善救護派遣。
- 國外:谷歌推行 [Plus Codes](https://maps.google.com/intl/en/pluscodes/)
當門牌初編。 惟於方形城市這連[台電桿牌
](../../../../../../taipower/index.html)都不如。
而本系統則不但提供人類看得懂的門牌號碼,而且提供路名。
- 機房、倉庫內配置。單軸再轉90°,能涵蓋樓層,架高…[^floors-z]
[^floors-z]: [我們那個[單軸](#dz-z)也可以從地球中心開始。 出土後,號碼從負變正,
到了[200]{#3D-z}樓高才橫轉,繼續[上述](#3Dt-z)的途徑。
這樣單軸也囊括樓層,變立體了。地下一樓 B1 = -1, 歐洲 Ground Floor (GF) =
0. 台、美 1F = 1, 0 不編。]{lang=zh-TW}
:::
::: {lang=en-US}
- We might promote our system in e.g., Shoufeng Township, Hualien County,
Taiwan, where there is a large area with rectangular roads and poor addressing
causing ambulance delays.
- After Google [Plus Codes](https://maps.google.com/intl/en/pluscodes/) teams
have departed a rectangular city, and the people still want house addresses
that don't need a cellphone to find, else might as well have a [TaiPower pole
plate](../../../../../../taipower/index.html) for your address. Also Plus
Codes do not provide road names.
- Data center, markets, warehouse aisle and rack addressing. We might even bend
our single axis a second time, to represent rack levels or building
stories… [^floors-e]
[^floors-e]: [We might have our [single axis](#dz-e) start at the center of the
earth. After popping out from the surface negative numbers become positive,
and upon reaching [200]{#3D-e} it suddenly turns horizontal, and picks up
where our story [began](#3Dt-e). Thus we now are able to describe all three
(housing) dimensions. Let's see, basement floor B1 = -1, European Ground
Floor (GF) = 0, Taiwan and US 1F = 1, with 0 skipped.]{lang=en-US}
:::
## 參考文獻 / Bibliography {.unnumbered}
::: {#refs}
:::
::: {lang=zh-TW}
本文程式碼, KMZ, 等網址:
:::
::: {lang=en-US}
This paper's source code and KMZ etc. files:
:::
::: extra
## 附錄 / Appendix
### 單雙 / Odd and even
::::: {lang=zh-TW}
讀者怎麼記得哪面單哪面雙呢?
參考1000路就對了。[圖1](#fig-1)看到[當初](#beg-z)其逐雙號巷從哪一側分出。
免再講什麼南、北、東、西、左、右側了。且一旦繼續弧下去,東變北,南變西,
更沒意思。左、右側更不要講。該兩字,本文章除了本段之外,隻字未提,僅講
「框的內側」,而在這方面相左才是 @laws1 了。
另,因所有的
路是從同一側發出來,框內側,雙號側,所以所有的路是雙號路,如656路。我
們的系統不允許單號路之存在。 如果起床發現單號馬路,那是別人的世界,昨
晚去哪裡忘了。
:::::
::::: {lang=en-US}
How are you, the reader, supposed to remember which side of the road is even vs.
odd? Check Road 1000! In [Figure 1](#fig-1) we saw back [when](#beg-e) we first
numbered that road, the even numbered lane came off of which side. No need for
talking about "the north (south, east, west, odd, or even) side". Indeed, the
more our curved roads here in the Industrial Park curve, north will become east,
south will become west, so drop those old fashioned concepts right now please.
Our article doesn't use them, (unlike some laws, @laws1.) So what can we use to
remember even and odd sides? Ah, simply: inner side of frame (L shaped road
1000) is even. And as all roads branch off from the even side, all roads in our
system are even! No odd numbered roads allowed. If you wake up and there are odd
numbered roads, you are in another world. Did you remember where you went last
night?
:::::
### P路Q號及Q路P號能同時存在嗎? / Can № Q Rd. P coexist with № P Rd. Q?
{#fig-5}
::::: {lang=zh-TW}
圖5: 兩棟房子, 建路中央。 十字路口,改只有 L (V) 字型通行。
:::::
::::: {lang=en-US}
Figure 5: Two houses, in the middle of roads. This four-way intersection becomes
a L (V) -shaped corner.
:::::
::::: {lang=zh-TW}
- 500 路 2500 號
- 2500 路 500 號
確實能同時存在,但必須封路, 變 L 字型通行, 且 L 之內側也對著1000路之 L
的內側。 該 500 與 2500 之對面會是 501 與 2501, 惟路名僅允許雙號者,
故只有兩點才能 同時有 P 路 Q 號及 Q 路 P 號同時存在現象。
:::::
::::: {lang=en-US}
- № 2500 Road 500
- № 500 Road 2500
Indeed can coexist, but we must close this intersection, only allowing traffic
in an L shape. The L whose inner side faces the inner side of Road 1000. The
other two houses across from 500 and 2500 here would be 501 and 2501. But our
rules say all roads must be even numbered. Hence those odd numbered houses would
not produce the "№ Q Rd. P coexisting with № P Rd. Q" phenomenon.
:::::
### 末 -00, -01 房子藏在哪裡? / Where are houses ending in -00, 01?
::::: {lang=zh-TW}
後綴 -00, -01 房屋不出現於十字路口, 僅出現在 T 字型路口,或長方塊中。
```
==500路=== =====500路===
303至499號 4 對面302至498號
==300路=== 2 300號
203至299號 0 對面202至298號
201號 0 =====200路===
103至199號 路 對面102至198號
==100路=== =====100路===
```
:::::
::::: {lang=en-US}
Houses suffixed -00, -01 don't appear at 4-way junctions, but instead only at
T-junctions, and mid-long-block.
```
==Rd. 500=== 4 =====Rd. 500=========
Nos. 303-499 2 opposite Nos. 302-498
==Rd. 300=== 0 No. 300
Nos. 203-299 0 opposite Nos. 202-298
No. 201 =====Rd. 200=========
Nos. 103-199 R opposite Nos. 102-198
==Rd. 100=== d =====Rd. 100=========
```
:::::
::::: {lang=zh-TW}
正如我們排除台灣的缺點,[【之幾】](#zhiji-z)附號,
我們也要學台灣的優點,如果某地有300路,也不允許同時也有300號,除非如[圖
5](#fig-5)封路。
我們社區明單才能整齊:
:::::
::::: {lang=en-US}
Just like as we get rid of one of Taiwan's biggest shortcomings, [123-1
auxiliary numbers](#zhiji-e), we also pick up its good habits. E.g., if there
exists a T junction with Road 300 coming off the side, then there can be no
house number 300 there, unless we seal the road, [Figure 5](#fig-5).
A community building index would look very tidy,
:::::
::::: {lang=zh-TW}
```
超市297 296空地
回收299 298敏宅
馬路301 300馬路
油站303 302商店
```
且能維持均[正整數](https://zh.wikipedia.org/zh-tw/%E6%95%B4%E6%95%B0)。
:::::
::::: {lang=en-US}
```
supermarket 297 296 vacant
recycling 299 298 residence
road 301 300 road
gas station 303 302 shop
```
and we get to keep our system all [positive
integers](https://en.wikipedia.org/wiki/Natural_number).
:::::
::::: {lang=zh-TW}
101, 201, 301 號則「犧牲於 100, 200, 300 路之寬度之下」。只能在 T 型路口,
或中段無路口之長街塊, 允許其存在。
:::::
::::: {lang=en-US}
Nos. 101, 201, 301… are "sacrificed" for the width of roads 100, 200, and
300, and only appear at T-junctions, and long blocks with no junctions.
:::::
::::: {lang=zh-TW}
假如典型街塊該採201至297號,對面202至298號,又假如200路不存在,也不是什麼 T
字型路口,
而兩面都是房子,號碼連結不斷。那麼,200號至298號對面就會是199至297號,不乾淨!
較好則是對面是201至299號,都2-開頭了吧。
:::::
::::: {lang=en-US}
If we instead declared a typical city block to consist of numbers 201…297
on one side, 202…298 on the other, and, say Road 200 was not present. all
there was there was house after house, well then across the street from
200…298 would be 199…297. Yuck! So that's why across we prefer
201…299, to keep this all a "2-- family affair."
:::::
### 路太歪,網不下 / Dealing with irregular roads
::::: {lang=zh-TW}
見[圖1](#fig-1)及 [KMZ 檔](.),有一條現稱【工六路】,自 1600, 200 路口至 3100,
270 座標。 我們勉強能稱之為270路, 但再加歪的話就只好放棄, 換以歪哥人名命名!
當然定地面控制點時先排除它。
:::::
::::: {lang=en-US}
Looking at [Figure 1](#fig-1) and the [KMZ](.) you will see a road currently
named 工六路, starting at the corner of 1600 and 200, ending at 3100 and 270.
Well, I suppose we could grudgingly call it Road 270, as at least that's the
grid value the better behaved part of it seems to be aligned on. Any more
crooked though and we would forced to just name it after some crooked
politician!
Naturally we excluded it when creating our ground control points.
:::::
### 街塊長度 / Block size
::::: {lang=zh-TW}
如[上述](#flex1-z){#flex-z}既然採
「一個街塊預留100個號碼,這面50個,對面50個[^heng-z]」,
那麼我們也好奇[^curious-z], 相對如芝加哥市,固定 "100 numbers per 660 foot
\[201 公尺\] block"[^chi-z], 我們則有彈性,
- 最短的 100 個號碼: 200 路,自 1100 至 1200 號: 53 公尺。
- 最長的 100 個號碼: 3100 路,自 600 至 700 號: 134 公尺。[^nopic-z]
那麼如果建築法規規定一棟最窄 5 公尺。一面滿 50 棟至少 250 公尺。我們在 134
公尺已預留了 100 個號碼,亦即免怕動到「之幾」之門牌了。
[^curious-z]: [我們今天用 GIS, 唯一碰到「公尺」的時候,或其他距離單位,
除了我麼的弧形座標之外。]{lang=zh-TW}
[^heng-z]: [其實通常 98, 49, 49 個,因橫路也佔 `00` 與 `01`.]{lang=zh-TW}
[^chi-z]: [且芝城通常僅用如 3600…3660, 3700…3760…
斜的路才用到 3799. 而 201 ÷ (60 ÷ 2) 得知芝加哥每 6.7
公尺預留門牌號碼。]{lang=zh-TW}
[^nopic-z]: [惟 [圖1](#fig-1) 框外,本報告看不到,須見 [KMZ
檔](.)。]{lang=zh-TW}
:::::
::::: {lang=en-US}
As [above](#flex1-e){#flex-e} since we chose "one block shall have 100 house
numbers, 50 on either side" [^heng-e], well, compared to e.g., Chicago, with
their fixed "100 numbers per 660 foot (201 m)block"[^chi-e], we've got
flexibility, but let's see how the numbers stack up,[^curious-e]
- Shortest 100 numbers: Road 200, between Nos. 1100 and 1200: 53 m.
- Longest 100 numbers: Road 3100, between Nos. 600 and 700: 134 m.[^nopic-e]
Anyways, if the laws state that the minimal building with is 5 m. then 50 houses
means 250 m., and we provide 50 numbers in 134 m, so there should be no need to
use ugly 123-1 style auxiliary numbers.
[^curious-e]: [This is the only time today that we've dealt with meters, or any
distance, other than our curved coordinates.]{lang=zh-TW}
[^heng-e]: [Actually 98, 49, 49 because `00`, `01` are occupied by the
crossroads.]{lang=en-US}
[^chi-e]: [Furthermore, Chicago only uses e.g., 3600…3660,
3700…3760… and only with diagonal roads does one reach 3799.
Let's see. 201 ÷ (60 ÷ 2) we learn Chicago reserves one number
per 6.7 m.]{lang=en-US}
[^nopic-e]: [However that's beyond [Figure 1](#fig-1), so the reader needs to
check the [KMZ](.).]{lang=en-US}
:::::
### 重編 / Renumbering
::::: {lang=zh-TW}
續[上邊](#chongbian_t-z){#chongbian-z}, 怎麼辦? 核發第一枚門牌前能不能重來,
屆時不輸在起跑點? [圖4](#fig-4): 可選市中央一大路口,或許也靠近市政大樓,當新
2500 與 7500 路口 - 我們預 測平地四向平衡發展。 且要事先規劃,
如果遲早要在一定升等, 為 25000 與 75000 路口, 那麼不要客氣, 現在直接升等,
免分二階段, 擾民。
:::::
::::: {lang=en-US}
[Continuing](#chongbian_t-e){#chongbian-e}, So, realizing our mistake, how
might we "rebase" all our numbers before we ever begin putting them on people's
houses? [Figure 4](#fig-4): Pick a prominent intersection near the center of
town, close to City Hall perhaps too, as the corner of Roads 2500 and 7500 - a
flat land model that expects future city growth evenly in each direction. Be
sure to plan ahead: if that corner really should be 25000 and 75000, do so from
the start, rather than years later expecting the public to be happy about a
second "grand renumbering". OK, back in Youshi, let's reassign:
:::::
::::: {lang=zh-TW}
還有,數字長度要一致。 如 654 知其來自 501…999 而非什麼 1…4999
(原應限 1001…4999.) 而 "0654" 可別想, 因為人傳人,前零易脫落。
那麼,建議採 {101…499, 501…999}, {1001…4999,
5001…9999}, {10001…49999, 50001…99999},
{100001…499999, 500001…999999}, 等等[^bigno-z]。
是的,不管「浪費」前 10% 數字 否。 屆時想做舊 ↔
新對照表,能依長度辨認新舊值得吧。 另外,邊緣數字(1000, 5000, 10000)
我們都避免, 省很多數學。 回到幼獅,我們要重新定:
[^bigno-z]: [大型路號/門牌座標系統舉例:
[南達科他州](../../../../us/sd/south_dakota_state/) , [北達科他
州](../../../../us/nd/north_dakota_state/single_axis/single_axis.html)
。]{lang=zh-TW}
:::::
::::: {lang=en-US}
Furthermore, by using all the same length numbers, it will be clear that e.g.,
654 was from a 501…999 range, and not some 1…4999 range that
really should have been 1001…4999. And no, do not dream of writing "0654"
as any kind of robust address format. OK, so here are the recommended ranges,
{101…499, 501…999}, {1001…4999, 5001…9999},
{10001…49999, 50001…99999}, {100001…499999,
500001…999999}, etc.,[^bigno-e] yes, even if that "wastes" the first 10%
of the numbers. It will pay you back when making old ↔ new system
translation tables. And simply stay off of the edge cases (1000, 5000, 10000).
As you see we add 1 to avoid even needing to think about them.
[^bigno-e]: [Some large road numbering / house addressing grid examples: [South
Dakota](../../../../us/sd/south_dakota_state/), [North
Dakota](../../../../us/nd/north_dakota_state/single_axis/single_axis.html).]{lang=en-US}
:::::
::::: {lang=zh-TW}
- 高於 1000: 加 2500 − 2200 = 300; 例: 2200 → 2500 路
- 低於 1000: 加 7500 − 700 = 6800; 例: 700 → 7500 路[^x1000-z]
[^x1000-z]: [而等於 1000 呢? 較複雜,幸好我們不建設那附近。]{lang=zh-TW}
:::::
::::: {lang=en-US}
- Above 1000: add 2500 − 2200 = 300; e.g., Road 2200 → 2500
- Below 1000: add 7500 − 700 = 6800; e.g., Road 700 → 7500[^x1000-e]
[^x1000-e]: [And 1000 itself? It's complicated. Fortunately we don't do
construction near there.]{lang=en-US}
:::::
::::: {lang=zh-TW}
而該單軸 L 字型框,
本身之[軌跡與方向](../../../../algorithms/single_axis/single_axis.html) , 原來
"⮣", 值 1000, 現在變成 "⮥ ", 值 5000. 社區服務中心, 原址 700 路 2150 號, 今改
7500 路 2450 號了。
:::::
::::: {lang=en-US}
The single axis "L" [path and
direction](../../../../algorithms/single_axis/single_axis.html) originally "⮣",
value 1000, now becomes "⮥ ", value 5000. The community service center,
originally № 2150 Road 700, mow becomes № 2450 Road 7500.
:::::
### 英譯仍採 "№" / Let's use "№" in English
::::: {lang=zh-TW}
英文地址
- No. 654 Alley 1450 Lane 600 Street 1600 Road 700
美國有時省略 No. / [№](https://zh.wikipedia.org/wiki/%E2%84%96),
- 654 Alley 1450 Lane 600 Street 1600 Road 700
但本文保留著。
:::::
::::: {lang=en-US}
Yes, in the USA
- No. 654 Alley 1450 Lane 600 Street 1600 Road 700
could also be written
- 654 Alley 1450 Lane 600 Street 1600 Road 700
but in this article we retain the No. / [U+2116 NUMERO SIGN:
№](https://en.wikipedia.org/wiki/Numero_sign).
:::::
### 不探索 / Topics not covered
::::: {lang=zh-TW}
以免文章失焦,今不談門牌版面內容、室號、郵政,戶籍地址格式, 等等。
:::::
::::: {lang=en-US}
To avoid this article losing focus, we avoid discussing address plate content,
room/unit numbers, postal / household bureau address format, etc.
:::::
:::