From ef8af63ab4cf39c23a8223bb3143219c7fd36826 Mon Sep 17 00:00:00 2001 From: Shan-Chun Kuo Date: Wed, 24 May 2017 16:55:44 +0100 Subject: [PATCH] Add tile-join options to no tile compression and output to directory --- Makefile | 9 ++- README.md | 6 +- .../raw-merged-folder-compare/10/164/395.pbf | Bin 0 -> 34284 bytes .../raw-merged-folder-compare/10/164/396.pbf | Bin 0 -> 215 bytes .../raw-merged-folder-compare/11/328/790.pbf | Bin 0 -> 32478 bytes .../raw-merged-folder-compare/11/328/791.pbf | Bin 0 -> 1119 bytes .../raw-merged-folder-compare/11/329/791.pbf | Bin 0 -> 388 bytes .../raw-merged-folder-compare/12/656/1581.pbf | Bin 0 -> 33371 bytes .../raw-merged-folder-compare/3/1/3.pbf | Bin 0 -> 330 bytes .../raw-merged-folder-compare/4/2/6.pbf | Bin 0 -> 1020 bytes .../raw-merged-folder-compare/5/5/12.pbf | Bin 0 -> 3252 bytes .../raw-merged-folder-compare/6/10/24.pbf | Bin 0 -> 8607 bytes .../raw-merged-folder-compare/7/20/49.pbf | Bin 0 -> 21306 bytes .../raw-merged-folder-compare/8/40/98.pbf | Bin 0 -> 802 bytes .../raw-merged-folder-compare/8/41/98.pbf | Bin 0 -> 25861 bytes .../raw-merged-folder-compare/8/41/99.pbf | Bin 0 -> 267 bytes .../raw-merged-folder-compare/9/81/197.pbf | Bin 0 -> 463 bytes .../raw-merged-folder-compare/9/82/197.pbf | Bin 0 -> 31422 bytes .../raw-merged-folder-compare/9/82/198.pbf | Bin 0 -> 313 bytes .../raw-merged-folder-compare/metadata.json | 12 ++++ tile-join.cpp | 68 +++++++++++++----- 21 files changed, 73 insertions(+), 22 deletions(-) create mode 100644 tests/join-population/raw-merged-folder-compare/10/164/395.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/10/164/396.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/11/328/790.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/11/328/791.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/11/329/791.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/12/656/1581.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/3/1/3.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/4/2/6.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/5/5/12.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/6/10/24.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/7/20/49.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/8/40/98.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/8/41/98.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/8/41/99.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/9/81/197.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/9/82/197.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/9/82/198.pbf create mode 100644 tests/join-population/raw-merged-folder-compare/metadata.json diff --git a/Makefile b/Makefile index 5ca6368..b499578 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,7 @@ tippecanoe-enumerate: enumerate.o tippecanoe-decode: decode.o projection.o mvt.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -tile-join: tile-join.o projection.o pool.o mbtiles.o mvt.o memfile.o +tile-join: tile-join.o projection.o pool.o mbtiles.o mvt.o memfile.o dirtiles.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread unit: unit.o text.o @@ -116,7 +116,7 @@ parallel-test: raw-tiles-test: ./tippecanoe -e tests/raw-tiles/raw-tiles tests/raw-tiles/hackspots.geojson -pC - diff -x '.*' -rq tests/raw-tiles/raw-tiles tests/raw-tiles/compare + diff -rq tests/raw-tiles/raw-tiles tests/raw-tiles/compare rm -rf tests/raw-tiles/raw-tiles decode-test: @@ -162,8 +162,11 @@ join-test: ./tippecanoe-decode tests/join-population/just-macarthur.mbtiles > tests/join-population/just-macarthur.mbtiles.json.check ./tippecanoe-decode tests/join-population/no-macarthur.mbtiles > tests/join-population/no-macarthur.mbtiles.json.check cmp tests/join-population/just-macarthur.mbtiles.json.check tests/join-population/just-macarthur.mbtiles.json - cmp tests/join-population/no-macarthur.mbtiles.json.check tests/join-population/no-macarthur.mbtiles.json + cmp tests/join-population/no-macarthur.mbtiles.json.check tests/join-population/no-macarthur.mbtiles.json + ./tile-join -pC -e tests/join-population/raw-merged-folder tests/join-population/tabblock_06001420.mbtiles tests/join-population/macarthur.mbtiles tests/join-population/macarthur2.mbtiles + diff -rq tests/join-population/raw-merged-folder tests/join-population/raw-merged-folder-compare rm tests/join-population/tabblock_06001420.mbtiles tests/join-population/joined.mbtiles tests/join-population/joined-i.mbtiles tests/join-population/joined.mbtiles.json.check tests/join-population/joined-i.mbtiles.json.check tests/join-population/macarthur.mbtiles tests/join-population/merged.mbtiles tests/join-population/merged.mbtiles.json.check tests/join-population/macarthur2.mbtiles tests/join-population/windows.mbtiles tests/join-population/windows.mbtiles.json.check tests/join-population/just-macarthur.mbtiles tests/join-population/no-macarthur.mbtiles tests/join-population/just-macarthur.mbtiles.json.check tests/join-population/no-macarthur.mbtiles.json.check + rm -rf tests/join-population/raw-merged-folder # Use this target to regenerate the standards that the tests are compared against # after making a change that legitimately changes their output diff --git a/README.md b/README.md index 1debe76..07332f5 100644 --- a/README.md +++ b/README.md @@ -402,12 +402,14 @@ the same tiles, the layers or tiles are merged. The options are: - * `-o` *out.mbtiles*: Write the new tiles to the specified .mbtiles file - * `-f`: Remove *out.mbtiles* if it already exists + * `-o` *out.mbtiles*: Write the new tiles to the specified .mbtiles file. + * `-e` *directory*: Write the new tiles to the specified directory instead of to an mbtiles file. + * `-f`: Remove *out.mbtiles* if it already exists. * `-c` *match*`.csv`: Use *match*`.csv` as the source for new attributes to join to the features. The first line of the file should be the key names; the other lines are values. The first column is the one to match against the existing features; the other columns are the new data to add. * `-x` *key*: Remove attributes of type *key* from the output. You can use this to remove the field you are matching against if you no longer need it after joining, or to remove any other attributes you don't want. * `-i`: Only include features that matched the CSV. * `-pk`: Don't skip tiles larger than 500K. + * `-pC`: Don't compress the PBF vector tile data. * `-l` *layer*: Include the named layer in the output. You can specify multiple `-l` options to keep multiple layers. If you don't specify, they will all be retained. * `-L` *layer*: Remove the named layer from the output. You can specify multiple `-L` options to remove multiple layers. * `-A` *attribution*: Set the attribution string. diff --git a/tests/join-population/raw-merged-folder-compare/10/164/395.pbf b/tests/join-population/raw-merged-folder-compare/10/164/395.pbf new file mode 100644 index 0000000000000000000000000000000000000000..3ae741287bfbcd4d674dae19e9e8b84de50d9060 GIT binary patch literal 34284 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 literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/10/164/396.pbf b/tests/join-population/raw-merged-folder-compare/10/164/396.pbf new file mode 100644 index 0000000000000000000000000000000000000000..16682cd069c44296eb9e6cca311d74b06f7b52af GIT binary patch literal 215 zcmb2T!dSt?#hII!oLE$nQCg(YpdiKJ806_9#o-p}ng<>6cQ2{AjRq% z;^yqE#LvZRXlP(!Vqs=rX<%t-2omsx8KK}-Ua7>)#ptWV&czxGRA&HJZ*F1^)MI2U zWFWyL#KFM8$jHRR%&eruc}{gcW06&oh#H54QH_d$mXe)XN?eqQhe=+9n1oZDl!A~h pSO*JKhdk#6?G>y^p6TlPvl%Om72Vanz4Lw5^(D=vJ;jafvjI33Ejj=I literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/11/328/790.pbf b/tests/join-population/raw-merged-folder-compare/11/328/790.pbf new file mode 100644 index 0000000000000000000000000000000000000000..667bd576459b687b68ddc378574f9651926d163c GIT binary patch literal 32478 zcmZu)37izwneVE4RbAEdW_r4(hoiZg78n>9rtbrjc!MVz)FirzCT7hh(U_QHb8iq4 zQ4s+V5fKp)5fKql5fM=l5fM=l5fv2?Q4tXl5fS(QRn2sLuiM}5Z#Uic|GTgEy*DPl z^&9PPdMNVeUtDz2rN95>B^Ra&sZ=_bNevvGh&yMWbKE&64L>WLiib`(^W2f=oag>$ z=bTZ;op8@`9(T@pkR&NW zda95#Lk8qb+93cx86%zP=rDP-&?oX@pKKY?&ecO6y(cXzCt4%;(dco=DYFODWV4*NM%qGHR(}FNZxQHZ7U6@@e9G7{SL z1;Ew5aKEak>3$N4>u&DuQ_GdpB_7AQ5~>6F0-UQWj{8-Gn)}H}Z2r4XEK|s4xSpAE z+Di)jwmRtCuQ;(Z9DCRQ`NUxFVydENHkB@wGUX1*lv3gujg=CRrcyE`=o2es3z;+{ zh73z*J!0uv58x{%89o__g(06F5vuyUcuO^v#Xr1wl+?Kr5w zlF0oe5^r6>k|>W3z%@#zs8})~&=EQeaq!>15Sd~*#cFB_HMJ7g)wu^a%RTp#NZibY z$dn8CNu`yfK&)7u9n`8|iRBSrh+HP0;jT?(idnbKfyZ~~zzVzj1CjWe3y}p^9(Ac4 zMIo~U0t7;k7aw354p9-5ow6g3N|{2wqj2Op3kMv;2;pngeZ?mDBocRQ`ej8qw3QT3 zf=ss9QOf~UlE9OJOg1tz{>Kko_mh#>W%|U5 zrIHf3MvT14ldo9Hb&f~q zh}FdK6(fdEM&dfZjnYV1@UtPCDim_%4mH(ea@E9Fj2J!{i50%hFc_wk(w)ziI*Flm z)kwygCv27nv5A&%vr-X>>1RNykf-$af>x=zo v1~E$d_s(L(a_N%d&0G!@$0Jr< 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 I{9Fu707YXv-2eap literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/12/656/1581.pbf b/tests/join-population/raw-merged-folder-compare/12/656/1581.pbf new file mode 100644 index 0000000000000000000000000000000000000000..3f56006f1c9e05f1660be854d855507308e22de3 GIT binary patch literal 33371 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 CE1i4* literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/5/5/12.pbf b/tests/join-population/raw-merged-folder-compare/5/5/12.pbf new file mode 100644 index 0000000000000000000000000000000000000000..fb0fa91af609e1be1c545f4366fbc190bdbf2cf8 GIT binary patch literal 3252 zcmZ{lUu+ab9LMi=XYY3B_ImAscjZ*vuBiNxGPARPX8nIXTCB9!dc70y57<@|`Kt&5 z`eKYRF($?kf`%A_XaXh%UyRQ_lSp_l#27(k>kt<`StnyqQm?TJRi zF5x1j#C5sPLWgr|7ja>SHQj^QD$Y*Zd92M*myme3<1|$wbO=3?FwTMmDj0$5xS`Ad zgGb7hVWq5RGTE%6sH&|SKk4VIxS+*$l+|MU75#D*E1B}B*q_Vh!LHkuaX~*@-H&p^ zD2E5|05Y+u3}D^N>bjY$tR5_{6Z?&Lf5o_LoEaWlHI!eKFCZgdsE_20YCiUc6L0_M zSHPPR+Y5>PmVQ-4(T&0{>PaA(j_W9ba z)i5|i$L1Fn4jx%Nu!s1BP}d>R02y=bdV73gmXaE7%ygRVUEh&GqLA;)9wrAT@;x+C* z&op62u2b*gJ9QXbN^FD`;@cWlAx>MzIf#`(`*Rq*6&vrMaOC7fjM>!l~|O_8=9ov~eo|M~iw=M(2?uD=@w#{^?Es8F zgVUYT!d`OVy)T+>2Z&6A4XSl|XA&9@SP+I1jC1HnoSfHffD=u>bRfViOi7SprCMJv zq*&%Tfm}1!gU?uug$p?9Ym}>u1+y?ESg}IZ58q353W5_SkZQ)6_#BI?!|A&_g&s^vN^p2WXy?)g z63t_TOYP*$htGeR4y)x_?^}+LrsZ<^ysjGt#)X1u+C#=!{kO_S1!a(`7EwkmmA8Oo zZ7eCG0j&g*!Q#-sAjrztD6BG9+Xdr{exp)GsF*DYA3eccsG?OR!7vEcm^Hg-dvg!!aM{?C;pPpNe@rZptV zR*;OF6Cn9U|8-@_HuSVMDM_9I$#!!}NPb^QG7TkeiW2uaKLe6k^I4EwiW=GLN}7wJ zw$Pl`mb`R8@|?K?Bp0I2ESHR^JJBxfc}emDNM1Bwy0c`rx(B_i%}bI6kSv<7h+I~z z*k1Kj^qRI$lDrO*{pJCY%Zh#3tsX>&w8N6*2uR*A;nM)=-@!`@9qmj1Esz{DkAvj9 ZmDAs=zKu?3CnYbZK=O|Hu8^c&{s%9X?tlOQ literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/6/10/24.pbf b/tests/join-population/raw-merged-folder-compare/6/10/24.pbf new file mode 100644 index 0000000000000000000000000000000000000000..32cef6eb9dcfe8ad16ed7186309a389af3b4f333 GIT binary patch literal 8607 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 literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/7/20/49.pbf b/tests/join-population/raw-merged-folder-compare/7/20/49.pbf new file mode 100644 index 0000000000000000000000000000000000000000..bdfa9dbb024f58400c37db9997bb1cb32d4dcc5f GIT binary patch literal 21306 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 Be>ngE literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/8/41/98.pbf b/tests/join-population/raw-merged-folder-compare/8/41/98.pbf new file mode 100644 index 0000000000000000000000000000000000000000..51964cd8de34f4161124353df6c048826fd8c4aa GIT binary patch literal 25861 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 literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/8/41/99.pbf b/tests/join-population/raw-merged-folder-compare/8/41/99.pbf new file mode 100644 index 0000000000000000000000000000000000000000..d64337b4869ba0d0eecb5f6aede79c4d81d54dd4 GIT binary patch literal 267 zcmb2@V5(r^;>=A|yA@$_?b4Dxi5;&2P~@$qx?b(LZb3JHk}kYe=> zadUQ7;^*QuG&C?Vu`n~RG_bTZ1PS=Uj8JeZuT)~@V)RvF=VA>8sxyGAH#ac{>M=5g z3K*MN8URI%ObwK{xj5klK=hdy7zk-eFbQ!mFfcMQF)=eM$#8aY&S#7g5Mblt3z0J7 zk>lc#5|WUR;L%Z$Qxnnvt7U*BiomjAQ@~-w`d3vL=Hyz(S#E!6kocPLf`sn=v#lBJ) literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/9/82/197.pbf b/tests/join-population/raw-merged-folder-compare/9/82/197.pbf new file mode 100644 index 0000000000000000000000000000000000000000..aa12d7c4035fdc057a5469063daaafe9b9c6b1d1 GIT binary patch literal 31422 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 literal 0 HcmV?d00001 diff --git a/tests/join-population/raw-merged-folder-compare/9/82/198.pbf b/tests/join-population/raw-merged-folder-compare/9/82/198.pbf new file mode 100644 index 0000000000000000000000000000000000000000..b5e51ae63d4204fd94ff3fee1545557439bb946c GIT binary patch literal 313 zcmb2z##F(?#hII!oLE$nQCg(YpdiKJ806_9#o-p}ng<>6cQ2{AjRq% z;^yqE#LvZRXlP(!Vqs=rX<%t-2omsx8KK}-Ua7>)#ptWV&czxGRA&HJZ*F1^)MI1} z6)-X}Ftao_Ft9XH65!%P7~qssmIBdi0@n;zYbvB8!6d}Nz`)4J#Kg?3B*%G8Xg*^S zhYg#6f(f63gq@Itn1Gy!k)EDZl$({0kQ!Ju3skiP=L^v*OkS4WzP7f?y4w1R!s3$l hhOyj^LSkTbtc+|xQ`wa`I4=NA 500000) { fprintf(stderr, "Tile %lld/%lld/%lld size is %lld, >500000. Skipping this tile\n.", ai->first.z, ai->first.x, ai->first.y, (long long) compressed.size()); @@ -418,7 +425,7 @@ void *join_worker(void *v) { return NULL; } -void handle_tasks(std::map> &tasks, std::vector> &layermaps, sqlite3 *outdb, std::vector &header, std::map> &mapping, std::set &exclude, int ifmatched, std::set &keep_layers, std::set &remove_layers) { +void handle_tasks(std::map> &tasks, std::vector> &layermaps, sqlite3 *outdb, const char *outdir, std::vector &header, std::map> &mapping, std::set &exclude, int ifmatched, std::set &keep_layers, std::set &remove_layers) { pthread_t pthreads[CPUS]; std::vector args; @@ -462,12 +469,16 @@ void handle_tasks(std::map> &tasks, std::vectorfirst.z, ai->first.x, ai->first.y, ai->second.data(), ai->second.size()); + if (outdb != NULL) { + mbtiles_write_tile(outdb, ai->first.z, ai->first.x, ai->first.y, ai->second.data(), ai->second.size()); + } else if (outdir != NULL) { + dir_write_tile(outdir, ai->first.z, ai->first.x, ai->first.y, ai->second); + } } } } -void decode(struct reader *readers, char *map, std::map &layermap, sqlite3 *outdb, struct stats *st, std::vector &header, std::map> &mapping, std::set &exclude, int ifmatched, std::string &attribution, std::string &description, std::set &keep_layers, std::set &remove_layers, std::string &name) { +void decode(struct reader *readers, char *map, std::map &layermap, sqlite3 *outdb, const char *outdir, struct stats *st, std::vector &header, std::map> &mapping, std::set &exclude, int ifmatched, std::string &attribution, std::string &description, std::set &keep_layers, std::set &remove_layers, std::string &name) { std::vector> layermaps; for (size_t i = 0; i < CPUS; i++) { layermaps.push_back(std::map()); @@ -512,7 +523,7 @@ void decode(struct reader *readers, char *map, std::mapzoom != r->zoom || readers->x != r->x || readers->y != r->y) { if (tasks.size() > 100 * CPUS) { - handle_tasks(tasks, layermaps, outdb, header, mapping, exclude, ifmatched, keep_layers, remove_layers); + handle_tasks(tasks, layermaps, outdb, outdir, header, mapping, exclude, ifmatched, keep_layers, remove_layers); tasks.clear(); } } @@ -548,7 +559,7 @@ void decode(struct reader *readers, char *map, std::mapminlat = min(minlat, st->minlat); st->maxlat = max(maxlat, st->maxlat); - handle_tasks(tasks, layermaps, outdb, header, mapping, exclude, ifmatched, keep_layers, remove_layers); + handle_tasks(tasks, layermaps, outdb, outdir, header, mapping, exclude, ifmatched, keep_layers, remove_layers); layermap = merge_layermaps(layermaps); struct reader *next; @@ -622,7 +633,7 @@ void decode(struct reader *readers, char *map, std::map &header, std::map