From a2a1163fca9c6f4d62705e987387491b528b10e9 Mon Sep 17 00:00:00 2001 From: Luc Claustres Date: Mon, 15 Jul 2024 20:08:39 +0200 Subject: [PATCH] wip: Add support for PMTiles-based layers (#369) --- package.json | 6 ++- src/components/MapActivity.vue | 1 + yarn.lock | 79 ++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 0e73d935..12d4f3eb 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "release:major": "cd api && npm run release:major && cd .. && npm version --no-git-tag-version --force major", "clean": "quasar clean", "provision": "npm run cesium:cp && npm run css:cp && npm run icons:cp && npm run logos:cp && npm run tours:cp", - "dev": "npm run provision && cross-env NODE_ENV=development quasar dev", + "fix-protomaps-leaflet": "fix-esm-import-path node_modules/protomaps-leaflet/dist/index.js", + "dev": "npm run provision && npm run fix-protomaps-leaflet && cross-env NODE_ENV=development quasar dev", "prod": "cd api && npm run prod", "build": "npm run provision && quasar build", "pwa:dev": "npm run provision && cross-env NODE_ENV=development quasar dev -m pwa", @@ -94,6 +95,7 @@ "@kalisio/kdk": "https://github.com/kalisio/kdk", "@kalisio/leaflet-graphicscale": "^1.0.0", "@kalisio/leaflet.donutcluster": "^1.1.0", + "@kalisio/leaflet-pmtiles": "https://github.com/kalisio/leaflet-pmtiles", "@mapbox/geojsonhint": "^3.0.1", "@pdfme/common": "^3.1.5", "@pdfme/generator": "^3.1.5", @@ -181,6 +183,7 @@ "pinch-zoom-element": "^1.1.1", "pixi.js": "5.3.10", "post-robot": "10.0.42", + "protomaps-leaflet": "^3.1.2", "quasar": "^2.12.0", "sanitize-html": "^2.7.0", "showdown": "^2.1.0", @@ -215,6 +218,7 @@ "eslint-webpack-plugin": "^3.1.1", "esm": "^3.2.25", "express": "^4.15.4", + "fix-esm-import-path": "^1.10.0", "glob": "^7.1.2", "leaflet-rotate": "^0.2.8", "mocha": "^10.0.0", diff --git a/src/components/MapActivity.vue b/src/components/MapActivity.vue index b6600418..829c795f 100644 --- a/src/components/MapActivity.vue +++ b/src/components/MapActivity.vue @@ -53,6 +53,7 @@ export default { kMapMixins.map.tiledWindLayers, kMapMixins.map.mapillaryLayers, kMapMixins.map.gsmapLayers, + kMapMixins.map.pmtilesLayers, baseActivityMixin, kMapMixins.activity, kMapMixins.style, diff --git a/yarn.lock b/yarn.lock index 06bb525f..26602250 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3512,6 +3512,12 @@ resolved "https://registry.yarnpkg.com/@kalisio/leaflet-graphicscale/-/leaflet-graphicscale-1.0.0.tgz#5a163e01805208b08ddafd9301e6ad0d4c603e51" integrity sha512-iy42jngdr8c+9iymJ+TCRmotYjcRAHz+4V1OXhuDt4vy49dYjsCpeYOi27m6UOWrSkwNLqPkn2q0OXXYVhutUg== +"@kalisio/leaflet-pmtiles@https://github.com/kalisio/leaflet-pmtiles": + version "0.0.1" + resolved "https://github.com/kalisio/leaflet-pmtiles#06f624dc987fc2bded616e48ebc18e7e73f5323b" + dependencies: + protomaps-leaflet "^3.1.1" + "@kalisio/leaflet.donutcluster@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@kalisio/leaflet.donutcluster/-/leaflet.donutcluster-1.1.0.tgz#4952a70ad594af00c009297bd0881c4ad200cc86" @@ -3540,6 +3546,18 @@ vfile "^4.0.0" vfile-reporter "^5.1.1" +"@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz#8a83f9335c7860effa2eeeca254332aa0aeed8f2" + integrity sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ== + +"@mapbox/vector-tile@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz#d3a74c90402d06e89ec66de49ec817ff53409666" + integrity sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw== + dependencies: + "@mapbox/point-geometry" "~0.1.0" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -4722,6 +4740,11 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== +"@types/css-font-loading-module@^0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@types/css-font-loading-module/-/css-font-loading-module-0.0.7.tgz#2f98ede46acc0975de85c0b7b0ebe06041d24601" + integrity sha512-nl09VhutdjINdWyXxHWN/w9zlNCfr60JUqJbd24YXUuCwgeL0TpFSdElCwb6cxfB6ybE19Gjj4g0jsgkXxKv1Q== + "@types/earcut@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@types/earcut/-/earcut-2.1.1.tgz#573a0af609f17005c751f6f4ffec49cfe358ea51" @@ -4826,6 +4849,11 @@ dependencies: "@types/node" "*" +"@types/geojson@*": + version "7946.0.14" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613" + integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== + "@types/geojson@7946.0.8": version "7946.0.8" resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.8.tgz#30744afdb385e2945e22f3b033f897f76b1f12ca" @@ -4966,6 +4994,13 @@ dependencies: "@types/koa" "*" +"@types/leaflet@^1.9.8": + version "1.9.12" + resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.9.12.tgz#a6626a0b3fba36fd34723d6e95b22e8024781ad6" + integrity sha512-BK7XS+NyRI291HIo0HCfE18Lp8oA30H1gpi1tf0mF3TgiCEzanQjOqNZ4x126SXzzi2oNSZhZ5axJp1k0iM6jg== + dependencies: + "@types/geojson" "*" + "@types/mime@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" @@ -6975,6 +7010,11 @@ color-string@^1.6.0: color-name "^1.0.0" simple-swizzle "^0.2.2" +color2k@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/color2k/-/color2k-2.0.3.tgz#a771244f6b6285541c82aa65ff0a0c624046e533" + integrity sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog== + color@^3.1.2, color@^3.1.3: version "3.2.1" resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" @@ -9487,6 +9527,11 @@ fecha@^4.2.0: resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== +fflate@^0.8.0: + version "0.8.2" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" + integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== + figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -9590,6 +9635,13 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" +fix-esm-import-path@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/fix-esm-import-path/-/fix-esm-import-path-1.10.0.tgz#f2d3921f1230dd539240698d6af21f1cb5455fe4" + integrity sha512-c4BoKC4qA8GFAPrApmF4j0QNDWeeaGy51C9/QQw2z671sgfdDmOwUbGmPp/bdyQ4SoThB7CEjy97PJ3LlfuvfA== + dependencies: + debug "^4.3.2" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -13435,6 +13487,14 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" +pmtiles@^3.0.3: + version "3.0.6" + resolved "https://registry.yarnpkg.com/pmtiles/-/pmtiles-3.0.6.tgz#6c331431e6ac08f0b01ba2a56bb8e4a97710ad95" + integrity sha512-IdeMETd5lBIDVTLul1HFl0Q7l4KLJjzdxgcp+sN7pYvbipaV7o/0u0HiV06kaFCD0IGEN8KtUHyFZpY30WMflw== + dependencies: + "@types/leaflet" "^1.9.8" + fflate "^0.8.0" + pngjs@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" @@ -13757,6 +13817,11 @@ postcss@^8.4.17, postcss@^8.4.19, postcss@^8.4.6: picocolors "^1.0.0" source-map-js "^1.0.2" +potpack@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.2.tgz#23b99e64eb74f5741ffe7656b5b5c4ddce8dfc14" + integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ== + prefixdown@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/prefixdown/-/prefixdown-1.4.0.tgz#b155a43f4e2d6f2dd709dab11105b643f31dd43f" @@ -13849,6 +13914,20 @@ protocol-buffers-schema@^3.3.1: resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== +protomaps-leaflet@^3.1.1, protomaps-leaflet@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/protomaps-leaflet/-/protomaps-leaflet-3.1.2.tgz#96c4be0d596f537e5163bba83e228c4f93004a25" + integrity sha512-0joP4mfZqlLY958oFBrpQpYdLkoz9dBpCB0HJtAyp18bA/+JM0Kdh/8NvbyUaLVS6vvLfPaKVnfmu9Yw2g1g8A== + dependencies: + "@mapbox/point-geometry" "^0.1.0" + "@mapbox/vector-tile" "^1.3.1" + "@types/css-font-loading-module" "^0.0.7" + color2k "^2.0.3" + pbf "^3.2.1" + pmtiles "^3.0.3" + potpack "^1.0.2" + rbush "^3.0.1" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"