From db5cd682eab71076f2efb2f70ba729cdb9ee7c43 Mon Sep 17 00:00:00 2001 From: jirik Date: Mon, 2 Oct 2017 13:43:39 +0200 Subject: [PATCH] Add aeroway_label layer --- layers/aerodrome_label/README.md | 7 +++ layers/aerodrome_label/aerodrome_label.yaml | 37 ++++++++++++ layers/aerodrome_label/etl_diagram.png | Bin 0 -> 15711 bytes layers/aerodrome_label/layer.sql | 60 ++++++++++++++++++++ layers/aerodrome_label/mapping.yaml | 46 +++++++++++++++ layers/aerodrome_label/mapping_diagram.png | Bin 0 -> 114 bytes layers/aerodrome_label/update.sql | 51 +++++++++++++++++ openmaptiles.yaml | 1 + 8 files changed, 202 insertions(+) create mode 100644 layers/aerodrome_label/README.md create mode 100644 layers/aerodrome_label/aerodrome_label.yaml create mode 100644 layers/aerodrome_label/etl_diagram.png create mode 100644 layers/aerodrome_label/layer.sql create mode 100644 layers/aerodrome_label/mapping.yaml create mode 100644 layers/aerodrome_label/mapping_diagram.png create mode 100644 layers/aerodrome_label/update.sql diff --git a/layers/aerodrome_label/README.md b/layers/aerodrome_label/README.md new file mode 100644 index 0000000..b9f7903 --- /dev/null +++ b/layers/aerodrome_label/README.md @@ -0,0 +1,7 @@ +## Aerodrome Labels + +### Mapping Diagram +![Mapping diagram for aerodrome labels](mapping_diagram.png?raw=true) + +### ETL diagram +![ETL diagram for aerodrome labels](etl_diagram.png?raw=true) diff --git a/layers/aerodrome_label/aerodrome_label.yaml b/layers/aerodrome_label/aerodrome_label.yaml new file mode 100644 index 0000000..4942723 --- /dev/null +++ b/layers/aerodrome_label/aerodrome_label.yaml @@ -0,0 +1,37 @@ +layer: + id: "aerodrome_label" + description: | + [Aerodrome labels](http://wiki.openstreetmap.org/wiki/Tag:aeroway%3Daerodrome) + buffer_size: 64 + srs: +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over + fields: + name: The OSM [`name`](http://wiki.openstreetmap.org/wiki/Key:name) value of the aerodrome. + name_en: English name `name:en` if available, otherwise `name`. + name_de: German name `name:de` if available, otherwise `name` or `name:en`. + class: + description: | + Distinguish between more and less important aerodromes. + Class is derived from the value of + [`aerodrome`](http://wiki.openstreetmap.org/wiki/Proposed_features/Aerodrome) + and `aerodrome:type` tags. + values: + - international + - public + - regional + - military + - private + - other + iata: 3-character code issued by the IATA. + icao: 4-letter code issued by the ICAO. + ele: Elevation (`ele`) in meters. + ele_ft: Elevation (`ele`) in feets. + datasource: + geometry_field: geometry + srid: 900913 + query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, iata, icao, ele, ele_ft FROM layer_aerodrome_label (!bbox!, z(!scale_denominator!), !pixel_width!)) AS t +schema: + - ./update.sql + - ./layer.sql +datasources: + - type: imposm3 + mapping_file: ./mapping.yaml diff --git a/layers/aerodrome_label/etl_diagram.png b/layers/aerodrome_label/etl_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..3e308256c0ff00c1757740fc62b13cd21e958775 GIT binary patch literal 15711 zcmYkj1z46@7cPv7iXwufN+}>6(hbrejdY5HbV#=%AtK$~-5?F3bR*p$-Q9iGJKz7G z>p0E~IK%VqXYUnvtnDW!BZl_y`9mZmBs2+eVFe_l+nw?VyM~I{AB#LF@Y=y%rUT39SI_lQg5vdWsJLnMSmJ zuS`B*vdVj8PKIUo8<~|*l<0Z}kg%nrP~INMsLVLH7O>ZmQ%t9uzlvx6XzkF+ys$a_ zaeJy-B_%&U|B(O&@_)anxe6(FQ2zHdatb4+U+D`JPsDFU0kY2jzCiJmyKCTdAO1{^ z_|vCP?d|O^n3=;aFI^v^qIUH3M7SkJM2JX8JU}urF)=bSLQ2lb@ypGnM&jb)qNJuy zEhq>`NzrZE@j^UQg+v|~dCps2UHz@1A~re^&kJ&LpQUfFQiQT(>h@ak9}#fK*;f|(1o{iBVIWu2 z(9tcOA8lypfQ*!jX$23k?|@sGjsoOZD@0|@b*l- zq_8lu!_Lgo_H?b6uP+uhwy?D|qoJXp?b?8Mp;qnu^0H4{TpX=Do)@09n%cAbj|u*D z4d*?mbHk^>dgolZ@kRrm`%$@_oQhJI!?#As%%Az;hw*0Ht!;DoxZf>}UiZYAGP<=s zilo!7*5l5}-`m3F5XIVIFL=Gi9C1-lM0uejgseD(U+XUvAl>FI|&c~20Li!+r8#Xgn=)H zzNZ%>1sM>BhDZ6&D&2f!ZQ`JRt0jQ3u4rLF5053fbN_L=Mx}+YuyC>am2(Ig|9yxb z!@k5G$meKo2YSg!+CS6N3EA0{PQK)I`u5vX9grqxPTPVZWT?`fHM!5lA`8-mNpu&# zJt_T?l_-oTWJ57tUdT1JYmL`e7vq(d#1NSoP!9GVZ+K_qCgip+wpizul@7h7uAzQ#^y37dvNSU* zCYKsjH1HMe@vRJljQz)1BZ()ja>@!Hws-rznuX;R)DNzTI-IJ^F3Do4sLD)+b18aB z5f#M591=nQ<3}3^u^&HvEE39uecGB}rPr)_BPWL;ARw@~v=jn;#?X))s%?09c)RFp zY_FP9-KKl-v<1(0W@^2M!v)Gx7M&e=PZP^~KqIY3m zT2_`9FZN$Rbgm6%jn})dPgYubtX&8fqFXjx9W!6#L9iJtwuhi$hx{GF!NIZK{e8>u z5TEk=EpBXG2hmlCI9WW8Q)y>k1U?6m07h)|&aaC=_p5V8tAB5td5!`=Dp!|voVpXaed!lzxZIqTff*70yY*ywu(#q> zLjr$OH}ME5745$~D&{kzA;<8D@UeqFwM_R~pCmq2)x_V}xVudy{3t;#zYE%3R!xle zwz|hTG{&tMDTCAa@Hp3PLb`M;Kg>@sR3(M~E(njRrcdzT# zC2c>E==3=zov^tJsoS%;;JSH+1U~k!v|LgUf8jGxb6H{Kl<@>N>F2Du`R4kTYc?eb zU*z3Mwog zsB4)D{H{M=6MO7|L#>L%r82r97Q`w+46$gqwv+Uuuc^5tB` zM81xeG!A+*HY(+$8+2Kz7OJ z&qzq;$8OG}@`794(TraqKNZi^bah{nivBSA_suJlmYVwE1#Y>=i<4=ACdNS;;%)&6 zi6>u|xx89h+xe3CU1?{DxtlA+(Dx6fM36SmR%i!jDI2(#@NgUZvSjxU*4ixnF1)>8 zkCo#`ine;S@xCAVoU+P3+L|Vm#pPF&IjMcTAuHV6#$@_iZv3*f#+f$hU&mrm!(!J} zgRX)84-ZvJ?q!A$R&!%x!@z_b&L?{%**V#N3(6$}MjI?9xJ&&BnBDH&tG2)Ud+K-a z>LM9#Abk<5TT3C1&ji=hk004TEn#0!1uCCzP83YEoj3(Li0DYg`c(Lk+kU=G6)}C3HWfp}`DZ zBo#r=s=>OtGw*^NwG1aBLZ`CKjiM?uks$iCGoW|D=g`X{!Cz zT35i2iHW6DRI+Ab5)v0BCNJNw=ddG;XeuUBBq7N;Y8S+cbK{1+@qPmym01~zii%IU z?em{bsAs=>_3Bk=CPw)jG49*Rlg#%YO?oM?$kUF*Q|}eOUsP3$h&VfLzg0Mm);63{ zZZ?^trZy!j^@5%MX78zKe}JkTBJgo;B<0dVv1sZoQ&nctz6NHJTjx-fn)4K`=Qpse zA4IFHxH^V+c<}0~K8qVNHG6v#k)jkZK=D=ume<|f?3JEQ=H$DluzPsun$K1Z2n2vn z7Zr(sBUfKhLwa^q^sR(iq^0^Yq=;TUA#=hRLYDXf58@SHJ>Te&og3nZ_N6}s6;yvu ze08BIU?(I0jz*FDOIllHZ`gK{cQSHx^LlOP-P+ZC^srmIju}`oxXMbs?+Az0Jj{ny z7>jz(cC+tOEnTpVm21=|q05r|*Z1^BMn-sCPlKU_Pz0Ee4L!la!n*gEpncZkMjDW^ z9AER%Mo|O(N;`5&9p3%VmyNf_T^<edx#jDqqL}RhBCHp5jev)qDJI90%+%N(l_I)GWh4oBaBjz{A} zGxkZv*4_g&^6Q4!>g??N@s!cidZD$0lR71b^V1^Anem#GRng4rwGh9( z{E14`n_@X88=L;&p~n8khX94>@6IldT-DZ{IqPh8ckk6>33fN>i=M1{`@}v+f{i$Z zdXm$J|Fh_?Qgmr3X48~2M$FT`m<^S^8YeVVAyT$q{KTv{N+SegP4Y>SNa^|p?{$r6 zB?(1-&{2i}b>A}I%ztyOa@0(XA1Z{2%qefQ}&(>T^PE-Iph0%rl z9nL|6DrI(lKxtrLu(&8`WoNYMwEj$tmPSk8q#QSkHDny7)ka>9^SLI~c^imWel@ ztIf>BL`g~cf|OL~SWR1-=G*XurqSDf6@at!JdH?XRh>FUIpIh|9#x9HN z%d^AH@i69(y?={z8l1;Pm6dU!u7pQMhQ`D^2zT(0jJvpT`-qE!6A~77Fm%LoUSIS* zG!%1ULbiz0cqISXI*!G`+pb5HJ145@+NTR0?>|+k5l7l=Q0#j zRlkLWVF4(oRVzgXCa%UrUH_)1r{@&~g|DaQZ6;>sj=nxIl91q-7zqJ^TL3y2mzUwE zRH?=z#K{&__G}OQ#nseemT&AHypk>jpxEEvFQBEBVAvCzl9%TX3W&P8x{4D2M<+ip-9UiRlO3K}t&M z_3PJf#Ki7vX=#n;#m1^^`3^?xoyY=9~1I>Eph|^QY zfq{X~`+OJ$`T15>R=;Ov50e{c=`45234Z1S3vclrxBtb)fO~=N?g>-mX zTkL2XhsU7Z+?`)XtPGoNYimm#;i4q%6`1K&SAJA)F2R;be;BPx3D?c29M&Bie)C@8c&uI%9KyzA?E zA3uH^9XD#>*z^7HdgJSEe?y)SNr=_X3~ysolR?KN5Tfx~2Zpt^HPE-_|NVQ@7D%`@ zRzk|_e3<+$OD2fzDV`TsNK}-VrY3=eghX>&TUc=L8xs?1Dk`c{iSr$Zg0@%^AcOCX zj3_0m5J}hH|EITiyQEq2JjNCdOGrrQ4r}>Gex82SoV+}hns0@j2a!+gGSbt%^7CoO zTl^2p=gI1S16w8IB52lKsN=ZvIGBacO zmCI2~OpHA#KlohNgyHouR3r0vcTT9Tu5S1ExOH+e?(bi@@Q4U&YwHxfw!j|*oS}~i zxgZEGMER4y)YNd%)6-W~Rq-5;Lme{ky8)u3T4_N@>~{DBBK>f+|Bi!$gY(h4cV1rJ zQK?Z4O7eab#;YlQS!Q;77vJo*?xz_2Q>{OLU;)19^rIFg@u8T;-GIKQryBK z(9iDyo%+w;&CSR(G&G=dCaT#mpm^?*82!~|AR#5?w4O(%kWFlcmmL^T&~{qFsd3nm z2_oX%-Q5k=kd_wu4%~AfLlU96!BGM@`1<9`t$LRe!`**>9uf0tlF=}{^b-~o6ucc0 z5>hImPD=3XnS`QZc>Z)fWITvoux?#gM@)=bL=jY;c>%?gk@S^J06^=k^zj`0d#Sot!qG@2ob;%E}<2>Y1Ad05QeI#fA9jvSvU|F^P$Z0aXzb2S-Fo>W3L( zpSieVK`>F{Hf3dH%`Yf09?p%}tbV+vZ(#5$)QA&g;@wi?-R-&k{rxdeQyQ+%X%Oi- zHWuxNMZsh;L2EZxw%RGswMRVdrpMRJZ}a>JZgRhYHAYL z%}5?G5s@cEM1es;=(YA+p}bEEGBZWHBI#&e{S6EZ{AoUUoKdwwi6XclpT*hdd8DRcHTFAGc zpp}VoQ!g(s3{aKJO-G>wr=_POLmi?8v7j;mei;vD22^d)qR0k=ESj?>Z)H`y>G^JA zG9)pPsJFM*c74c?&3xkD=B5->3lTggyY|7sFu8_2+UKkSGbt#7Us1kQHPr|;jOq;f zx3`P`I-N&#zqxWaJUT*1ZH_Am4zHP*a<_85Z{qnq5-oq7`M{q0D;KDj=yza}%O=ud zF5gp7R1|*y{)M}{J2Emd#?zt+gNF}ESXjav8wC-C0J=d-i+67V_h5!39+%zv&?+&qWj;uZfCpt0 z0!3b+FnDswhQCu#P_6#-N~6LIidZ0sYK+$N&3HAY*{$2~v#tj{?3+{7SS~IuBl&7g z!7qgt36;aJaB#enl89lcrxzDCSLb$Qm=7imji_yLS*4@iVyDqnp;>9 zQcwuZuN7oxXV=uyS{ukfm64H|_f^JtUJaH(8@=tp{{G*QkyeljXX;%Bvt)^3cgVKS z5uQn7SEdZs667ods!u}$Kd6oY7du#(n2otgdC}~aiQ!q%4NoOJ2yqad z5j61prGJ0ELh0<}&KISC(kkTp*m`q}5kZ$@W1j<04!aWnb-tdLYA=DIjrsEB%Tj*> zkk|~ReI+VBQHdR zWy_}l0R7kOhcz$gv%h!>A5Oq!`wimV%-sALs|ohi`B56^@_huksu*6GMO9VNpliV5 z+W;0OU8u4UIGI3^k9 zlNBJlF*zR^L6z@?M4Ik;X{z!qO-+wHN;Uy{x zWC>0ms+j68SI(2|=>^1Ec^re`=N>?N77Zfm>5gF*@i_L}4Rtcn8!0Vi%9Ks&h5g>! z-^Y~LM}4EClLV2$Y&P~<^vBabATBQvDtv_{dgy<3xV${*Lu_51N)hI>XB|*nL_$H# zF9$3V3VUY-(kB==ZDPc3UX_*Xz{HvXF+v+s(A1>ed3{&F2uW5t913nXsM%)=LHtm# zT!dQ4hC;u8f5>gWnf$RY@zHaZZ?z6Po!sfpM{q)O%gdrWGxcED89?Q0Zf-8NnC1#0 zXh;UwyhtdRAP(s0_m?|hBb--9c6E1$ciDTlfks^7xc33t9ReYYj6^~OUszpj2YW@h zkrqXI3JYuLV5P4Nj@tcf3Ge)POT+RO!fEnG#T%JC$B+B>@4XKiz7O z{sIE(amTBpqMt5eGzjYN!+;wc25C9?A6eT{V+ZQ1qx9<8yg!}M~jGU zmb+8jE{@~*+#o?7Fnp^T!mda<^DogUNZ#;tAik)}&;Ow#bJG#cpi;a!niRcv#dUn` zBJ()pp@I^5Cn(=_H`f=4z^j~b&eOhATwd<>bIvvl2NHRIsVj!b;NePdg5K}Xw>D=R zk|e^&hr5nhSXsxx6oCSFc{nJ0REp+A39SO+8&TrAyQS#0>)K27+7Pv?P6*2+MXk(` zR<-zZad9!ZweDz*o$0UZ^9_@}qWt{sscIVl>nZ8!>3=FTbWGGM_#JnXiBfYk?CtFl z4GlJ#fRGRY0Llz|NGK@8;2i@rQSS)xaM{lPYw?gMns-$@yP#LTzNVSvJN-5sHoNRG zIBT%hYwqf?8BCCh^Y4M*J~(>c{QVbviQThLke~*)L4nwC;|}-(Aq~ILK}Sr6@?bXm z3&0xT<>lqNc^o8|!5`1Nv;gIRm^e?$*iF~F-~sm#4S3!H`PSao=TW$X`tV^ihcyYY z$0Z}ex@l|kCE|4+diPUM=$(p68$iMt-JzHjY3vP?8+@T9A?eQJi<2E@=poMEv$xAl zhQBxYqT4`oeoV|K1x3s+ARxj)H3E?;kRw1Ca24LY17itE^;wMKnY-;LOd5}y2(>%D zsaeAWNW2Bhb<-Xwk`C9xCdwmvU78Qj=BENokDl*z6?O_cK{Kv9TaNo_)SsHNU_7wg zn{Y9Pgxk{6B9+8fuU*OQaqU`KTFT*m=~!=(#YM#DDh?7M{E*&Iwmd}RYlBYg-bCJu zZuOslClPNQ!~Ah~e}BHLj}PmL2vrd42|z3;9ZsjaDRn|l7Jz-`!Jr144`Dh2)L$YD z?f!ZneRppUVFgA*kfTm&xS zEFK)Jg$2ks2)a`7MpDk!Ifa3H#^|)a=sax&#x`Wy`~AfZ=yh11fpofG zY_XF|MZc-En1&Bcfg=S-XtOr(3UcKspDPC>DhDU$6ATQb@X9r4M{`Z+{0PSx>}7aA z?_a<807YExwGo$Y0qicdniE7+dC$A3h(trhrOj3>)&gD$-sdj#x&!bVlc7yRs0J+L zy#>b+3MkdA+X*53t;I{Y^a%(6!u#HwD9_WbJm3N74F_F&?d8FlOhwC89ZA*_3}zMI&whMFx;DOk&0#U8`X9R`2G9M_zI?<7eF;8 zFkrbHwtx8g-mkQr%>)JohFg@=!LqKNo)8eU?d@$W#v{# z>1gm@0b8eMWidPL>%;P`tgS-`Pr$sy#KaW*@PTBf?m#BsL`2)n%nZsZIX{0AfX5E* z__si#!HtGQ_kun&x3=a7n++v#9^waha3^;&xqxN&i&nRzX9pG6?Vt^RV6x`;{?!>I zUiE?{hPzQwcW`|~BW5aDs2jR$H{1u^UpJIEoBa*}$h*ImmBiLg7aJY@6yUtIt?eST zRnT#u{rCap1?;ssU5lrop)v8(_-lDN>rTTBAILsrOiZDHgxvGn+r14p*OCxU2)`0q z5!hqRUhjOrB++h(C;LZzRe30sLnws558>65swfy<>1=t(p ztGt{XqI_STE(AS&{(OY;mlz@ECogc|BEfrw2R4-&bVc*Ialwqok$pb9`9w1mT7wHR z20lJM+l`Sezofj}T!e^|lS2h$)c^wAc5^HQrZs@{sa9FN1l!;I_cv1tZthz7cpF(g zOG{Y@K4|1=+1V(d7Jvy09P0MJt;*SDM1*&AJopSQp7q8E9h9TR;7Rn1prlzK&>xhsc zB_RQvSa`grBqtXfVLi+_13=Qt+nW&_@_T5{h4uBxAZ1>_UgEP`{DmJjX*piCPs%Lp z`up9$1rRBaamdDyxVSDrjE)-xl~s;=Bw^&zjo?^}Ty8pju*iq{BiZ17g@S^DP#^lV zlM{1bYrqLu`bbSpjg5zwmXh)Z<}1J$puKbN(R(=H55GfJ6g3qZbKPoBH+yoB;%k=s zKFi{k8XY2!$hcfK%IYR_2jVJEjUV5jPyJ$Y;R59})Zy^adag<7$-%?@euBMw7Bao3 zu4UB&&hdsaB(!Wkr44l(#(mn4`&gM~L1w9j!cbok7eP%!BP1_hqVPv`*aevR3qC$= zgw8jxnt73q4m6a@l`9#mZo z3rK#cM4lJ`7o`ARfD^+c&Rp%zFTLJ)P9SIR4Gg?1D(nm9!`{luQoMZm1p!Tr`bmIV z0493h8BS&A5qv{RSLd)f_L7@zAA^Xf7osYUwFvMCtOYi@zd(b%!g973Iu0WXOa2Pw zMlS^7^A^q%mRZ*WG$?pd(XYQiso&h%f{~6Ch$W!kfD&^xw*l2YBI0=}CME_lk%Y9g zh>lLf#D%$mK}$TR4a(!kt>fcrY(a-Ew9}Qbg&u&dS^4aT$9LA9SWJ2y7DOuT9V{bu@70gN}nRM2W_bBo>4O}xT8d1Yl$clnoae(5Xv3;WyHhvl*0 zfy!np^`pL1^83^$VpH`L``hBGT5L{k=S&nfZZcyXF`)*hmDSn`HtyBU&B|w4JaDST zS4TQ|r#RHqhnuw7v@RIpKZ5HD-7FB@0klaB zTwLWfx3yj+DP-Trgq@dX2Y%naytb+-leRVpr?{>RhW}SxbvNQL>=V!c<2~UFfkR1N`{r5sV9_bfhNq$%L_Wx zhQ{p)=9&R*sE7}NwwlCOJ}6ux=LQBoMuK*@3_E$aF&YG@ zd2hnBs02ESv!CTyvF@9*t&(%H`ivwHC_%rTB40yaD-#bA14^t0Tp7+M6;!^?iueFE zJ)RY!rJWsF7-uReD_aPYsLUz0h(RvYl_3@H)-J!T^rq?ej)~zpj^Ka z3l+2GjhB_4p6kLp-MW0n=V3}+G*<3hXfUZ7rSiNvD^t;#|7CsMkInu}I){p_%uNQ% z@kJwfZ5z!!UKkT09UWb*pe@PcTFscq zxFG?QeI2h?S@SqKYD+PATndXU!nm^mPLtZSLY)nk^ z2@W%J^DX{U^)69;d>20e;SN-oYbfWd$}fF&4^aAVzt+|y|OLq6}sn^JrmVYKKCuxEM zo2&Hbh`B0K)2zU;q%w>wDuY7KFH@VGT7Gr&B%>~5-TMRsyb*ET=tvo z`D$gVFym!D@pG$UjfG23sdj#q4S0TO-6VkB2@kw%_Qy2@%f6Av=I_3@@!XlUpuAW52|pnT}I z==_(z;SkRRk80_5YznymQvq!WJ364_<-fYRLg?@n6&3lK)uABwz(^udB!f;blvDj4 z$Mng9v1vuSW0$!`Z@^h4wrdJ930&U7By&)ZN<*l3Kqt*R8eJYk!)M!!xzHkndBup4 zoBV~Ve}C?%VclIzs0Wt+>*`noCiOq%^F)j=)Z7C(Dn3Tcn~qI1R5!VZGHRp9tJ0&w1UI;H7}2*;c_4K z;&>~pWn*>q8+dInU-*KR6$jic0s?~ejt2gVUVngpOPlf>ut+>O6;pKm2sNJAqIN)H0{&A1*&gG{=6bo2`3p}mDRX5B_) zunY{YR5Vmoi>((#!M9N@GeiS@>Tc&Go4Ts%dqYFzf-5#w)(n**?Wr0&e+Zmim>&3G zV)EABo(*aMSaH694?E9q+-Hs`UcDMV9WypH1x=`!`lR-Q##)x&k01KOxk?~{hQ-7n zrtLts234Ma&k;Wu5W|=%&?J7=3JUW|E{Cx7 z)JFxmW;XyGI9*R)%V~#=gLelLh>a;iOKAZh^$*m$IKb#Kj6*L)sA%ULeqQna2U}_g zxEUnW0EPxLo_Y~P)z=#dyC`sd(^|2+-#o@>6T}GvAHVY1Guc3S?HB0=)gA231 z$4ruvr?clrN`wo=ZO-*bh(R&Sy1jcJd*f3;WTj9j1we-n>DA*~L#=GMi4{1h1_TxdR$aV_#p9{Nb9K3IIj$AQnOXLvT)* zoMp*L3EB{}bI%8f(ZJl>d)=i!(A;i;kk7S>QYcS?BxLvMWcFZKMF%YAE~wJ0)3ud# zO}Xzt1^;ke=Y(uAMekxHg%KNiokTycEAdk0&h13ok2f8DpTMyK8{*N^*PmzIFAB8d z?hWBUF9)X8(c4=%61FHk4J2_D#AM)LY>2w;z+qPiN-pdXVrDoPW)k4lPFK@{is4Tk zj68P*F%4GBV7p5YS$eU}4P(Fv;st&nV9Jz31e0GKOS#h{iL-mYAGfl;E`{;D*4!iM zUjmvA=nWZJXkPZ0e&a46Iw&+Q;H^!y{?rRG2>1v4O3g1kfSdUy8M)y0Fr0Kxcg{evOX5<0 zt;pzglyf27VfL$4`U)-$5E`f&fRTeK4*XSM_T2TLO$yLcIbI z)(9dfz5$*H+Dl5xZwPf8J`nB%_?MTL(;C~`+2Kf(y+BcVh>pI3P_sdKht+=2*KckQ zA%!7J9$>f(=Hn%97xrL;x5U-+j2-_G%ck}>eA?*0Qnh0+quKDVvQUfDdY`N(mepmM zWcY1(imTDU6H-x_Denekz6z$w7Afw!6hI(2C_^Z12zkwHvH}f!L?_>2N+A70$4z)o zo_v8bfwGbT#s$33ePA_CzLY4Q@!&AdZEXdB$O9twD>5=J>+H;qQnwAzw>3x7e2=n~pBn!wtNT$%Th!LzFtQ(O}m&kwq{P{u59tc*@ zGCFZnsdd<2lV;Li4;v+JXlPHJuwazVwcHSm*md{M0qwP`A5-`V3!=^NU7zZKGz8wd zRy}$Hts)&Os}fuAH)y>GWnU?81z+RZAQBV-;K3Zw62P=VzIQJ*J-wNxs7?@cGAlc~ zmf>L>F|oF&WBa@pb*qp}dnYGtqoa5p9v-)E--f#_Exo-m_9{7WQ{*Y67WWXIC=9BWu@jHF-#JS-9IZ-ca=%x3j85?+hw3>l)6+ z8J0l~C?X}mw1ES8*4A=En!p0e$@4H1!+zfMLOcGOuf~i3L4X#UzebiH!q@>Q{6TOY zAdo{yfc}3Q%q#F6&&AqU`{uY1?sJm%bOv3poqjP>;Vb#2Utl3vdzy%>rbC}kS>R9YQ{AuFXo@_c>$ z$5YNw5U&=Nmz4*HM|k8T5pV+Z!%LWfx80dZK)_PR-S_f$RM0{4ZHJ>h12M3pz5P9; zAFWmmHlQ6R-w`q#JUlF1To}V0t#UnMf~}wbpQx4!q_wP!84@#9I*tw2JP7EPd{R36 z1q(T7%izBJ|3>nI2QN7|RFAJ%n3>Zcs!MYKUBC!I2lpm99VI0SF)=Z)CSb3m{QNpI zFX7Ss>FtM?l5&kc%2d+!Oh!@Kh%osD)^7#vm&cDDErRa_kQC&%&u|lr);LlIW_HHL$5W^+o>F5HW7?rr3 zSh%{m8TY5&g_iUYs@dWCuq4@irEh_O%g_T5l>rtuSm$JexGMy=H(*hCJ!;yo!P*5@ zSgCOPMFI?^ec2Bw0+qF-yu78e^C75#h;K?u8{r#hy8S&#yMi=SR4@7X5?5D^0NsL= z6e10jngY~T$OI&C{b{tsC*U#}+;#)0NhkLfAF_ZE%Q}O6AthWag01=lHZ5$G2ux=p zdI8*-X`Y@Y)X+I<%21vJW1bzPW415H(brL>@+fc8m6Wu+Lx#&aQqyCxD%WSuxl`K5gel;j6DhhhjdzgagWthu>82}jiKwQ=X?EY55 z3P2ESHI(kK@bJSir|h(}uMj?)jfL~m;M3rDcXtb8@d#jOlc6P1s*n}PAN@BMg%2+R zb1r{D`Gpuk$jp#x{Q$6m@MvdOR3ol2!q5bOrmjpVgtz{}Y=!gjCRHs5@Qx76;zrc0 z+}Jv?u%~OL^78T-2GETenV1^?yW05mZ4nqQrRnM_DtJ&-V606z=oUjZ=-A+~8@y{l z22rwlpdrHpT8yH)FPs5fgDmxDfTjq${hEy}QtJl{@92U)x^0Hy`FE(DUEW<0+SZpZ zUm`-gzz9)eXNEbXh>1cqH8sR!60}{A2GP{tMFJIqqFPc?0vloj({1B-C?Q+mqD{w# zZD_0+9aEZ*E~r@Ib1_qW(TSB~$Y2gD7*tp4(KHwum5e98(oj)RIj)4!FvO^%iAgF< z{sF!F-#yU3kR-6{!cji5!7$DTHxU4e!=VO)?gZor>KJtTmm%W8;$-^z`igHqmz9=M zUnPWu2*6mL63z}h5@Gk!N2cSwRnnq;2B&If_5;i~f#PS|KGvS+&{YAw%i#2DTaU1@T` zMtoZ#f(yI3MSB#TvhOrCrNC2y7!0l_fAy*(RDCTRn4~btO9lqnV_Q4e_v-5EH)jPc z-(?knvL{3F2D2+eAI=UB6igUkf>92{%~)VKf;<6qC`#G6_AE3s{!oYz^O&=3-;?g> z8ydoWAayF^g41f-`d!BXb&xTXl}Fw!gp!xbDufAZs2eKMN>Xb_t7wYCgYVw;rZyeV zz&lLE)y6 layer_aerodrome_label:z10_ + SELECT + osm_id, + geometry, + name, + COALESCE(NULLIF(name_en, ''), name) AS name_en, + COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, + tags, + CASE + WHEN aerodrome = 'international' + OR aerodrome_type = 'international' + THEN 'international' + WHEN + aerodrome = 'public' + OR aerodrome_type LIKE '%public%' + OR aerodrome_type = 'civil' + THEN 'public' + WHEN + aerodrome = 'regional' + OR aerodrome_type = 'regional' + THEN 'regional' + WHEN + aerodrome = 'military' + OR aerodrome_type LIKE '%military%' + OR military = 'airfield' + THEN 'military' + WHEN + aerodrome = 'private' + OR aerodrome_type = 'private' + THEN 'private' + ELSE 'other' + END AS class, + NULLIF(iata, '') AS iata, + NULLIF(icao, '') AS icao, + substring(ele from E'^(-?\\d+)(\\D|$)')::int AS ele, + round(substring(ele from E'^(-?\\d+)(\\D|$)')::int*3.2808399)::int AS ele_ft + FROM osm_aerodrome_label_point + WHERE geometry && bbox AND zoom_level >= 10; + +$$ LANGUAGE SQL IMMUTABLE; diff --git a/layers/aerodrome_label/mapping.yaml b/layers/aerodrome_label/mapping.yaml new file mode 100644 index 0000000..46cdb71 --- /dev/null +++ b/layers/aerodrome_label/mapping.yaml @@ -0,0 +1,46 @@ +tables: + + # etldoc: imposm3 -> osm_aerodrome_label_point + aerodrome_label_point: + type: geometry + fields: + - name: osm_id + type: id + - name: geometry + type: geometry + - name: name + key: name + type: string + - name: name_en + key: name:en + type: string + - name: name_de + key: name:de + type: string + - name: tags + type: hstore_tags + - name: aerodrome_type + key: aerodrome:type + type: string + - name: aerodrome + key: aerodrome + type: string + - name: military + key: military + type: string + - name: iata + key: iata + type: string + - name: icao + key: icao + type: string + - name: ele + key: ele + type: string + type_mappings: + points: + aeroway: + - aerodrome + polygons: + aeroway: + - aerodrome diff --git a/layers/aerodrome_label/mapping_diagram.png b/layers/aerodrome_label/mapping_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..bcaf83aaf3dd108d317bd69727e2a778cfb11d12 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhY)RhkE)4%caKYZ?lYt`Yo-U3d z5>u1^{Qv*Ip6$_rEHx!jBLg7l(OTA@B*wc{Zb}J4K;DEexKnelF{r G5}E*jo*@qa literal 0 HcmV?d00001 diff --git a/layers/aerodrome_label/update.sql b/layers/aerodrome_label/update.sql new file mode 100644 index 0000000..79c6e3d --- /dev/null +++ b/layers/aerodrome_label/update.sql @@ -0,0 +1,51 @@ +DROP TRIGGER IF EXISTS trigger_flag ON osm_aerodrome_label_point; +DROP TRIGGER IF EXISTS trigger_refresh ON aerodrome_label.updates; + +-- etldoc: osm_aerodrome_label_point -> osm_aerodrome_label_point +CREATE OR REPLACE FUNCTION update_aerodrome_label_point() RETURNS VOID AS $$ +BEGIN + UPDATE osm_aerodrome_label_point + SET geometry = ST_Centroid(geometry) + WHERE ST_GeometryType(geometry) <> 'ST_Point'; + + UPDATE osm_aerodrome_label_point + SET tags = slice_language_tags(tags) || get_basic_names(tags, geometry) + WHERE COALESCE(tags->'name:latin', tags->'name:nonlatin', tags->'name_int') IS NULL; +END; +$$ LANGUAGE plpgsql; + +SELECT update_aerodrome_label_point(); + +-- Handle updates + +CREATE SCHEMA IF NOT EXISTS aerodrome_label; + +CREATE TABLE IF NOT EXISTS aerodrome_label.updates(id serial primary key, t text, unique (t)); +CREATE OR REPLACE FUNCTION aerodrome_label.flag() RETURNS trigger AS $$ +BEGIN + INSERT INTO aerodrome_label.updates(t) VALUES ('y') ON CONFLICT(t) DO NOTHING; + RETURN null; +END; +$$ language plpgsql; + +CREATE OR REPLACE FUNCTION aerodrome_label.refresh() RETURNS trigger AS + $BODY$ + BEGIN + RAISE LOG 'Refresh aerodrome_label'; + PERFORM update_aerodrome_label_point(); + DELETE FROM aerodrome_label.updates; + RETURN null; + END; + $BODY$ +language plpgsql; + +CREATE TRIGGER trigger_flag + AFTER INSERT OR UPDATE OR DELETE ON osm_aerodrome_label_point + FOR EACH STATEMENT + EXECUTE PROCEDURE aerodrome_label.flag(); + +CREATE CONSTRAINT TRIGGER trigger_refresh + AFTER INSERT ON aerodrome_label.updates + INITIALLY DEFERRED + FOR EACH ROW + EXECUTE PROCEDURE aerodrome_label.refresh(); diff --git a/openmaptiles.yaml b/openmaptiles.yaml index 326f39f..9996d07 100644 --- a/openmaptiles.yaml +++ b/openmaptiles.yaml @@ -15,6 +15,7 @@ tileset: - layers/place/place.yaml - layers/housenumber/housenumber.yaml - layers/poi/poi.yaml + - layers/aerodrome_label/aerodrome_label.yaml name: OpenMapTiles version: 3.3.0 id: openmaptiles