New viewer [#49] (#549)

app: Rewrite of PMTiles viewer (pmtiles.io) [#49, #551, #555, #556]

* Rewrite the app using SolidJS / Tailwind.
* Make the map view mobile friendly.
* Add an archive inspector for viewing the low level structure of PMTiles.
* Add a tile inspector for viewing a single tile in isolation. 
* Support TileJSON.
* Support raster archives.
This commit is contained in:
Brandon Liu
2025-04-22 11:05:19 +08:00
committed by GitHub
parent c9b7f73f28
commit 731f03d325
34 changed files with 4786 additions and 4032 deletions

View File

@@ -2,52 +2,46 @@
"name": "pmtiles-app",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"preview": "vite preview",
"tsc": "tsc --watch",
"prettier": "prettier --write src/*",
"prettier-check": "prettier --check src/*"
"check": "biome check src --javascript-formatter-indent-style=space --json-formatter-indent-style=space",
"format": "biome format --write src --javascript-formatter-indent-style=space --json-formatter-indent-style=space"
},
"dependencies": {
"@mapbox/vector-tile": "^1.3.1",
"@radix-ui/react-dialog": "^0.1.7",
"@radix-ui/react-icons": "^1.1.0",
"@radix-ui/react-label": "^0.1.5",
"@radix-ui/react-toolbar": "^0.1.5",
"@stitches/react": "^1.2.8",
"@textea/json-viewer": "^2.11.2",
"d3-path": "^3.0.1",
"d3-scale-chromatic": "^3.0.0",
"fflate": "^0.7.3",
"maplibre-gl": "5.1.0",
"pbf": "^3.2.1",
"protomaps-themes-base": "4.4.0",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-dropzone": "^14.1.1",
"react-svg-pan-zoom": "^3.11.0",
"react-use": "^17.4.0"
"@alenaksu/json-viewer": "^2.1.2",
"@mapbox/sphericalmercator": "^2.0.1",
"@mapbox/vector-tile": "^2.0.3",
"@protomaps/basemaps": "5.2.0",
"d3-axis": "^3.0.0",
"d3-path": "^3.1.0",
"d3-scale": "^4.0.2",
"d3-scale-chromatic": "^3.1.0",
"d3-selection": "^3.0.0",
"d3-zoom": "^3.0.0",
"maplibre-gl": "5.3.0",
"pbf": "^4.0.1",
"pmtiles": "^4.3.0",
"solid-js": "^1.9.5"
},
"devDependencies": {
"@biomejs/biome": "^1.5.3",
"@biomejs/biome": "^1.9.4",
"@maplibre/maplibre-gl-style-spec": "^23.1.0",
"@types/d3-path": "^3.0.0",
"@types/d3-scale-chromatic": "^3.0.0",
"@types/leaflet": "^1.7.9",
"@types/mapbox__vector-tile": "^1.3.0",
"@types/pako": "^1.0.3",
"@types/pbf": "^3.0.2",
"@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0",
"@types/react-svg-pan-zoom": "^3.3.5",
"@vitejs/plugin-react": "^1.3.0",
"prettier": "^2.8.4",
"typescript": "^4.6.3",
"vite": "^6.2.4"
},
"overrides": {
"react": "$react",
"react-dom": "$react-dom"
"@tailwindcss/vite": "^4.1.3",
"@types/d3-axis": "^3.0.6",
"@types/d3-path": "^3.1.1",
"@types/d3-scale": "^4.0.9",
"@types/d3-scale-chromatic": "^3.1.0",
"@types/d3-selection": "^3.0.11",
"@types/d3-transition": "^3.0.9",
"@types/d3-zoom": "^3.0.8",
"@types/node": "^22.13.1",
"jsdom": "^26.0.0",
"tailwindcss": "^4.1.3",
"typescript": "^5.7.2",
"vite": "^6.2.6",
"vite-plugin-solid": "^2.11.6"
}
}