@zukall/zap 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/PROTOCOL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ZAP — Zukall Addressing Protocol, version 2
|
|
2
2
|
|
|
3
3
|
Protocol 2 uses **100-meter grid blocks** and **1-meter detail**, computed from
|
|
4
|
-
unrounded projected GPS coordinates. The npm package version (`0.2.
|
|
4
|
+
unrounded projected GPS coordinates. The npm package version (`0.2.1`) and
|
|
5
5
|
protocol version (`2`) are separate. Previously issued protocol-1 addresses retain
|
|
6
6
|
their original text and identity; see [PROTOCOL-V1.md](PROTOCOL-V1.md).
|
|
7
7
|
|
package/README.md
CHANGED
|
@@ -15,6 +15,142 @@ These illustrate the display format. Actual numbers depend on the original GPS
|
|
|
15
15
|
point and selected grid; a city label never changes the origin or verifies
|
|
16
16
|
administrative membership.
|
|
17
17
|
|
|
18
|
+
## Why use ZAP?
|
|
19
|
+
|
|
20
|
+
**Different countries. Different street addresses. One consistent location format.**
|
|
21
|
+
|
|
22
|
+
A well-defined address identifies a destination, but it does not automatically tell an unfamiliar person how to reach it. Immokalee, Florida, has formally assigned addresses, yet a newcomer may still need a map, street signs, or knowledge of the road layout.
|
|
23
|
+
|
|
24
|
+
ZAP gives your application a consistent way to address locations directly from GPS coordinates. It works alongside conventional addresses and can provide a location address where street names or building numbers are missing.
|
|
25
|
+
|
|
26
|
+
### Addresses without waiting for an address authority
|
|
27
|
+
|
|
28
|
+
ZAP derives its location code from coordinates and a fixed grid. A country does
|
|
29
|
+
not need an address authority, a complete street-address registry, named roads,
|
|
30
|
+
or assigned building numbers for applications to generate ZAP addresses within
|
|
31
|
+
that grid. A home, business, rural property entrance, or pickup point can receive
|
|
32
|
+
a coordinate address as soon as its GPS location is available.
|
|
33
|
+
|
|
34
|
+
The same method can be applied in any country with a configured grid. This
|
|
35
|
+
release includes **239 country/territory configurations**, with country-wide
|
|
36
|
+
grids or explicitly selected province/state grids. Coverage follows those
|
|
37
|
+
configurations; adding an unconfigured country requires a versioned grid
|
|
38
|
+
definition. The address structure stays consistent across them.
|
|
39
|
+
|
|
40
|
+
**Haiti is the illustrated example below.** Its `HT` configuration provides one
|
|
41
|
+
fixed country grid, so a place can be addressed even when its street name,
|
|
42
|
+
building number, or formal address record is unavailable. This shows independence
|
|
43
|
+
from official address assignment; the method also works alongside existing
|
|
44
|
+
Haitian street addresses, such as the hotel example in the table.
|
|
45
|
+
|
|
46
|
+
A visitor or delivery driver can use a ZAP-aware application to view their
|
|
47
|
+
current location and destination in the same grid. Comparing their blocks,
|
|
48
|
+
directions, and remainders helps them understand the destination's relative
|
|
49
|
+
position. Saved GPS coordinates connect that destination to road directions.
|
|
50
|
+
|
|
51
|
+
### Different local addresses, the same ZAP structure
|
|
52
|
+
|
|
53
|
+
| Location | Conventional address | ZAP address |
|
|
54
|
+
| --- | --- | --- |
|
|
55
|
+
| **Miami, USA — City Hall** | 3500 Pan American Drive, Miami, FL 33133, USA. | `2220 S 3602 E #92-35, Miami, FL US ZAP` |
|
|
56
|
+
| **Beijing, China — Sofitel Beijing Central** | No. 2 Jianguomen South Avenue, Chaoyang District, Beijing 100022, China. | `375 S 15 W #62-74, Beijing, BJ CN ZAP` |
|
|
57
|
+
| **Abidjan, Côte d’Ivoire — Sofitel Hotel Ivoire** | Boulevard Hassan II, Cocody, 08 BP 01 Abidjan, Côte d’Ivoire. | `2452 S 1724 E #88-29, Abidjan, CI ZAP` |
|
|
58
|
+
| **Port-au-Prince, Haiti — Marriott Hotel** | 147 Avenue Jean Paul II, Turgeau, Port-au-Prince, HT 6113, Haiti. | `582 S 780 E #29-13, Port-au-Prince, HT ZAP` |
|
|
59
|
+
| **Berlin, Germany — Brandenburg Gate** | Pariser Platz 5, 10117 Berlin, Germany. | `1538 N 1989 E #91-52, Berlin, DE ZAP` |
|
|
60
|
+
|
|
61
|
+
*These examples encode the venues’ published map/GPS points using package version 0.2.0. They demonstrate the format; the points are not independently verified entrances.*
|
|
62
|
+
|
|
63
|
+
Street names, languages, address order, and postal components vary. ZAP uses the same generation function and encoding structure across its configured grids.
|
|
64
|
+
|
|
65
|
+
### Understand the address
|
|
66
|
+
|
|
67
|
+
In `582 S 780 E #29-13, Port-au-Prince, HT ZAP`:
|
|
68
|
+
|
|
69
|
+
- **582 S:** 582 complete 100-meter blocks south of the selected grid origin.
|
|
70
|
+
- **780 E:** 780 complete 100-meter blocks east of that origin.
|
|
71
|
+
- **#29-13:** another 29 whole projected meters south and 13 east within those blocks.
|
|
72
|
+
- **HT:** Haiti’s country code.
|
|
73
|
+
|
|
74
|
+
The directions refer to the grid’s fixed origin. The suffix describes coordinate detail, rather than a sequential house number.
|
|
75
|
+
|
|
76
|
+
### Why developers choose ZAP
|
|
77
|
+
|
|
78
|
+
- **Generate addresses from GPS**, including locations without useful street addresses.
|
|
79
|
+
- **Use one format across configured countries and provinces.**
|
|
80
|
+
- **Generate offline**, without a geocoding API, API key, or runtime dependency once coordinates are available.
|
|
81
|
+
- **Get repeatable results** from the same coordinates, grid, and protocol version.
|
|
82
|
+
- **Keep local context**, displaying street addresses, landmarks, and unit details alongside ZAP.
|
|
83
|
+
|
|
84
|
+
### Identifying a destination and reaching it
|
|
85
|
+
|
|
86
|
+
ZAP works with straight, diagonal, and curved streets. Its grid stays fixed; both coordinate numbers can change along a diagonal road.
|
|
87
|
+
|
|
88
|
+
For navigation, use the original saved GPS coordinates—preferably the entrance point—to open road directions. Keep helpful street names and landmarks visible.
|
|
89
|
+
|
|
90
|
+
ZAP complements existing addresses. Whole-meter encoding does not guarantee one-meter GPS accuracy, and a location code does not automatically identify a unique household or apartment.
|
|
91
|
+
|
|
92
|
+
## See the address grid: Haiti illustrations
|
|
93
|
+
|
|
94
|
+
These illustrations show locations in the same fixed Haiti grid. Each address
|
|
95
|
+
is derived independently from its coordinates. The road can run north–south,
|
|
96
|
+
east–west, diagonally, or curve; the grid origin and axes stay fixed.
|
|
97
|
+
|
|
98
|
+
**Current suffix notation is `#42-68`.** The north–south and east–west images use
|
|
99
|
+
the compact notation `#4268` for the same two remainders: 42 south and 68 east.
|
|
100
|
+
The examples and captions below use the current dashed format.
|
|
101
|
+
|
|
102
|
+
### North–south: easting stays fixed
|
|
103
|
+
|
|
104
|
+

|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
Point A: 580 S 772 E #42-68, HT ZAP
|
|
108
|
+
Point B: 581 S 772 E #42-68, HT ZAP
|
|
109
|
+
Point C: 582 S 772 E #42-68, HT ZAP
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
From A to B, the location moves 100 projected meters south: the south block
|
|
113
|
+
increases from 580 to 581, while the east block and both remainders stay fixed.
|
|
114
|
+
Moving north on this side of the origin decreases the south block.
|
|
115
|
+
|
|
116
|
+
### East–west: northing stays fixed
|
|
117
|
+
|
|
118
|
+

|
|
119
|
+
|
|
120
|
+
```text
|
|
121
|
+
Point A: 582 S 770 E #42-68, HT ZAP
|
|
122
|
+
Point B: 582 S 771 E #42-68, HT ZAP
|
|
123
|
+
Point C: 582 S 772 E #42-68, HT ZAP
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
From A to B, the location moves 100 projected meters east: the east block
|
|
127
|
+
increases from 770 to 771, while the south block and both remainders stay fixed.
|
|
128
|
+
Moving west on this side of the origin decreases the east block.
|
|
129
|
+
|
|
130
|
+
### Diagonal streets: both axes can change
|
|
131
|
+
|
|
132
|
+

|
|
133
|
+
|
|
134
|
+
```text
|
|
135
|
+
Point A: 580 S 770 E #43-46, HT ZAP
|
|
136
|
+
Point B: 581 S 771 E #12-36, HT ZAP
|
|
137
|
+
Point C: 582 S 772 E #08-41, HT ZAP
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Both axes and their remainders can change along a diagonal or curved street.
|
|
141
|
+
For point C, the whole-meter magnitudes are `582 × 100 + 08 = 58,208` south
|
|
142
|
+
and `772 × 100 + 41 = 77,241` east. The `#08-41` suffix keeps its leading zero.
|
|
143
|
+
|
|
144
|
+
The images are illustrative grid examples. To reach a real place, use its saved
|
|
145
|
+
GPS entrance point for road directions; the grid comparison describes relative
|
|
146
|
+
position rather than a route through buildings or other obstacles. The same
|
|
147
|
+
encoding applies to the other configured countries and provinces.
|
|
148
|
+
|
|
149
|
+
The README uses three compressed WebP illustrations, each 95–98 KB and 1280
|
|
150
|
+
pixels wide. Original PNGs remain in the source project; only the smaller WebP
|
|
151
|
+
versions are included in the npm package. The compressed package stays below
|
|
152
|
+
400 KB, including all three illustrations.
|
|
153
|
+
|
|
18
154
|
## Installation and local verification
|
|
19
155
|
|
|
20
156
|
After publication:
|
|
@@ -26,13 +162,13 @@ npm install @zukall/zap
|
|
|
26
162
|
Before publication, install the verified local package:
|
|
27
163
|
|
|
28
164
|
```sh
|
|
29
|
-
npm install /absolute/path/to/
|
|
165
|
+
npm install /absolute/path/to/zukall-address-protocol/.artifacts/zukall-zap-0.2.1.tgz
|
|
30
166
|
```
|
|
31
167
|
|
|
32
168
|
Build and verify the source:
|
|
33
169
|
|
|
34
170
|
```sh
|
|
35
|
-
cd /absolute/path/to/
|
|
171
|
+
cd /absolute/path/to/zukall-address-protocol
|
|
36
172
|
npm ci
|
|
37
173
|
npm run check
|
|
38
174
|
npm run pack:check
|
|
@@ -406,11 +542,11 @@ removed-option error.
|
|
|
406
542
|
```sh
|
|
407
543
|
npm login
|
|
408
544
|
npm run pack:check
|
|
409
|
-
npm publish
|
|
545
|
+
npm publish ./.artifacts/zukall-zap-0.2.1.tgz --access public
|
|
410
546
|
```
|
|
411
547
|
|
|
412
548
|
An npm account with permission to publish `@zukall/zap` is required. Building and
|
|
413
|
-
packing do not publish the package. Package version is `0.2.
|
|
549
|
+
packing do not publish the package. Package version is `0.2.1`; current protocol
|
|
414
550
|
version is `2`, while preserved legacy results remain version `1`.
|
|
415
551
|
|
|
416
552
|
## License
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zukall/zap",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "ZAP (Zukall Addressing Protocol): deterministic 100-meter grid blocks with whole-meter detail from GPS coordinates.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
34
|
"dist",
|
|
35
|
+
"asset/*.webp",
|
|
35
36
|
"README.md",
|
|
36
37
|
"PROTOCOL.md",
|
|
37
38
|
"PROTOCOL-V1.md",
|