-
Notifications
You must be signed in to change notification settings - Fork 16
/
geo3x3.nako3
48 lines (46 loc) · 1.54 KB
/
geo3x3.nako3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
●(緯度と、経度を、レベルで)Geo3x3エンコードとは
もし、(経度>=0.0)ならば
コード="E"
違えば
コード="W"
経度=経度+180
ここまで。
緯度=緯度+90
ユニット=180
(レベル-1)回
ユニット=ユニット/3
X=INT(経度/ユニット)
Y=INT(緯度/ユニット)
コード=コード&(X+Y*3+1)
経度=経度-X*ユニット
緯度=緯度-Y*ユニット
ここまで
コードを戻す
ここまで
●(コードを)Geo3x3デコードとは
緯度=0
経度=0
ユニット=180
レベル=0
もし、((コードの文字数)>0)ならば
レベル=レベル+1
Iで2から(コードの文字数)まで繰り返す
C=MID(コード,I,1)
N=(「123456789」でCが何文字目か)-1
もし、(N>=0)ならば
ユニット=ユニット/3
経度=経度+(Nを3で割った余り)*ユニット
緯度=緯度+((Nを3で割って)の整数部分)*ユニット
レベル=レベル+1
ここまで
ここまで
緯度=緯度+ユニット/2-90
経度=経度+ユニット/2
もし、(LEFT(コード,1)="W")ならば
経度=経度-180
ここまで
ここまで
[緯度、経度、レベル、ユニット]を戻す
ここまで
35.65858と139.745433を14でGeo3x3エンコードして表示
"E9139659937288"をGeo3x3デコードして表示