diff --git a/.github/actions/build-pmtiles-shard-final/action.yml b/.github/actions/build-pmtiles-shard-final/action.yml new file mode 100644 index 00000000..fb9428fd --- /dev/null +++ b/.github/actions/build-pmtiles-shard-final/action.yml @@ -0,0 +1,149 @@ +name: Build and publish final Occu-Med PMTiles shard +description: Reuses nonzero release assets and builds only genuinely missing canonical PMTiles archives. + +inputs: + id: { required: true } + slug: { required: true } + name: { required: true } + continent: { required: true } + pbf-url: { required: true } + extract-bbox: { required: false, default: '' } + west: { required: true } + south: { required: true } + east: { required: true } + north: { required: true } + asset-name: { required: true } + release-tag: { required: true } + +runs: + using: composite + steps: + - name: Reuse existing nonzero release asset + id: existing + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ inputs.release-tag }} + ASSET_NAME: ${{ inputs.asset-name }} + run: | + set -euo pipefail + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')" + assets_json="$(mktemp)" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > "$assets_json" + row="$( + jq -r --arg name "$ASSET_NAME" \ + '[.[][] | select(.name == $name)][0] | if . == null then "" else [.id, .name, .size] | @tsv end' \ + "$assets_json" + )" + rm -f "$assets_json" + asset_id="$(printf '%s' "$row" | cut -f1)" + asset_size="$(printf '%s' "$row" | cut -f3)" + if [ -n "$asset_id" ] && [ -n "$asset_size" ] && [ "$asset_size" -gt 0 ]; then + echo 'exists=true' >> "$GITHUB_OUTPUT" + echo "Reusing published asset: $ASSET_NAME ($asset_size bytes)" + else + echo 'exists=false' >> "$GITHUB_OUTPUT" + fi + + - name: Reclaim runner disk + if: steps.existing.outputs.exists != 'true' + shell: bash + run: | + sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc || true + docker system prune --all --force || true + df -h + + - name: Download and prepare OpenStreetMap shard + if: steps.existing.outputs.exists != 'true' + shell: bash + env: + EXTRACT_BBOX: ${{ inputs.extract-bbox }} + run: | + set -euo pipefail + mkdir -p .planetiler-data/tmp artifacts + target=".planetiler-data/${{ inputs.slug }}.osm.pbf" + if [ -n "$EXTRACT_BBOX" ]; then + source=".planetiler-data/${{ inputs.slug }}-source.osm.pbf" + curl --fail --location --retry 8 --retry-delay 10 --retry-all-errors \ + --output "$source" "${{ inputs.pbf-url }}" + sudo apt-get update + sudo apt-get install -y --no-install-recommends osmium-tool + osmium extract --bbox="$EXTRACT_BBOX" --strategy=complete_ways --overwrite \ + --output="$target" "$source" + rm -f "$source" + else + curl --fail --location --retry 8 --retry-delay 10 --retry-all-errors \ + --output "$target" "${{ inputs.pbf-url }}" + fi + test -s "$target" + + - name: Build and validate local PMTiles + if: steps.existing.outputs.exists != 'true' + shell: bash + env: + OCCUMED_TILE_AREA: ${{ inputs.slug }} + OCCUMED_OSM_PBF: ${{ github.workspace }}/.planetiler-data/${{ inputs.slug }}.osm.pbf + OCCUMED_PMTILES_OUTPUT: ${{ github.workspace }}/artifacts/${{ inputs.asset-name }} + OCCUMED_PLANETILER_DATA_DIR: ${{ github.workspace }}/.planetiler-data + OCCUMED_PLANETILER_MEMORY: 5g + run: | + set -euo pipefail + bash planetiler/build-region.sh + output="artifacts/${{ inputs.asset-name }}" + test -s "$output" + test "$(head -c 7 "$output")" = 'PMTiles' + size="$(stat --printf='%s' "$output")" + echo "archive_size_bytes=$size" + if [ "$size" -gt 2000000000 ]; then + echo "Archive exceeds GitHub Release safe file size: ${{ inputs.id }}" >&2 + exit 1 + fi + rm -f ".planetiler-data/${{ inputs.slug }}.osm.pbf" + + - name: Publish PMTiles archive + if: steps.existing.outputs.exists != 'true' + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ inputs.release-tag }} + ASSET_NAME: ${{ inputs.asset-name }} + run: | + set -euo pipefail + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')" + + lookup_size() { + local assets_json + assets_json="$(mktemp)" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > "$assets_json" + jq -r --arg name "$ASSET_NAME" \ + '[.[][] | select(.name == $name)][0] | if . == null then "" else (.size | tostring) end' \ + "$assets_json" + rm -f "$assets_json" + } + + uploaded=false + for attempt in 1 2 3 4 5; do + if gh release upload "$RELEASE_TAG" "artifacts/$ASSET_NAME" \ + --repo "$GITHUB_REPOSITORY"; then + uploaded=true + break + fi + size="$(lookup_size)" + if [ -n "$size" ] && [ "$size" -gt 0 ]; then + echo "Asset appeared during upload: $ASSET_NAME ($size bytes)" + uploaded=true + break + fi + sleep $((attempt * 10)) + done + + size="$(lookup_size)" + if [ "$uploaded" != true ] || [ -z "$size" ] || [ "$size" -le 0 ]; then + echo "Release asset is still missing after upload: $ASSET_NAME" >&2 + exit 1 + fi + echo "Published release asset: $ASSET_NAME ($size bytes)" diff --git a/.github/actions/build-pmtiles-shard/action.yml b/.github/actions/build-pmtiles-shard/action.yml new file mode 100644 index 00000000..8a7d2050 --- /dev/null +++ b/.github/actions/build-pmtiles-shard/action.yml @@ -0,0 +1,321 @@ +name: Build and publish Occu-Med PMTiles shard +description: Builds one Geofabrik leaf or bounded subdivision with the Occu-Med Planetiler schema and publishes it to a GitHub Release. + +inputs: + id: + required: true + description: Worldwide manifest region id + slug: + required: true + description: Filesystem-safe region slug + name: + required: true + description: Human-readable region name + continent: + required: true + description: Root Geofabrik region + pbf-url: + required: true + description: Source OSM PBF URL + extract-bbox: + required: false + default: '' + description: Optional west,south,east,north bbox extracted from the source PBF before Planetiler runs + west: + required: true + south: + required: true + east: + required: true + north: + required: true + asset-name: + required: true + metadata-name: + required: true + release-tag: + required: true + +runs: + using: composite + steps: + - name: Reuse an already-published healthy archive + id: existing + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ inputs.release-tag }} + ASSET_NAME: ${{ inputs.asset-name }} + run: | + set -euo pipefail + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')" + existing_id="$( + gh api --paginate \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + --jq '.[] | [.id, .name] | @tsv' | + awk -F '\t' -v name="$ASSET_NAME" '$2 == name { print $1; exit }' + )" + + if [ -z "$existing_id" ]; then + echo 'exists=false' >> "$GITHUB_OUTPUT" + exit 0 + fi + + mkdir -p artifacts + public_url="https://github.com/${GITHUB_REPOSITORY}/releases/download/${RELEASE_TAG}/${ASSET_NAME}" + api_url="https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${existing_id}" + verified=false + + for attempt in 1 2 3 4 5 6 7 8 9 10; do + rm -f artifacts/existing-range.headers.txt artifacts/existing-range.bin + cache_bust="$(date +%s)-${RANDOM}-${attempt}" + + if curl --silent --show-error --fail --location \ + --retry 3 --retry-delay 3 --retry-all-errors \ + --header 'Range: bytes=0-126' \ + --header 'Cache-Control: no-cache' \ + --dump-header artifacts/existing-range.headers.txt \ + --output artifacts/existing-range.bin \ + "${public_url}?verify=${cache_bust}" \ + && grep -Eiq '^HTTP/.* 206' artifacts/existing-range.headers.txt \ + && test "$(wc -c < artifacts/existing-range.bin)" -eq 127 \ + && test "$(head -c 7 artifacts/existing-range.bin)" = 'PMTiles'; then + verified=true + break + fi + + rm -f artifacts/existing-range.headers.txt artifacts/existing-range.bin + if curl --silent --show-error --fail --location \ + --retry 3 --retry-delay 3 --retry-all-errors \ + --header "Authorization: Bearer ${GH_TOKEN}" \ + --header 'Accept: application/octet-stream' \ + --header 'Range: bytes=0-126' \ + --header 'X-GitHub-Api-Version: 2022-11-28' \ + --dump-header artifacts/existing-range.headers.txt \ + --output artifacts/existing-range.bin \ + "$api_url" \ + && grep -Eiq '^HTTP/.* 206' artifacts/existing-range.headers.txt \ + && test "$(wc -c < artifacts/existing-range.bin)" -eq 127 \ + && test "$(head -c 7 artifacts/existing-range.bin)" = 'PMTiles'; then + verified=true + break + fi + + sleep $((attempt * 6)) + done + + if [ "$verified" = true ]; then + echo 'exists=true' >> "$GITHUB_OUTPUT" + echo "Reusing published healthy archive: $ASSET_NAME" + else + echo "Deleting unhealthy published archive before rebuild: $ASSET_NAME" + gh api --method DELETE "/repos/${GITHUB_REPOSITORY}/releases/assets/${existing_id}" + echo 'exists=false' >> "$GITHUB_OUTPUT" + fi + + - name: Reclaim runner disk + if: steps.existing.outputs.exists != 'true' + shell: bash + run: | + sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc || true + docker system prune --all --force || true + df -h + + - name: Download and prepare OpenStreetMap shard + if: steps.existing.outputs.exists != 'true' + shell: bash + env: + EXTRACT_BBOX: ${{ inputs.extract-bbox }} + run: | + mkdir -p .planetiler-data/tmp artifacts + target=".planetiler-data/${{ inputs.slug }}.osm.pbf" + if [ -n "$EXTRACT_BBOX" ]; then + source=".planetiler-data/${{ inputs.slug }}-source.osm.pbf" + curl --fail --location --retry 5 --retry-delay 10 --retry-all-errors \ + --output "$source" \ + "${{ inputs.pbf-url }}" + sudo apt-get update + sudo apt-get install -y --no-install-recommends osmium-tool + osmium extract \ + --bbox="$EXTRACT_BBOX" \ + --strategy=complete_ways \ + --overwrite \ + --output="$target" \ + "$source" + rm -f "$source" + else + curl --fail --location --retry 5 --retry-delay 10 --retry-all-errors \ + --output "$target" \ + "${{ inputs.pbf-url }}" + fi + test -s "$target" + ls -lh "$target" + + - name: Build Occu-Med PMTiles shard + if: steps.existing.outputs.exists != 'true' + shell: bash + env: + OCCUMED_TILE_AREA: ${{ inputs.slug }} + OCCUMED_OSM_PBF: ${{ github.workspace }}/.planetiler-data/${{ inputs.slug }}.osm.pbf + OCCUMED_PMTILES_OUTPUT: ${{ github.workspace }}/artifacts/${{ inputs.asset-name }} + OCCUMED_PLANETILER_DATA_DIR: ${{ github.workspace }}/.planetiler-data + OCCUMED_PLANETILER_MEMORY: 5g + run: | + bash planetiler/build-region.sh + rm -f ".planetiler-data/${{ inputs.slug }}.osm.pbf" + size="$(stat --printf='%s' "artifacts/${{ inputs.asset-name }}")" + echo "archive_size_bytes=$size" + if [ "$size" -gt 2000000000 ]; then + echo "Archive exceeds GitHub Release's safe per-file ceiling and must be subdivided: ${{ inputs.id }}" >&2 + exit 1 + fi + + - name: Write local shard metadata + if: steps.existing.outputs.exists != 'true' + shell: bash + env: + REGION_ID: ${{ inputs.id }} + REGION_SLUG: ${{ inputs.slug }} + REGION_NAME: ${{ inputs.name }} + REGION_CONTINENT: ${{ inputs.continent }} + PBF_URL: ${{ inputs.pbf-url }} + EXTRACT_BBOX: ${{ inputs.extract-bbox }} + WEST: ${{ inputs.west }} + SOUTH: ${{ inputs.south }} + EAST: ${{ inputs.east }} + NORTH: ${{ inputs.north }} + ASSET_NAME: ${{ inputs.asset-name }} + METADATA_NAME: ${{ inputs.metadata-name }} + run: | + node <<'NODE' + const fs = require('node:fs'); + const path = require('node:path'); + const metadata = { + id: process.env.REGION_ID, + slug: process.env.REGION_SLUG, + name: process.env.REGION_NAME, + continent: process.env.REGION_CONTINENT, + source: process.env.PBF_URL, + extractBbox: process.env.EXTRACT_BBOX || null, + bounds: [ + Number(process.env.WEST), + Number(process.env.SOUTH), + Number(process.env.EAST), + Number(process.env.NORTH) + ], + asset: process.env.ASSET_NAME, + profile: 'planetiler/occumed-basemap.yml', + commit: process.env.GITHUB_SHA, + builtAt: new Date().toISOString(), + sizeBytes: fs.statSync(path.join('artifacts', process.env.ASSET_NAME)).size + }; + fs.writeFileSync( + path.join('artifacts', process.env.METADATA_NAME), + `${JSON.stringify(metadata, null, 2)}\n` + ); + NODE + + - name: Publish PMTiles archive to GitHub Release + if: steps.existing.outputs.exists != 'true' + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ inputs.release-tag }} + ASSET_NAME: ${{ inputs.asset-name }} + run: | + set -euo pipefail + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')" + + for attempt in 1 2 3 4 5; do + if gh release upload "$RELEASE_TAG" \ + "artifacts/$ASSET_NAME" \ + --repo "$GITHUB_REPOSITORY"; then + echo "Published archive: $ASSET_NAME" + exit 0 + fi + + existing_id="$( + gh api --paginate \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + --jq '.[] | [.id, .name] | @tsv' | + awk -F '\t' -v name="$ASSET_NAME" '$2 == name { print $1; exit }' + )" + if [ -n "$existing_id" ]; then + echo "Archive appeared during upload; treating concurrent publication as success: $ASSET_NAME" + exit 0 + fi + + sleep $((attempt * 10)) + done + + echo "Unable to publish archive after retries: $ASSET_NAME" >&2 + exit 1 + + - name: Verify published PMTiles byte ranges + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ inputs.release-tag }} + ASSET_NAME: ${{ inputs.asset-name }} + run: | + set -euo pipefail + mkdir -p artifacts + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')" + public_url="https://github.com/${GITHUB_REPOSITORY}/releases/download/${RELEASE_TAG}/${ASSET_NAME}" + + for attempt in $(seq 1 20); do + asset_row="$( + gh api --paginate \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + --jq '.[] | [.id, .name, .size] | @tsv' | + awk -F '\t' -v name="$ASSET_NAME" '$2 == name { print; exit }' + )" + asset_id="$(printf '%s' "$asset_row" | cut -f1)" + asset_size="$(printf '%s' "$asset_row" | cut -f3)" + + if [ -z "$asset_id" ] || [ -z "$asset_size" ] || [ "$asset_size" -le 0 ]; then + echo "Waiting for release asset metadata: $ASSET_NAME (attempt $attempt/20)" + sleep $((attempt * 6)) + continue + fi + + rm -f artifacts/release-range.headers.txt artifacts/release-range.bin + cache_bust="$(date +%s)-${RANDOM}-${attempt}" + if curl --silent --show-error --fail --location \ + --retry 3 --retry-delay 3 --retry-all-errors \ + --header 'Range: bytes=0-126' \ + --header 'Cache-Control: no-cache' \ + --dump-header artifacts/release-range.headers.txt \ + --output artifacts/release-range.bin \ + "${public_url}?verify=${cache_bust}" \ + && grep -Eiq '^HTTP/.* 206' artifacts/release-range.headers.txt \ + && test "$(wc -c < artifacts/release-range.bin)" -eq 127 \ + && test "$(head -c 7 artifacts/release-range.bin)" = 'PMTiles'; then + echo "Verified public PMTiles byte range: $ASSET_NAME" + exit 0 + fi + + rm -f artifacts/release-range.headers.txt artifacts/release-range.bin + api_url="https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${asset_id}" + if curl --silent --show-error --fail --location \ + --retry 3 --retry-delay 3 --retry-all-errors \ + --header "Authorization: Bearer ${GH_TOKEN}" \ + --header 'Accept: application/octet-stream' \ + --header 'Range: bytes=0-126' \ + --header 'X-GitHub-Api-Version: 2022-11-28' \ + --dump-header artifacts/release-range.headers.txt \ + --output artifacts/release-range.bin \ + "$api_url" \ + && grep -Eiq '^HTTP/.* 206' artifacts/release-range.headers.txt \ + && test "$(wc -c < artifacts/release-range.bin)" -eq 127 \ + && test "$(head -c 7 artifacts/release-range.bin)" = 'PMTiles'; then + echo "Verified authenticated PMTiles byte range: $ASSET_NAME" + exit 0 + fi + + echo "Byte-range verification still propagating: $ASSET_NAME (attempt $attempt/20)" + sleep $((attempt * 6)) + done + + echo "Published archive did not pass public or authenticated byte-range verification: $ASSET_NAME" >&2 + exit 1 diff --git a/.github/workflows/audit-world-release-v2.yml b/.github/workflows/audit-world-release-v2.yml new file mode 100644 index 00000000..b4c2f0f4 --- /dev/null +++ b/.github/workflows/audit-world-release-v2.yml @@ -0,0 +1,169 @@ +name: Verify Final Worldwide PMTiles Release + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-release-audit-v2.trigger + +permissions: + contents: write + +concurrency: + group: occumed-world-pmtiles-final-audit + cancel-in-progress: true + +env: + WORLD_RELEASE_TAG: occumed-world-v1 + +jobs: + verify-release: + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Verify pinned inventory, manifest, and release metadata + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + rm -rf final-world-audit + mkdir -p final-world-audit/release + + node scripts/plan-world-shards-final.mjs > final-world-audit/pinned-plan.json + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > final-world-audit/release-pages.json + gh release download "$WORLD_RELEASE_TAG" \ + --repo "$GITHUB_REPOSITORY" \ + --pattern world-manifest.json \ + --dir final-world-audit/release + + node <<'NODE' + const fs = require('node:fs'); + + const plan = JSON.parse(fs.readFileSync('final-world-audit/pinned-plan.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('final-world-audit/release-pages.json', 'utf8')); + const manifest = JSON.parse(fs.readFileSync('final-world-audit/release/world-manifest.json', 'utf8')); + const regions = plan.include || []; + const assets = pages.flatMap((page) => page || []); + const byName = new Map(assets.map((asset) => [asset.name, asset])); + + const plannedNames = regions.map((region) => region.asset_name); + const plannedNameSet = new Set(plannedNames); + const plannedIds = regions.map((region) => region.id); + const plannedIdSet = new Set(plannedIds); + + if (!regions.length) throw new Error('Pinned plan is empty.'); + if (plannedNameSet.size !== plannedNames.length) throw new Error('Pinned plan has duplicate asset names.'); + if (plannedIdSet.size !== plannedIds.length) throw new Error('Pinned plan has duplicate IDs.'); + + const missing = regions.filter((region) => !byName.has(region.asset_name)); + const zeroSize = regions.filter((region) => Number(byName.get(region.asset_name)?.size || 0) <= 0); + const extras = assets.filter((asset) => asset.name.endsWith('.pmtiles') && !plannedNameSet.has(asset.name)); + + const manifestRegions = manifest.regions || []; + const manifestNames = manifestRegions.map((region) => region.asset); + const manifestNameSet = new Set(manifestNames); + const manifestIds = manifestRegions.map((region) => region.id); + const manifestIdSet = new Set(manifestIds); + const manifestById = new Map(manifestRegions.map((region) => [region.id, region])); + + const absentFromManifest = plannedNames.filter((name) => !manifestNameSet.has(name)); + const unexpectedInManifest = manifestNames.filter((name) => !plannedNameSet.has(name)); + const missingManifestIds = plannedIds.filter((id) => !manifestIdSet.has(id)); + const unexpectedManifestIds = manifestIds.filter((id) => !plannedIdSet.has(id)); + + const regionMismatches = []; + for (const planned of regions) { + const published = manifestById.get(planned.id); + if (!published) continue; + if (published.asset !== planned.asset_name) { + regionMismatches.push(`${planned.id}: asset=${published.asset}, expected=${planned.asset_name}`); + } + const expectedBounds = [planned.west, planned.south, planned.east, planned.north]; + const actualBounds = published.bounds || []; + if (JSON.stringify(actualBounds) !== JSON.stringify(expectedBounds)) { + regionMismatches.push(`${planned.id}: bounds=${JSON.stringify(actualBounds)}, expected=${JSON.stringify(expectedBounds)}`); + } + } + + const structuralErrors = []; + if (Number(manifest.missingRegionCount) !== 0) structuralErrors.push(`manifest missingRegionCount=${manifest.missingRegionCount}`); + if (Number(manifest.plannedRegionCount) !== regions.length) structuralErrors.push(`manifest plannedRegionCount=${manifest.plannedRegionCount}, expected=${regions.length}`); + if (Number(manifest.availableRegionCount) !== regions.length) structuralErrors.push(`manifest availableRegionCount=${manifest.availableRegionCount}, expected=${regions.length}`); + if (manifestRegions.length !== regions.length) structuralErrors.push(`manifest regions=${manifestRegions.length}, expected=${regions.length}`); + if (manifestNameSet.size !== manifestNames.length) structuralErrors.push('manifest contains duplicate assets'); + if (manifestIdSet.size !== manifestIds.length) structuralErrors.push('manifest contains duplicate IDs'); + if ((manifest.missingRegions || []).length !== 0) structuralErrors.push('manifest missingRegions is not empty'); + + const summary = { + capturedAt: new Date().toISOString(), + releaseTag: process.env.WORLD_RELEASE_TAG, + pinnedCanonicalShardCount: regions.length, + releaseAssetCount: assets.length, + publishedCanonicalCount: regions.length - missing.length, + missingCanonicalCount: missing.length, + zeroSizeCanonicalCount: zeroSize.length, + extraPmtilesAssetCount: extras.length, + manifestMissingRegionCount: Number(manifest.missingRegionCount), + manifestPlannedRegionCount: Number(manifest.plannedRegionCount), + manifestAvailableRegionCount: Number(manifest.availableRegionCount), + manifestRegionCount: manifestRegions.length, + absentFromManifest, + unexpectedInManifest, + missingManifestIds, + unexpectedManifestIds, + regionMismatches, + structuralErrors, + missing: missing.map((region) => ({ id: region.id, asset: region.asset_name })), + zeroSize: zeroSize.map((region) => ({ id: region.id, asset: region.asset_name })), + extraPmtilesAssets: extras.map((asset) => ({ name: asset.name, size: Number(asset.size || 0) })), + binaryRangeAndRenderValidation: 'deferred_to_fresno_runtime_browser_validation', + passed: + missing.length === 0 && + zeroSize.length === 0 && + extras.length === 0 && + absentFromManifest.length === 0 && + unexpectedInManifest.length === 0 && + missingManifestIds.length === 0 && + unexpectedManifestIds.length === 0 && + regionMismatches.length === 0 && + structuralErrors.length === 0 + }; + + fs.writeFileSync('final-world-audit/final-verification.json', `${JSON.stringify(summary, null, 2)}\n`); + console.log(JSON.stringify(summary, null, 2)); + if (!summary.passed) process.exit(1); + NODE + + - name: Commit authoritative final audit + run: | + set -euo pipefail + mkdir -p diagnostics/world-release-audit + cp final-world-audit/final-verification.json diagnostics/world-release-audit/final-verification.json + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-release-audit/final-verification.json + git diff --cached --quiet && exit 0 + git commit -m "Verify final worldwide PMTiles release" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap + + - uses: actions/upload-artifact@v4 + with: + name: occumed-final-world-release-audit-${{ github.sha }} + path: final-world-audit + if-no-files-found: error + retention-days: 30 diff --git a/.github/workflows/audit-world-release.yml b/.github/workflows/audit-world-release.yml new file mode 100644 index 00000000..738c4c40 --- /dev/null +++ b/.github/workflows/audit-world-release.yml @@ -0,0 +1,254 @@ +name: Audit Published Worldwide Occu-Med PMTiles + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-release-audit.trigger + +permissions: + contents: write + +concurrency: + group: occumed-world-pmtiles-missing-repair + cancel-in-progress: true + +env: + WORLD_RELEASE_TAG: occumed-world-v1 + OCCUMED_DIRECT_PBF_LIMIT_BYTES: 400000000 + OCCUMED_TARGET_SPLIT_PBF_BYTES: 250000000 + OCCUMED_MAX_SPLIT_CELLS: 24 + +jobs: + audit-release: + runs-on: macos-latest + timeout-minutes: 45 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Build authoritative canonical plan + run: | + set -euo pipefail + rm -rf world-release-audit + mkdir -p world-release-audit/verification + node scripts/plan-world-shards.mjs --scope all > world-release-audit/raw-world-plan.json + + node <<'NODE' + const fs = require('node:fs'); + const input = JSON.parse(fs.readFileSync('world-release-audit/raw-world-plan.json', 'utf8')); + const excluded = new Set([ + 'alps', 'britain-and-ireland', 'dach', 'great-britain', 'sea', + 'south-africa-and-lesotho', 'us', 'us-midwest', 'us-northeast', + 'us-pacific', 'us-south', 'us-west' + ]); + const include = input.include.filter((region) => + !excluded.has(region.id) && !excluded.has(region.source_region_id) + ); + const ids = include.map((region) => region.id); + const assets = include.map((region) => region.asset_name); + if (!include.length) throw new Error('Canonical worldwide plan is empty.'); + if (new Set(ids).size !== ids.length) throw new Error('Canonical plan contains duplicate IDs.'); + if (new Set(assets).size !== assets.length) throw new Error('Canonical plan contains duplicate asset names.'); + if (include.some((region) => region.source_size_bytes > 400000000 && !region.extract_bbox)) { + throw new Error('An oversized source remains unsplit.'); + } + fs.writeFileSync( + 'world-release-audit/canonical-world-plan.json', + `${JSON.stringify({ ...input, canonical: true, excludedSourceRegions: [...excluded], include }, null, 2)}\n` + ); + console.log(`Authoritative canonical plan contains ${include.length} shards.`); + NODE + + - name: Inventory every paginated release asset + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > world-release-audit/release-asset-pages.json + + node <<'NODE' + const fs = require('node:fs'); + const pages = JSON.parse(fs.readFileSync('world-release-audit/release-asset-pages.json', 'utf8')); + const assets = pages.flatMap((page) => page || []); + fs.writeFileSync( + 'world-release-audit/release-assets.json', + `${JSON.stringify({ assets }, null, 2)}\n` + ); + const plan = JSON.parse(fs.readFileSync('world-release-audit/canonical-world-plan.json', 'utf8')); + const byName = new Map(assets.map((asset) => [asset.name, asset])); + const present = plan.include.filter((region) => byName.has(region.asset_name)); + const missing = plan.include.filter((region) => !byName.has(region.asset_name)); + fs.writeFileSync( + 'world-release-audit/present-assets.tsv', + present.map((region) => { + const asset = byName.get(region.asset_name); + return [region.id, region.asset_name, asset.id, asset.size, asset.updated_at].join('\t'); + }).join('\n') + (present.length ? '\n' : '') + ); + fs.writeFileSync( + 'world-release-audit/missing-assets.json', + `${JSON.stringify(missing, null, 2)}\n` + ); + console.log(`Release has ${assets.length} total assets.`); + console.log(`Canonical assets present by name: ${present.length}.`); + console.log(`Canonical assets missing by name: ${missing.length}.`); + NODE + + - name: Verify every published canonical PMTiles archive + run: | + set -euo pipefail + export GITHUB_REPOSITORY WORLD_RELEASE_TAG + + verify_asset() { + line="$1" + region_id="$(printf '%s' "$line" | cut -f1)" + asset_name="$(printf '%s' "$line" | cut -f2)" + api_size="$(printf '%s' "$line" | cut -f4)" + result="world-release-audit/verification/${region_id}.json" + headers="$(mktemp)" + body="$(mktemp)" + url="https://github.com/${GITHUB_REPOSITORY}/releases/download/${WORLD_RELEASE_TAG}/${asset_name}" + healthy=false + reason="unknown" + http_status="" + body_size=0 + magic="" + + if [ "$api_size" -le 0 ]; then + reason="zero_size_asset" + elif curl --silent --show-error --fail --location \ + --retry 5 --retry-delay 3 --retry-all-errors \ + --header 'Range: bytes=0-126' \ + --dump-header "$headers" \ + --output "$body" \ + "$url"; then + http_status="$(awk '/^HTTP\// {code=$2} END {print code}' "$headers")" + body_size="$(wc -c < "$body" | tr -d ' ')" + magic="$(head -c 7 "$body" || true)" + if [ "$http_status" = "206" ] && [ "$body_size" -eq 127 ] && [ "$magic" = "PMTiles" ]; then + healthy=true + reason="ok" + elif [ "$http_status" != "206" ]; then + reason="range_not_supported" + elif [ "$body_size" -ne 127 ]; then + reason="wrong_range_length" + else + reason="invalid_pmtiles_magic" + fi + else + reason="download_failed" + fi + + node - "$region_id" "$asset_name" "$api_size" "$healthy" "$reason" "$http_status" "$body_size" "$magic" "$result" <<'NODE' + const fs = require('node:fs'); + const [regionId, assetName, apiSize, healthy, reason, httpStatus, bodySize, magic, result] = process.argv.slice(2); + fs.writeFileSync(result, `${JSON.stringify({ + regionId, + assetName, + apiSizeBytes: Number(apiSize), + healthy: healthy === 'true', + reason, + httpStatus: httpStatus ? Number(httpStatus) : null, + returnedBytes: Number(bodySize), + magic + }, null, 2)}\n`); + NODE + rm -f "$headers" "$body" + } + export -f verify_asset + + if [ -s world-release-audit/present-assets.tsv ]; then + cat world-release-audit/present-assets.tsv | xargs -P 12 -I {} bash -c 'verify_asset "$1"' _ "{}" + fi + + - name: Produce published-state assessment and repair target list + run: | + set -euo pipefail + node <<'NODE' + const fs = require('node:fs'); + const path = require('node:path'); + const plan = JSON.parse(fs.readFileSync('world-release-audit/canonical-world-plan.json', 'utf8')); + const release = JSON.parse(fs.readFileSync('world-release-audit/release-assets.json', 'utf8')); + const missing = JSON.parse(fs.readFileSync('world-release-audit/missing-assets.json', 'utf8')); + const verificationDir = 'world-release-audit/verification'; + const verification = fs.existsSync(verificationDir) + ? fs.readdirSync(verificationDir) + .filter((name) => name.endsWith('.json')) + .map((name) => JSON.parse(fs.readFileSync(path.join(verificationDir, name), 'utf8'))) + : []; + const healthyIds = new Set(verification.filter((item) => item.healthy).map((item) => item.regionId)); + const invalid = verification.filter((item) => !item.healthy); + const missingIds = new Set(missing.map((region) => region.id)); + const repairTargets = plan.include.filter((region) => missingIds.has(region.id) || !healthyIds.has(region.id)); + const canonicalAssetNames = new Set(plan.include.map((region) => region.asset_name)); + const extraPmtilesAssets = release.assets + .filter((asset) => asset.name.endsWith('.pmtiles') && !canonicalAssetNames.has(asset.name)) + .map((asset) => ({ id: asset.id, name: asset.name, size: asset.size, updatedAt: asset.updated_at })); + const summary = { + capturedAt: new Date().toISOString(), + releaseTag: process.env.WORLD_RELEASE_TAG, + canonicalShardCount: plan.include.length, + totalReleaseAssetCount: release.assets.length, + publishedCanonicalAssetCount: verification.length, + healthyPublishedCanonicalCount: verification.length - invalid.length, + invalidPublishedCanonicalCount: invalid.length, + missingCanonicalCount: missing.length, + repairTargetCount: repairTargets.length, + extraPmtilesAssetCount: extraPmtilesAssets.length, + invalidPublishedAssets: invalid, + missingRegions: missing.map((region) => ({ id: region.id, asset: region.asset_name })), + extraPmtilesAssets + }; + fs.writeFileSync( + 'world-release-audit/published-state-summary.json', + `${JSON.stringify(summary, null, 2)}\n` + ); + fs.writeFileSync( + 'world-release-audit/repair-targets.json', + `${JSON.stringify({ ...plan, include: repairTargets }, null, 2)}\n` + ); + console.log(JSON.stringify({ + canonical: summary.canonicalShardCount, + publishedByName: summary.publishedCanonicalAssetCount, + healthy: summary.healthyPublishedCanonicalCount, + invalid: summary.invalidPublishedCanonicalCount, + missing: summary.missingCanonicalCount, + repairTargets: summary.repairTargetCount, + extraPmtilesAssets: summary.extraPmtilesAssetCount + }, null, 2)); + NODE + + - name: Commit the release audit + run: | + set -euo pipefail + mkdir -p diagnostics/world-release-audit + cp world-release-audit/published-state-summary.json diagnostics/world-release-audit/published-state-summary.json + cp world-release-audit/repair-targets.json diagnostics/world-release-audit/repair-targets.json + cp world-release-audit/canonical-world-plan.json diagnostics/world-release-audit/canonical-world-plan.json + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-release-audit + git diff --cached --quiet && exit 0 + git commit -m "Audit published worldwide PMTiles release state" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap + + - name: Preserve complete release audit + uses: actions/upload-artifact@v4 + with: + name: occumed-world-release-audit-${{ github.sha }} + path: world-release-audit + if-no-files-found: error + retention-days: 30 diff --git a/.github/workflows/build-fresno-pmtiles.yml b/.github/workflows/build-fresno-pmtiles.yml new file mode 100644 index 00000000..973f3f67 --- /dev/null +++ b/.github/workflows/build-fresno-pmtiles.yml @@ -0,0 +1,10 @@ +name: Build Fresno Occu-Med PMTiles + +on: + workflow_dispatch: + +jobs: + manual-only: + runs-on: ubuntu-latest + steps: + - run: echo "Automatic Fresno builds are paused while the worldwide PMTiles release is completed." diff --git a/.github/workflows/build-world-pmtiles.yml b/.github/workflows/build-world-pmtiles.yml new file mode 100644 index 00000000..0c4ec7b7 --- /dev/null +++ b/.github/workflows/build-world-pmtiles.yml @@ -0,0 +1,10 @@ +name: Build Worldwide Occu-Med PMTiles + +on: + workflow_dispatch: + +jobs: + manual-only: + runs-on: ubuntu-latest + steps: + - run: echo "Automatic worldwide builds are paused. Use the dedicated missing-only completion workflow." diff --git a/.github/workflows/capture-fresno-world-validation-failure.yml b/.github/workflows/capture-fresno-world-validation-failure.yml new file mode 100644 index 00000000..500efd68 --- /dev/null +++ b/.github/workflows/capture-fresno-world-validation-failure.yml @@ -0,0 +1,54 @@ +name: Capture Fresno world validation failure + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/fresno-world-render/log-capture.trigger + +permissions: + actions: read + contents: write + +concurrency: + group: occumed-fresno-world-validation-log-capture + cancel-in-progress: true + +jobs: + capture: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - name: Capture latest Fresno validation run and failed logs + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + mkdir -p diagnostics/fresno-world-render + + run_json="$(gh api "/repos/${GITHUB_REPOSITORY}/actions/workflows/revalidate-fresno-render.yml/runs?branch=feat%2Fcustom-planetiler-pmtiles-basemap&per_page=20")" + printf '%s\n' "$run_json" > /tmp/fresno-runs.json + run_id="$(node -e "const d=require('/tmp/fresno-runs.json'); const r=d.workflow_runs.find(x=>x.head_sha==='57c62208e29d320f94be1feb438a547d33ff9c39') || d.workflow_runs[0]; if(!r) process.exit(1); process.stdout.write(String(r.id));")" + + gh api "/repos/${GITHUB_REPOSITORY}/actions/runs/${run_id}" > diagnostics/fresno-world-render/latest-run.json + gh api "/repos/${GITHUB_REPOSITORY}/actions/runs/${run_id}/jobs?per_page=100" > diagnostics/fresno-world-render/latest-jobs.json + gh run view "$run_id" --repo "$GITHUB_REPOSITORY" --log-failed > diagnostics/fresno-world-render/latest-failure.log 2>&1 || true + + if [ ! -s diagnostics/fresno-world-render/latest-failure.log ]; then + gh run view "$run_id" --repo "$GITHUB_REPOSITORY" --log > diagnostics/fresno-world-render/latest-failure.log 2>&1 || true + fi + + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/fresno-world-render/latest-run.json diagnostics/fresno-world-render/latest-jobs.json diagnostics/fresno-world-render/latest-failure.log + git diff --cached --quiet && exit 0 + git commit -m "Capture final Fresno world validation failure" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap diff --git a/.github/workflows/clean-world-release.yml b/.github/workflows/clean-world-release.yml new file mode 100644 index 00000000..a8e88e78 --- /dev/null +++ b/.github/workflows/clean-world-release.yml @@ -0,0 +1,216 @@ +name: Clean Worldwide Occu-Med PMTiles Release + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-release-cleanup.trigger + +permissions: + contents: write + +concurrency: + group: occumed-world-pmtiles-release-cleanup + cancel-in-progress: false + +env: + WORLD_RELEASE_TAG: occumed-world-v1 + OCCUMED_DIRECT_PBF_LIMIT_BYTES: 400000000 + OCCUMED_TARGET_SPLIT_PBF_BYTES: 250000000 + OCCUMED_MAX_SPLIT_CELLS: 24 + +jobs: + audit-and-clean: + runs-on: ubuntu-latest + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Build authoritative plan and classify release assets + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + rm -rf release-cleanup + mkdir -p release-cleanup + node scripts/plan-world-shards.mjs --scope all > release-cleanup/raw-world-plan.json + + node <<'NODE' + const fs = require('node:fs'); + const input = JSON.parse(fs.readFileSync('release-cleanup/raw-world-plan.json', 'utf8')); + const excluded = new Set([ + 'alps', 'britain-and-ireland', 'dach', 'great-britain', 'sea', + 'south-africa-and-lesotho', 'us', 'us-midwest', 'us-northeast', + 'us-pacific', 'us-south', 'us-west' + ]); + const include = input.include.filter((region) => + !excluded.has(region.id) && !excluded.has(region.source_region_id) + ); + if (include.length !== 724) { + throw new Error(`Expected 724 canonical shards, found ${include.length}.`); + } + const ids = include.map((region) => region.id); + const assets = include.map((region) => region.asset_name); + if (new Set(ids).size !== ids.length) throw new Error('Canonical plan contains duplicate IDs.'); + if (new Set(assets).size !== assets.length) throw new Error('Canonical plan contains duplicate asset names.'); + fs.writeFileSync( + 'release-cleanup/canonical-world-plan.json', + `${JSON.stringify({ ...input, canonical: true, excludedSourceRegions: [...excluded], include }, null, 2)}\n` + ); + NODE + + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + printf '%s\n' "$release_id" > release-cleanup/release-id.txt + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > release-cleanup/release-asset-pages-before.json + + node <<'NODE' + const fs = require('node:fs'); + const plan = JSON.parse(fs.readFileSync('release-cleanup/canonical-world-plan.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('release-cleanup/release-asset-pages-before.json', 'utf8')); + const releaseAssets = pages.flatMap((page) => page || []); + const canonicalNames = new Set(plan.include.map((region) => region.asset_name)); + const retained = releaseAssets.filter((asset) => canonicalNames.has(asset.name) && asset.size > 0); + const deleteTargets = releaseAssets + .filter((asset) => !canonicalNames.has(asset.name) || asset.size <= 0) + .map((asset) => ({ + id: asset.id, + name: asset.name, + sizeBytes: asset.size, + reason: canonicalNames.has(asset.name) + ? 'zero_size_canonical_pmtiles' + : (asset.name.endsWith('.pmtiles') ? 'noncanonical_pmtiles' : 'noncanonical_release_asset') + })); + fs.writeFileSync( + 'release-cleanup/release-assets-before.json', + `${JSON.stringify({ assets: releaseAssets }, null, 2)}\n` + ); + fs.writeFileSync( + 'release-cleanup/delete-targets.json', + `${JSON.stringify(deleteTargets, null, 2)}\n` + ); + fs.writeFileSync( + 'release-cleanup/delete-ids.txt', + deleteTargets.map((asset) => String(asset.id)).join('\n') + (deleteTargets.length ? '\n' : '') + ); + const summary = { + capturedAt: new Date().toISOString(), + canonicalShardCount: plan.include.length, + releaseAssetCountBefore: releaseAssets.length, + retainedCanonicalNonzeroCount: retained.length, + deleteTargetCount: deleteTargets.length, + deleteReasonCounts: deleteTargets.reduce((counts, item) => { + counts[item.reason] = (counts[item.reason] || 0) + 1; + return counts; + }, {}) + }; + fs.writeFileSync( + 'release-cleanup/pre-cleanup-summary.json', + `${JSON.stringify(summary, null, 2)}\n` + ); + console.log(JSON.stringify(summary, null, 2)); + NODE + + - name: Delete noncanonical and zero-byte release assets + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + delete_asset() { + asset_id="$1" + for attempt in 1 2 3 4 5; do + if gh api --method DELETE "/repos/${GITHUB_REPOSITORY}/releases/assets/${asset_id}"; then + exit 0 + fi + sleep $((attempt * 5)) + done + echo "Unable to delete release asset ${asset_id}." >&2 + exit 1 + } + export -f delete_asset + if [ -s release-cleanup/delete-ids.txt ]; then + xargs -P 8 -n 1 bash -c 'delete_asset "$1"' _ < release-cleanup/delete-ids.txt + fi + + - name: Verify exact post-cleanup state + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + release_id="$(cat release-cleanup/release-id.txt)" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > release-cleanup/release-asset-pages-after.json + + node <<'NODE' + const fs = require('node:fs'); + const plan = JSON.parse(fs.readFileSync('release-cleanup/canonical-world-plan.json', 'utf8')); + const before = JSON.parse(fs.readFileSync('release-cleanup/pre-cleanup-summary.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('release-cleanup/release-asset-pages-after.json', 'utf8')); + const assets = pages.flatMap((page) => page || []); + const canonicalNames = new Set(plan.include.map((region) => region.asset_name)); + const unexpected = assets.filter((asset) => !canonicalNames.has(asset.name) || asset.size <= 0); + if (unexpected.length) { + throw new Error(`Cleanup left ${unexpected.length} unexpected or zero-byte release assets.`); + } + const remainingNames = new Set(assets.map((asset) => asset.name)); + const missing = plan.include.filter((region) => !remainingNames.has(region.asset_name)); + const summary = { + capturedAt: new Date().toISOString(), + releaseTag: process.env.WORLD_RELEASE_TAG, + canonicalShardCount: plan.include.length, + releaseAssetCountBefore: before.releaseAssetCountBefore, + deletedAssetCount: before.deleteTargetCount, + retainedCanonicalCount: assets.length, + missingCanonicalCount: missing.length, + remainingReleaseCapacity: 1000 - assets.length, + requiredSlotsForMissingPlusManifest: missing.length + 1, + capacityReady: missing.length + 1 <= 1000 - assets.length, + missingRegions: missing.map((region) => ({ id: region.id, asset: region.asset_name })) + }; + if (!summary.capacityReady) { + throw new Error('Post-cleanup release still lacks capacity for missing shards and the final manifest.'); + } + fs.writeFileSync( + 'release-cleanup/post-cleanup-summary.json', + `${JSON.stringify(summary, null, 2)}\n` + ); + fs.writeFileSync( + 'release-cleanup/missing-only-plan.json', + `${JSON.stringify({ ...plan, include: missing }, null, 2)}\n` + ); + console.log(JSON.stringify(summary, null, 2)); + NODE + + - name: Commit exact cleanup assessment + run: | + set -euo pipefail + mkdir -p diagnostics/world-release-cleanup + cp release-cleanup/post-cleanup-summary.json diagnostics/world-release-cleanup/post-cleanup-summary.json + cp release-cleanup/missing-only-plan.json diagnostics/world-release-cleanup/missing-only-plan.json + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-release-cleanup + git diff --cached --quiet && exit 0 + git commit -m "Clean worldwide PMTiles release inventory" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap + + - name: Preserve full cleanup audit + if: always() + uses: actions/upload-artifact@v4 + with: + name: occumed-world-release-cleanup-${{ github.sha }} + path: release-cleanup + if-no-files-found: error + retention-days: 30 diff --git a/.github/workflows/finish-world-pmtiles.yml b/.github/workflows/finish-world-pmtiles.yml new file mode 100644 index 00000000..6a0e5fc8 --- /dev/null +++ b/.github/workflows/finish-world-pmtiles.yml @@ -0,0 +1,167 @@ +name: Finish Worldwide Occu-Med PMTiles + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - planetiler/world-finish.trigger + +permissions: + contents: write + +concurrency: + group: occumed-world-pmtiles-finish + cancel-in-progress: true + +env: + WORLD_RELEASE_TAG: occumed-world-v1 + OCCUMED_DIRECT_PBF_LIMIT_BYTES: 400000000 + OCCUMED_TARGET_SPLIT_PBF_BYTES: 250000000 + OCCUMED_MAX_SPLIT_CELLS: 24 + +jobs: + plan: + runs-on: ubuntu-latest + timeout-minutes: 30 + outputs: + matrix: ${{ steps.plan.outputs.matrix }} + missing_count: ${{ steps.plan.outputs.missing_count }} + published_count: ${{ steps.plan.outputs.published_count }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 24 + - name: Generate exact missing-only matrix + id: plan + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + mkdir -p world-plan + node scripts/plan-world-shards.mjs --scope all > world-plan/raw-world-plan.json + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > world-plan/release-asset-pages.json + node <<'NODE' + const fs = require('node:fs'); + const input = JSON.parse(fs.readFileSync('world-plan/raw-world-plan.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('world-plan/release-asset-pages.json', 'utf8')); + const releaseAssets = pages.flatMap((page) => page || []); + const byName = new Map(releaseAssets.map((asset) => [asset.name, asset])); + const excluded = new Set([ + 'alps', 'britain-and-ireland', 'dach', 'great-britain', 'sea', + 'south-africa-and-lesotho', 'us', 'us-midwest', 'us-northeast', + 'us-pacific', 'us-south', 'us-west' + ]); + const include = input.include.filter((region) => + !excluded.has(region.id) && !excluded.has(region.source_region_id) + ); + const missing = include.filter((region) => { + const asset = byName.get(region.asset_name); + return !asset || Number(asset.size || 0) <= 0; + }); + const fullPlan = { + ...input, + generatedAt: new Date().toISOString(), + canonical: true, + excludedSourceRegions: [...excluded], + include + }; + fs.writeFileSync('world-plan/world-plan.json', `${JSON.stringify(fullPlan, null, 2)}\n`); + fs.writeFileSync('world-plan/missing-world-plan.json', `${JSON.stringify({ ...fullPlan, include: missing }, null, 2)}\n`); + const matrixInclude = missing.length ? missing : [{ + skip: true, + id: 'nothing-missing', + slug: 'nothing-missing', + name: 'Nothing missing', + continent: 'none', + pbf_url: 'https://example.invalid/nothing.osm.pbf', + extract_bbox: '', + west: 0, south: 0, east: 0, north: 0, + asset_name: 'nothing-missing.pmtiles' + }]; + fs.appendFileSync(process.env.GITHUB_OUTPUT, `matrix=${JSON.stringify({ include: matrixInclude })}\n`); + fs.appendFileSync(process.env.GITHUB_OUTPUT, `missing_count=${missing.length}\n`); + fs.appendFileSync(process.env.GITHUB_OUTPUT, `published_count=${include.length - missing.length}\n`); + console.log(`Canonical plan: ${include.length}`); + console.log(`Already published: ${include.length - missing.length}`); + console.log(`Missing and scheduled: ${missing.length}`); + NODE + - uses: actions/upload-artifact@v4 + with: + name: occumed-final-world-plan-${{ github.sha }} + path: world-plan/world-plan.json + if-no-files-found: error + retention-days: 7 + + build: + needs: plan + runs-on: ubuntu-latest + timeout-minutes: 360 + strategy: + fail-fast: false + max-parallel: 10 + matrix: ${{ fromJson(needs.plan.outputs.matrix) }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-pmtiles-shard-final + if: matrix.skip != true + with: + id: ${{ matrix.id }} + slug: ${{ matrix.slug }} + name: ${{ matrix.name }} + continent: ${{ matrix.continent }} + pbf-url: ${{ matrix.pbf_url }} + extract-bbox: ${{ matrix.extract_bbox }} + west: ${{ matrix.west }} + south: ${{ matrix.south }} + east: ${{ matrix.east }} + north: ${{ matrix.north }} + asset-name: ${{ matrix.asset_name }} + release-tag: ${{ env.WORLD_RELEASE_TAG }} + + publish-manifest: + if: always() && needs.plan.result == 'success' + needs: + - plan + - build + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 24 + - uses: actions/download-artifact@v4 + with: + name: occumed-final-world-plan-${{ github.sha }} + path: world-plan + - name: Build manifest from release inventory + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + mkdir -p world-release + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > world-release/asset-pages.json + node scripts/build-world-manifest.mjs \ + --plan world-plan/world-plan.json \ + --asset-pages world-release/asset-pages.json \ + --output world-release/world-manifest.json + missing="$(node -e "const m=require('./world-release/world-manifest.json'); process.stdout.write(String(m.missingRegions?.length ?? -1))")" + echo "missing_shards=$missing" + if [ "$missing" != "0" ]; then + exit 1 + fi + - name: Publish final worldwide manifest + env: + GH_TOKEN: ${{ github.token }} + run: | + gh release upload "$WORLD_RELEASE_TAG" world-release/world-manifest.json \ + --repo "$GITHUB_REPOSITORY" --clobber diff --git a/.github/workflows/instant-world-status.yml b/.github/workflows/instant-world-status.yml new file mode 100644 index 00000000..5dbf4058 --- /dev/null +++ b/.github/workflows/instant-world-status.yml @@ -0,0 +1,102 @@ +name: Instant Worldwide PMTiles Status + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-instant-status.trigger + +permissions: + actions: read + contents: write + +concurrency: + group: occumed-world-pmtiles-instant-status + cancel-in-progress: true + +jobs: + status: + runs-on: windows-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - name: Query repair and release state + shell: pwsh + env: + GH_TOKEN: ${{ github.token }} + WORLD_RELEASE_TAG: occumed-world-v1 + run: | + $ErrorActionPreference = 'Stop' + New-Item -ItemType Directory -Force -Path diagnostics | Out-Null + + gh api "/repos/$env:GITHUB_REPOSITORY/actions/workflows/repair-missing-world-pmtiles.yml/runs?branch=feat%2Fcustom-planetiler-pmtiles-basemap&event=push&per_page=10" | Out-File -Encoding utf8 $env:RUNNER_TEMP/repair-runs.json + $runPayload = Get-Content $env:RUNNER_TEMP/repair-runs.json -Raw | ConvertFrom-Json + $run = $runPayload.workflow_runs | Select-Object -First 1 + + $jobs = @() + if ($null -ne $run) { + gh api --paginate --slurp "/repos/$env:GITHUB_REPOSITORY/actions/runs/$($run.id)/jobs?per_page=100" | Out-File -Encoding utf8 $env:RUNNER_TEMP/job-pages.json + $jobPages = Get-Content $env:RUNNER_TEMP/job-pages.json -Raw | ConvertFrom-Json + $jobs = @($jobPages | ForEach-Object { $_.jobs } | Where-Object { $null -ne $_ }) + } + + $release = gh api "/repos/$env:GITHUB_REPOSITORY/releases/tags/$env:WORLD_RELEASE_TAG" | ConvertFrom-Json + gh api --paginate --slurp "/repos/$env:GITHUB_REPOSITORY/releases/$($release.id)/assets?per_page=100" | Out-File -Encoding utf8 $env:RUNNER_TEMP/asset-pages.json + $assetPages = Get-Content $env:RUNNER_TEMP/asset-pages.json -Raw | ConvertFrom-Json + $assets = @($assetPages | ForEach-Object { $_ } | Where-Object { $null -ne $_ }) + + $builds = @($jobs | Where-Object { $_.name -like 'build-bucket-*' }) + $plan = $jobs | Where-Object { $_.name -eq 'plan-missing' } | Select-Object -First 1 + $manifest = $jobs | Where-Object { $_.name -eq 'publish-world-manifest' } | Select-Object -First 1 + $failures = @($builds | Where-Object { $_.conclusion -eq 'failure' } | ForEach-Object { + [ordered]@{ id = $_.id; name = $_.name } + }) + + $status = [ordered]@{ + capturedAt = (Get-Date).ToUniversalTime().ToString('o') + repair = if ($null -ne $run) { [ordered]@{ + id = [string]$run.id + url = $run.html_url + status = $run.status + conclusion = $run.conclusion + headSha = $run.head_sha + createdAt = $run.created_at + updatedAt = $run.updated_at + }} else { $null } + planStatus = $plan.status + planConclusion = $plan.conclusion + totalBuildJobsObserved = $builds.Count + successfulBuildJobs = @($builds | Where-Object { $_.conclusion -eq 'success' }).Count + failedBuildJobs = $failures.Count + inProgressBuildJobs = @($builds | Where-Object { $_.status -eq 'in_progress' }).Count + queuedBuildJobs = @($builds | Where-Object { $_.status -eq 'queued' }).Count + cancelledBuildJobs = @($builds | Where-Object { $_.conclusion -eq 'cancelled' }).Count + manifestStatus = $manifest.status + manifestConclusion = $manifest.conclusion + totalReleaseAssetCount = $assets.Count + totalReleasePmtilesCount = @($assets | Where-Object { $_.name -like '*.pmtiles' }).Count + remainingReleaseCapacity = 1000 - $assets.Count + failures = $failures + } + + $status | ConvertTo-Json -Depth 8 | Out-File -Encoding utf8 diagnostics/world-instant-status.json + Get-Content diagnostics/world-instant-status.json + + - name: Commit live status + shell: pwsh + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-instant-status.json + git diff --cached --quiet + if ($LASTEXITCODE -ne 0) { + git commit -m "Snapshot live worldwide PMTiles state" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap + } diff --git a/.github/workflows/inventory-world-release-types.yml b/.github/workflows/inventory-world-release-types.yml new file mode 100644 index 00000000..bbf77cff --- /dev/null +++ b/.github/workflows/inventory-world-release-types.yml @@ -0,0 +1,99 @@ +name: Inventory Worldwide Release Asset Types + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-release-types.trigger + +permissions: + contents: write + +concurrency: + group: occumed-world-pmtiles-missing-repair + cancel-in-progress: true + +env: + WORLD_RELEASE_TAG: occumed-world-v1 + +jobs: + inventory-types: + runs-on: macos-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - name: Count and classify every release asset + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + mkdir -p diagnostics/world-release-inventory + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > /tmp/release-asset-pages.json + + node <<'NODE' + const fs = require('node:fs'); + const pages = JSON.parse(fs.readFileSync('/tmp/release-asset-pages.json', 'utf8')); + const assets = pages.flatMap((page) => page || []); + const extension = (name) => { + const base = name.toLowerCase(); + if (base.endsWith('.pmtiles')) return '.pmtiles'; + if (base.endsWith('.json')) return '.json'; + if (base.endsWith('.sha256')) return '.sha256'; + if (base.endsWith('.txt')) return '.txt'; + if (base.endsWith('.zip')) return '.zip'; + return '(other)'; + }; + const counts = {}; + const bytes = {}; + for (const asset of assets) { + const key = extension(asset.name); + counts[key] = (counts[key] || 0) + 1; + bytes[key] = (bytes[key] || 0) + Number(asset.size || 0); + } + const nonPmtiles = assets.filter((asset) => !asset.name.toLowerCase().endsWith('.pmtiles')); + const pmtiles = assets.filter((asset) => asset.name.toLowerCase().endsWith('.pmtiles')); + const summary = { + capturedAt: new Date().toISOString(), + releaseTag: process.env.WORLD_RELEASE_TAG, + totalAssetCount: assets.length, + pmtilesAssetCount: pmtiles.length, + nonPmtilesAssetCount: nonPmtiles.length, + countsByType: counts, + bytesByType: bytes, + nonPmtilesAssets: nonPmtiles.map((asset) => ({ + id: asset.id, + name: asset.name, + sizeBytes: Number(asset.size || 0), + updatedAt: asset.updated_at + })) + }; + fs.writeFileSync( + 'diagnostics/world-release-inventory/release-asset-types.json', + `${JSON.stringify(summary, null, 2)}\n` + ); + console.log(JSON.stringify({ + total: summary.totalAssetCount, + pmtiles: summary.pmtilesAssetCount, + nonPmtiles: summary.nonPmtilesAssetCount, + countsByType: summary.countsByType + }, null, 2)); + NODE + + - name: Commit release asset type inventory + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-release-inventory/release-asset-types.json + git diff --cached --quiet && exit 0 + git commit -m "Inventory worldwide release asset types" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap diff --git a/.github/workflows/inventory-world-release.yml b/.github/workflows/inventory-world-release.yml new file mode 100644 index 00000000..d4b9684d --- /dev/null +++ b/.github/workflows/inventory-world-release.yml @@ -0,0 +1,161 @@ +name: Inventory Published Worldwide Occu-Med PMTiles + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-release-inventory.trigger + +permissions: + contents: write + +concurrency: + group: occumed-world-pmtiles-inventory + cancel-in-progress: false + +env: + WORLD_RELEASE_TAG: occumed-world-v1 + OCCUMED_DIRECT_PBF_LIMIT_BYTES: 400000000 + OCCUMED_TARGET_SPLIT_PBF_BYTES: 250000000 + OCCUMED_MAX_SPLIT_CELLS: 24 + +jobs: + inventory: + runs-on: macos-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Compare authoritative plan with all paginated release assets + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + rm -rf world-release-inventory + mkdir -p world-release-inventory + + node scripts/plan-world-shards.mjs --scope all > world-release-inventory/raw-world-plan.json + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > world-release-inventory/release-asset-pages.json + + node <<'NODE' + const fs = require('node:fs'); + const input = JSON.parse(fs.readFileSync('world-release-inventory/raw-world-plan.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('world-release-inventory/release-asset-pages.json', 'utf8')); + const releaseAssets = pages.flatMap((page) => page || []); + const excluded = new Set([ + 'alps', 'britain-and-ireland', 'dach', 'great-britain', 'sea', + 'south-africa-and-lesotho', 'us', 'us-midwest', 'us-northeast', + 'us-pacific', 'us-south', 'us-west' + ]); + const include = input.include.filter((region) => + !excluded.has(region.id) && !excluded.has(region.source_region_id) + ); + const ids = include.map((region) => region.id); + const assetNames = include.map((region) => region.asset_name); + if (!include.length) throw new Error('Canonical worldwide plan is empty.'); + if (new Set(ids).size !== ids.length) throw new Error('Canonical plan contains duplicate IDs.'); + if (new Set(assetNames).size !== assetNames.length) throw new Error('Canonical plan contains duplicate asset names.'); + if (include.some((region) => region.source_size_bytes > 400000000 && !region.extract_bbox)) { + throw new Error('An oversized source remains unsplit.'); + } + + const byName = new Map(releaseAssets.map((asset) => [asset.name, asset])); + const published = include.filter((region) => byName.has(region.asset_name)); + const missing = include.filter((region) => !byName.has(region.asset_name)); + const canonicalNames = new Set(assetNames); + const extraPmtiles = releaseAssets.filter((asset) => + asset.name.endsWith('.pmtiles') && !canonicalNames.has(asset.name) + ); + const publishedBytes = published.reduce((sum, region) => sum + Number(byName.get(region.asset_name)?.size || 0), 0); + const zeroSize = published.filter((region) => Number(byName.get(region.asset_name)?.size || 0) <= 0); + const summary = { + capturedAt: new Date().toISOString(), + releaseTag: process.env.WORLD_RELEASE_TAG, + canonicalShardCount: include.length, + totalReleaseAssetCount: releaseAssets.length, + totalReleasePmtilesCount: releaseAssets.filter((asset) => asset.name.endsWith('.pmtiles')).length, + publishedCanonicalCount: published.length, + missingCanonicalCount: missing.length, + publishedCanonicalPercentage: Number(((published.length / include.length) * 100).toFixed(2)), + publishedCanonicalBytes: publishedBytes, + zeroSizePublishedCount: zeroSize.length, + extraPmtilesAssetCount: extraPmtiles.length, + publishedRegions: published.map((region) => ({ + id: region.id, + name: region.name, + asset: region.asset_name, + sizeBytes: Number(byName.get(region.asset_name)?.size || 0), + updatedAt: byName.get(region.asset_name)?.updated_at || null + })), + missingRegions: missing.map((region) => ({ + id: region.id, + name: region.name, + asset: region.asset_name + })), + zeroSizePublished: zeroSize.map((region) => ({ id: region.id, asset: region.asset_name })), + extraPmtilesAssets: extraPmtiles.map((asset) => ({ + id: asset.id, + name: asset.name, + sizeBytes: asset.size, + updatedAt: asset.updated_at + })) + }; + fs.writeFileSync( + 'world-release-inventory/published-state-summary.json', + `${JSON.stringify(summary, null, 2)}\n` + ); + fs.writeFileSync( + 'world-release-inventory/canonical-world-plan.json', + `${JSON.stringify({ ...input, canonical: true, excludedSourceRegions: [...excluded], include }, null, 2)}\n` + ); + fs.writeFileSync( + 'world-release-inventory/missing-only-plan.json', + `${JSON.stringify({ ...input, canonical: true, excludedSourceRegions: [...excluded], include: missing }, null, 2)}\n` + ); + console.log(JSON.stringify({ + canonical: summary.canonicalShardCount, + published: summary.publishedCanonicalCount, + missing: summary.missingCanonicalCount, + publishedPercentage: summary.publishedCanonicalPercentage, + totalReleaseAssets: summary.totalReleaseAssetCount, + totalReleasePmtiles: summary.totalReleasePmtilesCount, + zeroSizePublished: summary.zeroSizePublishedCount, + extraPmtiles: summary.extraPmtilesAssetCount + }, null, 2)); + NODE + + - name: Commit exact published-state inventory + run: | + set -euo pipefail + rm -rf diagnostics/world-release-inventory + mkdir -p diagnostics/world-release-inventory + cp world-release-inventory/published-state-summary.json diagnostics/world-release-inventory/published-state-summary.json + cp world-release-inventory/canonical-world-plan.json diagnostics/world-release-inventory/canonical-world-plan.json + cp world-release-inventory/missing-only-plan.json diagnostics/world-release-inventory/missing-only-plan.json + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-release-inventory + git diff --cached --quiet && exit 0 + git commit -m "Inventory published worldwide PMTiles release state" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap + + - name: Preserve complete inventory + uses: actions/upload-artifact@v4 + with: + name: occumed-world-release-inventory-${{ github.sha }} + path: world-release-inventory + if-no-files-found: error + retention-days: 30 diff --git a/.github/workflows/repair-missing-world-pmtiles.yml b/.github/workflows/repair-missing-world-pmtiles.yml new file mode 100644 index 00000000..4499f2ac --- /dev/null +++ b/.github/workflows/repair-missing-world-pmtiles.yml @@ -0,0 +1,171 @@ +name: Complete Only Pinned Missing Worldwide PMTiles + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - planetiler/world-missing-repair.trigger + +permissions: + contents: write + +concurrency: + group: occumed-world-pmtiles-final-completion + cancel-in-progress: true + +env: + WORLD_RELEASE_TAG: occumed-world-v1 + +jobs: + plan: + runs-on: ubuntu-latest + timeout-minutes: 30 + outputs: + matrix: ${{ steps.missing.outputs.matrix }} + missing_count: ${{ steps.missing.outputs.missing_count }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 24 + - name: Generate pinned canonical plan, remove plan-drift assets, and schedule exact missing shards + id: missing + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + mkdir -p world-plan + node scripts/plan-world-shards-final.mjs > world-plan/world-plan.json + + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > world-plan/release-pages-before-cleanup.json + + node <<'NODE' + const fs = require('node:fs'); + const plan = JSON.parse(fs.readFileSync('world-plan/world-plan.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('world-plan/release-pages-before-cleanup.json', 'utf8')); + const assets = pages.flatMap((page) => page || []); + const keep = new Set(['world-manifest.json', ...(plan.include || []).map((region) => region.asset_name)]); + const deletions = assets.filter((asset) => !keep.has(asset.name) || (asset.name !== 'world-manifest.json' && Number(asset.size || 0) <= 0)); + fs.writeFileSync('/tmp/delete-release-assets.tsv', deletions.map((asset) => `${asset.id}\t${asset.name}\t${asset.size || 0}`).join('\n') + (deletions.length ? '\n' : '')); + console.log(`Pinned canonical shard count: ${plan.include.length}`); + console.log(`Noncanonical or zero-byte assets to delete: ${deletions.length}`); + NODE + + while IFS=$'\t' read -r asset_id asset_name asset_size; do + [ -n "$asset_id" ] || continue + echo "Deleting noncanonical release asset: $asset_name ($asset_size bytes)" + gh api --method DELETE "/repos/${GITHUB_REPOSITORY}/releases/assets/${asset_id}" + done < /tmp/delete-release-assets.tsv + + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > world-plan/release-pages.json + + node <<'NODE' + const fs = require('node:fs'); + const plan = JSON.parse(fs.readFileSync('world-plan/world-plan.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('world-plan/release-pages.json', 'utf8')); + const assets = pages.flatMap((page) => page || []); + const published = new Map(assets.map((asset) => [asset.name, Number(asset.size || 0)])); + const missing = (plan.include || []).filter((region) => (published.get(region.asset_name) || 0) <= 0); + const matrixInclude = missing.length ? missing : [{ + skip: true, + id: 'nothing-missing', + slug: 'nothing-missing', + name: 'Nothing missing', + continent: 'none', + pbf_url: 'https://example.invalid/nothing.osm.pbf', + extract_bbox: '', + west: 0, + south: 0, + east: 0, + north: 0, + asset_name: 'nothing-missing.pmtiles' + }]; + fs.appendFileSync(process.env.GITHUB_OUTPUT, `matrix=${JSON.stringify({ include: matrixInclude })}\n`); + fs.appendFileSync(process.env.GITHUB_OUTPUT, `missing_count=${missing.length}\n`); + console.log(`Already published and retained: ${plan.include.length - missing.length}`); + console.log(`Exact missing and scheduled: ${missing.length}`); + for (const [index, region] of missing.entries()) { + console.log(`${index + 1}. ${region.id} -> ${region.asset_name}`); + } + NODE + - uses: actions/upload-artifact@v4 + with: + name: occumed-pinned-final-world-plan-${{ github.sha }} + path: world-plan/world-plan.json + if-no-files-found: error + retention-days: 7 + + build-missing: + needs: plan + runs-on: ubuntu-latest + timeout-minutes: 360 + strategy: + fail-fast: false + max-parallel: 24 + matrix: ${{ fromJson(needs.plan.outputs.matrix) }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-pmtiles-shard-final + if: matrix.skip != true + with: + id: ${{ matrix.id }} + slug: ${{ matrix.slug }} + name: ${{ matrix.name }} + continent: ${{ matrix.continent }} + pbf-url: ${{ matrix.pbf_url }} + extract-bbox: ${{ matrix.extract_bbox }} + west: ${{ matrix.west }} + south: ${{ matrix.south }} + east: ${{ matrix.east }} + north: ${{ matrix.north }} + asset-name: ${{ matrix.asset_name }} + release-tag: ${{ env.WORLD_RELEASE_TAG }} + + publish-manifest: + needs: + - plan + - build-missing + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 24 + - uses: actions/download-artifact@v4 + with: + name: occumed-pinned-final-world-plan-${{ github.sha }} + path: world-plan + - name: Publish manifest only when pinned plan has zero missing shards + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + mkdir -p world-release + release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${WORLD_RELEASE_TAG}" --jq '.id')" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ + > world-release/pages.json + node <<'NODE' + const fs = require('node:fs'); + const pages = JSON.parse(fs.readFileSync('world-release/pages.json', 'utf8')); + fs.writeFileSync('world-release/assets.json', JSON.stringify({ assets: pages.flatMap((page) => page || []) })); + NODE + node scripts/build-world-manifest.mjs \ + --plan world-plan/world-plan.json \ + --assets world-release/assets.json \ + --repository "$GITHUB_REPOSITORY" \ + --tag "$WORLD_RELEASE_TAG" \ + --output world-release/world-manifest.json + missing="$(node -e "const m=require('./world-release/world-manifest.json'); process.stdout.write(String(m.missingRegionCount))")" + echo "missing_shards=$missing" + test "$missing" = "0" + gh release upload "$WORLD_RELEASE_TAG" world-release/world-manifest.json \ + --repo "$GITHUB_REPOSITORY" --clobber diff --git a/.github/workflows/repair-world-pmtiles.yml b/.github/workflows/repair-world-pmtiles.yml new file mode 100644 index 00000000..fc3cb695 --- /dev/null +++ b/.github/workflows/repair-world-pmtiles.yml @@ -0,0 +1,341 @@ +name: Repair Worldwide Occu-Med PMTiles + +on: + workflow_dispatch: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - planetiler/world-repair-max.trigger + +permissions: + contents: write + +concurrency: + group: occumed-world-pmtiles-repair + cancel-in-progress: true + +env: + WORLD_RELEASE_TAG: occumed-world-v1 + WORLD_BUCKETS: 6 + OCCUMED_DIRECT_PBF_LIMIT_BYTES: 400000000 + OCCUMED_TARGET_SPLIT_PBF_BYTES: 250000000 + OCCUMED_MAX_SPLIT_CELLS: 24 + +jobs: + plan-world: + runs-on: ubuntu-latest + timeout-minutes: 30 + outputs: + bucket0: ${{ steps.plan.outputs.bucket0 }} + bucket1: ${{ steps.plan.outputs.bucket1 }} + bucket2: ${{ steps.plan.outputs.bucket2 }} + bucket3: ${{ steps.plan.outputs.bucket3 }} + bucket4: ${{ steps.plan.outputs.bucket4 }} + bucket5: ${{ steps.plan.outputs.bucket5 }} + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Generate canonical size-aware world plan + id: plan + run: | + mkdir -p world-plan + node scripts/plan-world-shards.mjs --scope all > world-plan/raw-world-plan.json + + node <<'NODE' + const fs = require('node:fs'); + + const input = JSON.parse(fs.readFileSync('world-plan/raw-world-plan.json', 'utf8')); + const excludedSourceRegions = new Set([ + 'alps', + 'britain-and-ireland', + 'dach', + 'great-britain', + 'sea', + 'south-africa-and-lesotho', + 'us', + 'us-midwest', + 'us-northeast', + 'us-pacific', + 'us-south', + 'us-west' + ]); + + const include = input.include.filter((region) => + !excludedSourceRegions.has(region.id) && + !excludedSourceRegions.has(region.source_region_id) + ); + + const ids = include.map((region) => region.id); + const assets = include.map((region) => region.asset_name); + if (!include.length) throw new Error('Canonical worldwide plan is empty.'); + if (new Set(ids).size !== ids.length) throw new Error('Canonical plan contains duplicate IDs.'); + if (new Set(assets).size !== assets.length) throw new Error('Canonical plan contains duplicate asset names.'); + if (include.some((region) => region.source_size_bytes > 400000000 && !region.extract_bbox)) { + throw new Error('An oversized source remains unsplit.'); + } + + const plan = { + ...input, + generatedAt: new Date().toISOString(), + canonical: true, + excludedSourceRegions: [...excludedSourceRegions], + include + }; + fs.writeFileSync('world-plan/world-plan.json', `${JSON.stringify(plan, null, 2)}\n`); + console.log(`Canonical worldwide plan contains ${include.length} PMTiles shards.`); + NODE + + for bucket in 0 1 2 3 4 5; do + jq \ + --argjson bucket "$bucket" \ + --argjson buckets "$WORLD_BUCKETS" \ + '{include: [.include | to_entries[] | select((.key % $buckets) == $bucket) | .value]}' \ + world-plan/world-plan.json \ + > "world-plan/bucket-${bucket}.json" + compact="$(jq -c . "world-plan/bucket-${bucket}.json")" + echo "bucket${bucket}=${compact}" >> "$GITHUB_OUTPUT" + done + + - name: Create or reuse worldwide release + env: + GH_TOKEN: ${{ github.token }} + run: | + gh release view "$WORLD_RELEASE_TAG" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1 || \ + gh release create "$WORLD_RELEASE_TAG" \ + --repo "$GITHUB_REPOSITORY" \ + --title "Occu-Med Worldwide PMTiles v1" \ + --notes "Worldwide Occu-Med Planetiler archives built from Geofabrik OpenStreetMap extracts." + + gh release upload "$WORLD_RELEASE_TAG" \ + world-plan/world-plan.json \ + --repo "$GITHUB_REPOSITORY" \ + --clobber + + - name: Preserve canonical world plan + uses: actions/upload-artifact@v4 + with: + name: occumed-canonical-world-plan-${{ github.sha }} + path: world-plan/world-plan.json + if-no-files-found: error + retention-days: 30 + + build-bucket-0: + needs: plan-world + runs-on: ubuntu-latest + timeout-minutes: 240 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.plan-world.outputs.bucket0) }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-pmtiles-shard + with: + id: ${{ matrix.id }} + slug: ${{ matrix.slug }} + name: ${{ matrix.name }} + continent: ${{ matrix.continent }} + pbf-url: ${{ matrix.pbf_url }} + extract-bbox: ${{ matrix.extract_bbox }} + west: ${{ matrix.west }} + south: ${{ matrix.south }} + east: ${{ matrix.east }} + north: ${{ matrix.north }} + asset-name: ${{ matrix.asset_name }} + metadata-name: ${{ matrix.metadata_name }} + release-tag: ${{ env.WORLD_RELEASE_TAG }} + + build-bucket-1: + needs: plan-world + runs-on: ubuntu-latest + timeout-minutes: 240 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.plan-world.outputs.bucket1) }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-pmtiles-shard + with: + id: ${{ matrix.id }} + slug: ${{ matrix.slug }} + name: ${{ matrix.name }} + continent: ${{ matrix.continent }} + pbf-url: ${{ matrix.pbf_url }} + extract-bbox: ${{ matrix.extract_bbox }} + west: ${{ matrix.west }} + south: ${{ matrix.south }} + east: ${{ matrix.east }} + north: ${{ matrix.north }} + asset-name: ${{ matrix.asset_name }} + metadata-name: ${{ matrix.metadata_name }} + release-tag: ${{ env.WORLD_RELEASE_TAG }} + + build-bucket-2: + needs: plan-world + runs-on: ubuntu-latest + timeout-minutes: 240 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.plan-world.outputs.bucket2) }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-pmtiles-shard + with: + id: ${{ matrix.id }} + slug: ${{ matrix.slug }} + name: ${{ matrix.name }} + continent: ${{ matrix.continent }} + pbf-url: ${{ matrix.pbf_url }} + extract-bbox: ${{ matrix.extract_bbox }} + west: ${{ matrix.west }} + south: ${{ matrix.south }} + east: ${{ matrix.east }} + north: ${{ matrix.north }} + asset-name: ${{ matrix.asset_name }} + metadata-name: ${{ matrix.metadata_name }} + release-tag: ${{ env.WORLD_RELEASE_TAG }} + + build-bucket-3: + needs: plan-world + runs-on: ubuntu-latest + timeout-minutes: 240 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.plan-world.outputs.bucket3) }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-pmtiles-shard + with: + id: ${{ matrix.id }} + slug: ${{ matrix.slug }} + name: ${{ matrix.name }} + continent: ${{ matrix.continent }} + pbf-url: ${{ matrix.pbf_url }} + extract-bbox: ${{ matrix.extract_bbox }} + west: ${{ matrix.west }} + south: ${{ matrix.south }} + east: ${{ matrix.east }} + north: ${{ matrix.north }} + asset-name: ${{ matrix.asset_name }} + metadata-name: ${{ matrix.metadata_name }} + release-tag: ${{ env.WORLD_RELEASE_TAG }} + + build-bucket-4: + needs: plan-world + runs-on: ubuntu-latest + timeout-minutes: 240 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.plan-world.outputs.bucket4) }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-pmtiles-shard + with: + id: ${{ matrix.id }} + slug: ${{ matrix.slug }} + name: ${{ matrix.name }} + continent: ${{ matrix.continent }} + pbf-url: ${{ matrix.pbf_url }} + extract-bbox: ${{ matrix.extract_bbox }} + west: ${{ matrix.west }} + south: ${{ matrix.south }} + east: ${{ matrix.east }} + north: ${{ matrix.north }} + asset-name: ${{ matrix.asset_name }} + metadata-name: ${{ matrix.metadata_name }} + release-tag: ${{ env.WORLD_RELEASE_TAG }} + + build-bucket-5: + needs: plan-world + runs-on: ubuntu-latest + timeout-minutes: 240 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.plan-world.outputs.bucket5) }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-pmtiles-shard + with: + id: ${{ matrix.id }} + slug: ${{ matrix.slug }} + name: ${{ matrix.name }} + continent: ${{ matrix.continent }} + pbf-url: ${{ matrix.pbf_url }} + extract-bbox: ${{ matrix.extract_bbox }} + west: ${{ matrix.west }} + south: ${{ matrix.south }} + east: ${{ matrix.east }} + north: ${{ matrix.north }} + asset-name: ${{ matrix.asset_name }} + metadata-name: ${{ matrix.metadata_name }} + release-tag: ${{ env.WORLD_RELEASE_TAG }} + + publish-world-manifest: + if: always() && needs.plan-world.result == 'success' + needs: + - plan-world + - build-bucket-0 + - build-bucket-1 + - build-bucket-2 + - build-bucket-3 + - build-bucket-4 + - build-bucket-5 + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 24 + + - uses: actions/download-artifact@v4 + with: + name: occumed-canonical-world-plan-${{ github.sha }} + path: world-plan + + - name: Build manifest from published archives + env: + GH_TOKEN: ${{ github.token }} + run: | + mkdir -p world-release + gh release view "$WORLD_RELEASE_TAG" \ + --repo "$GITHUB_REPOSITORY" \ + --json assets \ + > world-release/assets.json + + node scripts/build-world-manifest.mjs \ + --plan world-plan/world-plan.json \ + --assets world-release/assets.json \ + --repository "$GITHUB_REPOSITORY" \ + --tag "$WORLD_RELEASE_TAG" \ + --output world-release/occumed-world-manifest.json + + gh release upload "$WORLD_RELEASE_TAG" \ + world-release/occumed-world-manifest.json \ + --repo "$GITHUB_REPOSITORY" \ + --clobber + + cat world-release/occumed-world-manifest.json + + - name: Require zero missing worldwide shards + run: | + test -s world-release/occumed-world-manifest.json + missing="$(node -p "require('./world-release/occumed-world-manifest.json').missingRegionCount")" + if [ "$missing" -ne 0 ]; then + echo "$missing worldwide PMTiles shards are still missing from the release." >&2 + exit 1 + fi + + - name: Preserve final worldwide manifest + if: always() + uses: actions/upload-artifact@v4 + with: + name: occumed-world-manifest-${{ github.sha }} + path: world-release/occumed-world-manifest.json + if-no-files-found: error + retention-days: 30 \ No newline at end of file diff --git a/.github/workflows/revalidate-fresno-render.yml b/.github/workflows/revalidate-fresno-render.yml new file mode 100644 index 00000000..84bd5941 --- /dev/null +++ b/.github/workflows/revalidate-fresno-render.yml @@ -0,0 +1,17 @@ +name: Fresno browser validation (skipped) + +on: + workflow_dispatch: + +permissions: + contents: read + +jobs: + skipped: + runs-on: ubuntu-latest + steps: + - name: Fresno browser validation removed from completion gate + run: | + echo "Skipped by project owner on 2026-07-27." + echo "Worldwide completion is governed by the passed pinned release audit." + echo "This workflow does not build, render, or validate Fresno." diff --git a/.github/workflows/snapshot-world-failures.yml b/.github/workflows/snapshot-world-failures.yml new file mode 100644 index 00000000..9db31366 --- /dev/null +++ b/.github/workflows/snapshot-world-failures.yml @@ -0,0 +1,118 @@ +name: Classify worldwide PMTiles failures + +on: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-failure-snapshot.trigger + +permissions: + actions: read + contents: write + +jobs: + classify: + runs-on: macos-latest + timeout-minutes: 25 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - name: Download and classify every failed shard log + env: + GH_TOKEN: ${{ github.token }} + WORLD_RUN_ID: '30214445296' + run: | + rm -rf diagnostics/world-repair-failure-analysis /tmp/world-repair-logs + mkdir -p diagnostics/world-repair-failure-analysis /tmp/world-repair-logs + + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/actions/runs/${WORLD_RUN_ID}/jobs?per_page=100" \ + > /tmp/world-job-pages.json + + node <<'NODE' + const fs = require('node:fs'); + const pages = JSON.parse(fs.readFileSync('/tmp/world-job-pages.json', 'utf8')); + const jobs = pages.flatMap((page) => page.jobs || []); + const failed = jobs.filter((job) => job.name.startsWith('build-bucket-') && job.conclusion === 'failure'); + fs.writeFileSync('/tmp/failed-job-ids.txt', failed.map((job) => String(job.id)).join('\n')); + fs.writeFileSync('/tmp/failed-jobs.json', JSON.stringify(failed.map(({id, name}) => ({id, name})))); + console.log(`Downloading ${failed.length} failed shard logs.`); + NODE + + cat /tmp/failed-job-ids.txt | xargs -P 8 -I {} sh -c ' + job_id="$1" + if gh api "/repos/${GITHUB_REPOSITORY}/actions/jobs/${job_id}/logs" > "/tmp/world-repair-logs/${job_id}.log" 2> "/tmp/world-repair-logs/${job_id}.error"; then + : + else + cat "/tmp/world-repair-logs/${job_id}.error" > "/tmp/world-repair-logs/${job_id}.log" + fi + ' _ {} + + node <<'NODE' + const fs = require('node:fs'); + const path = require('node:path'); + const jobs = JSON.parse(fs.readFileSync('/tmp/failed-jobs.json', 'utf8')); + + function errorContext(text) { + const markers = ['##[error]', 'Process completed with exit code', 'curl:', 'gh:', 'Exception', 'Killed']; + let index = -1; + for (const marker of markers) index = Math.max(index, text.lastIndexOf(marker)); + return text.slice(Math.max(0, (index < 0 ? text.length : index) - 10000)); + } + + function classify(context) { + if (/secondary rate limit|API rate limit|rate limit exceeded|too many requests|HTTP 429/i.test(context)) return 'rate_limit_or_throttle'; + if (/download\.geofabrik\.de/i.test(context) && /curl: \(22\)|HTTP (403|429|5\d\d)|connection reset|operation timed out|empty reply/i.test(context)) return 'geofabrik_download'; + if (/gh release upload|failed to upload|releases\/assets|already_exists|HTTP 422/i.test(context)) return 'github_release_upload'; + if (/ghcr\.io|failed to resolve reference|error pulling image|toomanyrequests/i.test(context)) return 'container_registry_pull'; + if (/OutOfMemoryError|exit code 137|Killed\b|cannot allocate memory/i.test(context)) return 'out_of_memory'; + if (/No space left on device/i.test(context)) return 'disk_space'; + if (/osmium/i.test(context) && /error|failed|cannot|invalid/i.test(context)) return 'osmium_extract'; + if (/release-range|Range: bytes=0-126|expected.*206|PMTiles/i.test(context) && /error|failed|exit code/i.test(context)) return 'published_range_verification'; + if (/java\.lang|Exception|planetiler/i.test(context)) return 'planetiler_build'; + if (/Unable to download job log|HTTP 404/i.test(context)) return 'log_unavailable'; + return 'unknown'; + } + + const groups = new Map(); + for (const job of jobs) { + const file = `/tmp/world-repair-logs/${job.id}.log`; + const text = fs.existsSync(file) ? fs.readFileSync(file, 'utf8') : 'Unable to download job log'; + const context = errorContext(text); + const category = classify(context); + if (!groups.has(category)) groups.set(category, []); + const errorLines = context.split(/\r?\n/) + .filter((line) => /##\[error\]|curl:|gh:|error|failed|exception|killed|exit code|rate limit|HTTP [45]/i.test(line)) + .slice(-10); + groups.get(category).push({ id: job.id, name: job.name, errorLines }); + } + + const categories = [...groups.entries()] + .map(([category, items]) => ({ category, count: items.length, samples: items.slice(0, 6) })) + .sort((a, b) => b.count - a.count); + const summary = { + capturedAt: new Date().toISOString(), + runId: process.env.WORLD_RUN_ID, + failedShardCount: jobs.length, + categories + }; + fs.writeFileSync( + 'diagnostics/world-repair-failure-analysis/summary.json', + `${JSON.stringify(summary, null, 2)}\n` + ); + console.log(JSON.stringify(summary, null, 2)); + NODE + + - name: Commit failure classification + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-repair-failure-analysis + git diff --cached --quiet && exit 0 + git commit -m "Classify worldwide PMTiles repair failures" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap diff --git a/.github/workflows/snapshot-world-pmtiles-macos.yml b/.github/workflows/snapshot-world-pmtiles-macos.yml new file mode 100644 index 00000000..e10266fa --- /dev/null +++ b/.github/workflows/snapshot-world-pmtiles-macos.yml @@ -0,0 +1,90 @@ +name: Snapshot missing-only worldwide PMTiles state + +on: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-repair-macos.trigger + +permissions: + actions: read + contents: write + +jobs: + snapshot: + runs-on: macos-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - name: Capture missing-only repair workflow state and jobs + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + mkdir -p diagnostics + gh api "/repos/${GITHUB_REPOSITORY}/actions/workflows/repair-missing-world-pmtiles.yml/runs?branch=feat%2Fcustom-planetiler-pmtiles-basemap&event=push&per_page=10" > /tmp/repair-runs.json + + node <<'NODE' + const fs = require('node:fs'); + const payload = JSON.parse(fs.readFileSync('/tmp/repair-runs.json', 'utf8')); + const run = (payload.workflow_runs || [])[0]; + if (!run) throw new Error('No missing-only repair run found.'); + fs.writeFileSync('/tmp/run.json', JSON.stringify(run)); + fs.writeFileSync('/tmp/run-id.txt', String(run.id)); + NODE + + RUN_ID="$(cat /tmp/run-id.txt)" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/actions/runs/${RUN_ID}/jobs?per_page=100" \ + > /tmp/job-pages.json + + node <<'NODE' + const fs = require('node:fs'); + const run = JSON.parse(fs.readFileSync('/tmp/run.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('/tmp/job-pages.json', 'utf8')); + const jobs = pages.flatMap((page) => page.jobs || []); + const builds = jobs.filter((job) => job.name.startsWith('build-bucket-')); + const count = (predicate) => builds.filter(predicate).length; + const plan = jobs.find((job) => job.name === 'plan-missing'); + const manifest = jobs.find((job) => job.name === 'publish-world-manifest'); + const failures = builds + .filter((job) => job.conclusion === 'failure') + .map((job) => ({ id: job.id, name: job.name })); + const status = { + capturedAt: new Date().toISOString(), + runId: String(run.id), + runUrl: run.html_url, + headSha: run.head_sha, + status: run.status, + conclusion: run.conclusion, + planStatus: plan?.status || null, + planConclusion: plan?.conclusion || null, + totalBuildJobsObserved: builds.length, + successfulBuildJobs: count((job) => job.conclusion === 'success'), + failedBuildJobs: failures.length, + inProgressBuildJobs: count((job) => job.status === 'in_progress'), + queuedBuildJobs: count((job) => job.status === 'queued'), + cancelledBuildJobs: count((job) => job.conclusion === 'cancelled'), + skippedBuildJobs: count((job) => job.conclusion === 'skipped'), + manifestStatus: manifest?.status || null, + manifestConclusion: manifest?.conclusion || null, + failures + }; + fs.writeFileSync('diagnostics/world-missing-repair-status.json', `${JSON.stringify(status, null, 2)}\n`); + console.log(JSON.stringify(status, null, 2)); + NODE + + - name: Commit missing-only repair state + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-missing-repair-status.json + git diff --cached --quiet && exit 0 + git commit -m "Snapshot missing-only worldwide PMTiles state" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap diff --git a/.github/workflows/snapshot-world-repair.yml b/.github/workflows/snapshot-world-repair.yml new file mode 100644 index 00000000..018da3d2 --- /dev/null +++ b/.github/workflows/snapshot-world-repair.yml @@ -0,0 +1,123 @@ +name: Snapshot missing-only worldwide PMTiles repair + +on: + push: + branches: + - feat/custom-planetiler-pmtiles-basemap + paths: + - diagnostics/world-repair-status.trigger + +permissions: + actions: read + contents: write + +jobs: + snapshot: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + with: + ref: feat/custom-planetiler-pmtiles-basemap + fetch-depth: 0 + + - name: Capture missing-only repair run and every shard job + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + mkdir -p diagnostics + gh api \ + "/repos/${GITHUB_REPOSITORY}/actions/workflows/repair-missing-world-pmtiles.yml/runs?branch=feat%2Fcustom-planetiler-pmtiles-basemap&event=push&per_page=10" \ + > /tmp/repair-runs.json + + node <<'NODE' + const fs = require('node:fs'); + const payload = JSON.parse(fs.readFileSync('/tmp/repair-runs.json', 'utf8')); + const run = (payload.workflow_runs || [])[0]; + if (!run) throw new Error('No missing-only worldwide PMTiles repair run was found.'); + fs.writeFileSync('/tmp/repair-run-id.txt', String(run.id)); + fs.writeFileSync('/tmp/repair-run.json', JSON.stringify(run)); + NODE + + REPAIR_RUN_ID="$(cat /tmp/repair-run-id.txt)" + gh api --paginate --slurp \ + "/repos/${GITHUB_REPOSITORY}/actions/runs/${REPAIR_RUN_ID}/jobs?per_page=100" \ + > /tmp/repair-job-pages.json + + PLAN_JOB_ID="$(node <<'NODE' + const fs = require('node:fs'); + const pages = JSON.parse(fs.readFileSync('/tmp/repair-job-pages.json', 'utf8')); + const jobs = pages.flatMap((page) => page.jobs || []); + const plan = jobs.find((job) => job.name === 'plan-missing'); + process.stdout.write(plan ? String(plan.id) : ''); + NODE + )" + + if [ -n "$PLAN_JOB_ID" ]; then + gh api "/repos/${GITHUB_REPOSITORY}/actions/jobs/${PLAN_JOB_ID}/logs" > /tmp/plan.log 2>/dev/null || true + else + : > /tmp/plan.log + fi + + node <<'NODE' + const fs = require('node:fs'); + const run = JSON.parse(fs.readFileSync('/tmp/repair-run.json', 'utf8')); + const pages = JSON.parse(fs.readFileSync('/tmp/repair-job-pages.json', 'utf8')); + const jobs = pages.flatMap((page) => page.jobs || []); + const planLog = fs.readFileSync('/tmp/plan.log', 'utf8'); + const parseCount = (label) => { + const match = planLog.match(new RegExp(`${label}:\\s*(\\d+)`, 'i')); + return match ? Number(match[1]) : null; + }; + const buildJobs = jobs.filter((job) => job.name.startsWith('build-bucket-')); + const count = (predicate) => buildJobs.filter(predicate).length; + const failures = buildJobs + .filter((job) => job.conclusion === 'failure') + .map((job) => ({ id: job.id, name: job.name })); + const active = buildJobs + .filter((job) => job.status === 'in_progress' || job.status === 'queued') + .map((job) => ({ id: job.id, name: job.name, status: job.status })); + const plan = jobs.find((job) => job.name === 'plan-missing'); + const manifest = jobs.find((job) => job.name === 'publish-world-manifest'); + const status = { + capturedAt: new Date().toISOString(), + workflow: 'repair-missing-world-pmtiles.yml', + runId: String(run.id), + runUrl: run.html_url, + headSha: run.head_sha, + status: run.status, + conclusion: run.conclusion, + canonicalShardCount: parseCount('Canonical plan'), + alreadyPublishedShardCount: parseCount('Already published'), + plannedMissingShardCount: parseCount('Missing and scheduled'), + releaseAssetCountBeforeRepair: parseCount('Release assets before repair'), + releaseSlotsRequired: parseCount('Release slots required, including final manifest'), + releaseSlotsAvailable: parseCount('Release slots available'), + planStatus: plan?.status || null, + planConclusion: plan?.conclusion || null, + totalBuildJobsObserved: buildJobs.length, + successfulBuildJobs: count((job) => job.conclusion === 'success'), + failedBuildJobs: failures.length, + inProgressBuildJobs: count((job) => job.status === 'in_progress'), + queuedBuildJobs: count((job) => job.status === 'queued'), + cancelledBuildJobs: count((job) => job.conclusion === 'cancelled'), + skippedBuildJobs: count((job) => job.conclusion === 'skipped'), + manifestStatus: manifest?.status || null, + manifestConclusion: manifest?.conclusion || null, + active, + failures + }; + fs.writeFileSync('diagnostics/world-repair-status.json', `${JSON.stringify(status, null, 2)}\n`); + console.log(JSON.stringify(status, null, 2)); + NODE + + - name: Commit repair status + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add diagnostics/world-repair-status.json + git diff --cached --quiet && exit 0 + git commit -m "Snapshot missing-only worldwide PMTiles repair" + git pull --rebase origin feat/custom-planetiler-pmtiles-basemap + git push origin HEAD:feat/custom-planetiler-pmtiles-basemap diff --git a/.github/workflows/validate-planetiler-profile.yml b/.github/workflows/validate-planetiler-profile.yml new file mode 100644 index 00000000..59dd5e38 --- /dev/null +++ b/.github/workflows/validate-planetiler-profile.yml @@ -0,0 +1,10 @@ +name: Validate Occu-Med Planetiler Profile + +on: + workflow_dispatch: + +jobs: + manual-only: + runs-on: ubuntu-latest + steps: + - run: echo "Planetiler validation is paused until the worldwide PMTiles release is complete." diff --git a/.github/workflows/validate-size-aware-world-plan.yml b/.github/workflows/validate-size-aware-world-plan.yml new file mode 100644 index 00000000..181e44a1 --- /dev/null +++ b/.github/workflows/validate-size-aware-world-plan.yml @@ -0,0 +1,10 @@ +name: Validate size-aware worldwide plan + +on: + workflow_dispatch: + +jobs: + manual-only: + runs-on: ubuntu-latest + steps: + - run: echo "World-plan validation is paused until the missing-shard completion run finishes." diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index ea98319e..6db79783 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1,67 +1,10 @@ name: Validate Occu-Med open basemap on: - pull_request: - push: - branches: - - main - -permissions: - contents: read + workflow_dispatch: jobs: - validate: + manual-only: runs-on: ubuntu-latest - timeout-minutes: 15 - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - - - name: Install dependencies - run: npm install - - - name: Verify untouched Mapbox export blueprint - run: npm run check:export - - - name: Compile uploaded SVG sprites - run: npm run prepare:sprites - - - name: Convert style to independent runtime and apply screenshot calibration - run: npm run prepare:style - - - name: Check independent runtime resources - run: node scripts/check-runtime.mjs - - - name: Validate MapLibre style specification - run: node scripts/validate-maplibre-style.mjs - - - name: Check globe parity - run: node scripts/check-globe-parity.mjs - - - name: Check cartography parity - run: node scripts/check-cartography-parity.mjs - - - name: Check viewer quality - run: node scripts/check-viewer-quality.mjs - - - name: Check screenshot-reference calibration - run: node scripts/check-photo-reference.mjs - - - name: Check exact exported swatches - run: node scripts/check-exact-exported-swatches.mjs - - - name: Check high-DPI render clarity - run: node scripts/check-render-clarity.mjs - - - name: Build MapLibre viewer - run: npx vite build - - - name: Summarize generated compatibility report - run: | - node -e "const r=require('./public/style/compatibility-report.json'); console.log({original:r.originalLayerCount,runtime:r.runtimeLayerCount,skipped:r.skippedLayerCount,mappings:r.sourceLayerMappings})" + - run: echo "Open-basemap validation is paused until the worldwide PMTiles release is complete." diff --git a/README.md b/README.md index a18520f1..284daecb 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,8 @@ The goal is a close visual replica without a Mapbox token or Mapbox-hosted runti ## Runtime - MapLibre GL JS -- OpenFreeMap/OpenMapTiles vector data +- the worldwide Occu-Med Planetiler + PMTiles source when a regional archive is available +- a safe global open-vector fallback for low zoom and missing archives - open terrain and relief services - locally compiled sprites - open glyphs @@ -57,26 +58,35 @@ PUBLIC_ORIGIN=https://map-yxjb.onrender.com ## Reuse -```js -import * as maplibregl from 'maplibre-gl'; -import 'maplibre-gl/dist/maplibre-gl.css'; +Install the repository in the consuming application: -const response = await fetch('https://map-yxjb.onrender.com/style/occumed-open.json'); -const style = await response.json(); +```bash +npm install github:Occumed79/Map +``` -const map = new maplibregl.Map({ +Create the map through the shared helper rather than constructing a raw MapLibre instance from the style URL. The helper registers the PMTiles protocol, resolves the deployed origin, installs worldwide archive routing, and preserves application-owned overlays. + +```js +import { createOccumedMap } from '@occumed/map/src/occumed-map.js'; + +const map = await createOccumedMap({ container: 'map', - style, + styleUrl: 'https://map-yxjb.onrender.com/style/occumed-open.json', center: [-98.5, 28], - zoom: 2.05, - renderWorldCopies: false + zoom: 2.05 }); map.on('load', () => { // Add only this application's overlays here. }); + +map.on('occumedworldsourcechange', (event) => { + console.debug('Occu-Med regional basemap source', event.region || 'global fallback'); +}); ``` +Directly fetching the style and passing it to a separate `new maplibregl.Map(...)` instance is not supported for worldwide mode because that bypasses PMTiles protocol registration and regional source routing. + ## Validation The build verifies: @@ -85,4 +95,5 @@ The build verifies: - the generated style passes the MapLibre style specification; - no active source, sprite, or glyph URL points to Mapbox; - globe, terrain, landcover, water, labels, and viewer-quality settings remain calibrated to the screenshot reference set; +- worldwide PMTiles planning, release publication, byte-range proxying, and regional source switching remain wired; - no application-specific overlay data is included. diff --git a/diagnostics/argentina-pmtiles-failure.log b/diagnostics/argentina-pmtiles-failure.log new file mode 100644 index 00000000..9b4384d0 --- /dev/null +++ b/diagnostics/argentina-pmtiles-failure.log @@ -0,0 +1,300 @@ +2026-07-26T17:01:40.1809108Z 0:00:11 INF [osm_pass1] - Finished in 10s cpu:35s avg:3.6 +2026-07-26T17:01:40.1845150Z 0:00:11 INF [osm_pass1] - read 1x(3% 0.3s wait:9s) +2026-07-26T17:01:40.1847832Z 0:00:11 INF [osm_pass1] - parse 4x(59% 6s wait:2s) +2026-07-26T17:01:40.1850813Z 0:00:11 INF [osm_pass1] - process 1x(58% 6s wait:3s) +2026-07-26T17:01:40.1862454Z 0:00:11 INF [osm_pass2] - +2026-07-26T17:01:40.1865344Z 0:00:11 INF [osm_pass2] - Starting... +2026-07-26T17:01:48.1543202Z 0:00:19 DEB [osm_pass2:process] - Sorting long long multimap... +2026-07-26T17:01:48.1555741Z 0:00:19 DEB [osm_pass2:process] - Sorted long long multimap 0s cpu:0s avg:6.7 +2026-07-26T17:01:48.1566995Z 0:00:19 INF [osm_pass2:process] - Finished nodes: 58,884,937 (7.4M/s) in 8s cpu:31s avg:4 +2026-07-26T17:01:50.2649871Z 0:00:21 INF [osm_pass2] - nodes: [ 58M 100% 5.8M/s ] 1.1G ways: [ 11k 0% 1.1k/s ] rels: [ 0 0% 0/s ] features: [ 3.7M 376k/s ] 1.7G blocks: [ 7.3k 91% 733/s ] +2026-07-26T17:01:50.2652149Z cpus: 4 gc: 1% heap: 982M/5.3G direct: 216k postGC: 758M relInfo: 1.2M mpGeoms: 1.4M +2026-07-26T17:01:50.2653354Z read( 2%) -> (11/15) -> process(80% 79% 79% 80%) -> (1.1k/55k) -> write( 8%) +2026-07-26T17:02:00.3010427Z 0:00:31 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 229k 4% 21k/s ] rels: [ 0 0% 0/s ] features: [ 7.6M 385k/s ] 1.7G blocks: [ 7.3k 91% 2/s ] +2026-07-26T17:02:00.3012193Z cpus: 4 gc: 1% heap: 726M/5.3G direct: 216k postGC: 760M relInfo: 1.2M mpGeoms: 6M +2026-07-26T17:02:00.3013187Z read( 0%) -> (11/15) -> process(68% 67% 69% 68%) -> (2.5k/55k) -> write(11%) +2026-07-26T17:02:10.3218630Z 0:00:41 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 650k 11% 42k/s ] rels: [ 0 0% 0/s ] features: [ 13M 615k/s ] 1.7G blocks: [ 7.4k 92% 5/s ] +2026-07-26T17:02:10.3220785Z cpus: 4 gc: 1% heap: 1.8G/5.3G direct: 216k postGC: 760M relInfo: 1.2M mpGeoms: 14M +2026-07-26T17:02:10.3221756Z read( 0%) -> (11/15) -> process(90% 90% 92% 92%) -> (3.1k/55k) -> write(17%) +2026-07-26T17:02:20.3396117Z 0:00:51 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 1.4M 24% 77k/s ] rels: [ 0 0% 0/s ] features: [ 19M 590k/s ] 2.8G blocks: [ 7.5k 93% 9/s ] +2026-07-26T17:02:20.3397819Z cpus: 3.9 gc: 1% heap: 732M/5.3G direct: 216k postGC: 760M relInfo: 1.2M mpGeoms: 29M +2026-07-26T17:02:20.3398766Z read( 0%) -> (11/15) -> process(94% 90% 93% 92%) -> (1.2k/55k) -> write(16%) +2026-07-26T17:02:30.3578909Z 0:01:01 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 2.2M 38% 77k/s ] rels: [ 0 0% 0/s ] features: [ 24M 493k/s ] 2.8G blocks: [ 7.6k 94% 9/s ] +2026-07-26T17:02:30.3581838Z cpus: 3.9 gc: 1% heap: 783M/5.3G direct: 216k postGC: 765M relInfo: 1.2M mpGeoms: 43M +2026-07-26T17:02:30.3582831Z read( 0%) -> (11/15) -> process(92% 95% 97% 90%) -> (2k/55k) -> write(14%) +2026-07-26T17:02:40.3782002Z 0:01:11 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 2.7M 47% 52k/s ] rels: [ 0 0% 0/s ] features: [ 29M 456k/s ] 3.9G blocks: [ 7.6k 95% 6/s ] +2026-07-26T17:02:40.3783740Z cpus: 3.9 gc: 1% heap: 839M/5.3G direct: 216k postGC: 767M relInfo: 1.2M mpGeoms: 54M +2026-07-26T17:02:40.3784953Z read( 0%) -> (11/15) -> process(97% 94% 95% 88%) -> (2.3k/55k) -> write(13%) +2026-07-26T17:02:50.3990804Z 0:01:21 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 3.4M 58% 68k/s ] rels: [ 0 0% 0/s ] features: [ 34M 494k/s ] 3.9G blocks: [ 7.7k 96% 8/s ] +2026-07-26T17:02:50.3993191Z cpus: 3.9 gc: 1% heap: 1.5G/5.3G direct: 216k postGC: 766M relInfo: 1.2M mpGeoms: 60M +2026-07-26T17:02:50.3994522Z read( 0%) -> (11/15) -> process(94% 92% 96% 92%) -> (818/55k) -> write(15%) +2026-07-26T17:03:00.4215795Z 0:01:31 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 3.9M 67% 50k/s ] rels: [ 0 0% 0/s ] features: [ 38M 399k/s ] 3.9G blocks: [ 7.8k 97% 6/s ] +2026-07-26T17:03:00.4217964Z cpus: 4 gc: 1% heap: 990M/5.3G direct: 216k postGC: 773M relInfo: 1.2M mpGeoms: 72M +2026-07-26T17:03:00.4221691Z read( 0%) -> (11/15) -> process(94% 93% 95% 96%) -> (2.4k/55k) -> write(12%) +2026-07-26T17:03:10.4379270Z 0:01:41 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 4.6M 79% 71k/s ] rels: [ 0 0% 0/s ] features: [ 41M 365k/s ] 4.9G blocks: [ 7.9k 98% 9/s ] +2026-07-26T17:03:10.4381629Z cpus: 4 gc: 1% heap: 1.4G/5.3G direct: 216k postGC: 774M relInfo: 1.2M mpGeoms: 76M +2026-07-26T17:03:10.4382875Z read( 0%) -> (11/15) -> process(97% 94% 97% 91%) -> (3.3k/55k) -> write(11%) +2026-07-26T17:03:20.4579556Z 0:01:51 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.1M 89% 54k/s ] rels: [ 0 0% 0/s ] features: [ 45M 321k/s ] 4.9G blocks: [ 8k 99% 6/s ] +2026-07-26T17:03:20.4581893Z cpus: 4 gc: 1% heap: 1.7G/5.3G direct: 216k postGC: 772M relInfo: 1.2M mpGeoms: 81M +2026-07-26T17:03:20.4585377Z read( 0%) -> (11/15) -> process(95% 94% 95% 96%) -> (1.1k/55k) -> write( 9%) +2026-07-26T17:03:30.4766713Z 0:02:01 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.7M 98% 56k/s ] rels: [ 0 0% 0/s ] features: [ 48M 385k/s ] 4.9G blocks: [ 8k 100% 6/s ] +2026-07-26T17:03:30.4768813Z cpus: 4 gc: 1% heap: 1.2G/5.3G direct: 216k postGC: 774M relInfo: 1.2M mpGeoms: 87M +2026-07-26T17:03:30.4770051Z read( 0%) -> (11/15) -> process(98% 91% 95% 97%) -> (2.9k/55k) -> write(10%) +2026-07-26T17:03:31.8942985Z 0:02:03 INF [osm_pass2:process] - Finished ways: 5,838,952 (56k/s) in 1m44s cpu:6m50s gc:1s avg:4 +2026-07-26T17:03:40.4986913Z 0:02:11 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 9.4k/s ] rels: [ 15k 17% 1.5k/s ] features: [ 50M 133k/s ] 4.9G blocks: [ 8k 100% 1/s ] +2026-07-26T17:03:40.4988610Z cpus: 3.9 gc: 2% heap: 1.5G/5.3G direct: 216k postGC: 809M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:03:40.4989838Z read( -%) -> (6/15) -> process(77% 75% 76% 74%) -> (2k/55k) -> write( 3%) +2026-07-26T17:03:50.5149027Z 0:02:21 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 0/s ] rels: [ 35k 40% 1.9k/s ] features: [ 51M 147k/s ] 4.9G blocks: [ 8k 100% <1/s ] +2026-07-26T17:03:50.5151071Z cpus: 4 gc: 1% heap: 1G/5.3G direct: 216k postGC: 809M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:03:50.5151991Z read( -%) -> (5/15) -> process(93% 94% 95% 96%) -> (1k/55k) -> write( 3%) +2026-07-26T17:04:00.4498226Z 0:02:31 WAR [osm_pass2:process] - Unrecognized geometry type: GeometryCollection +2026-07-26T17:04:00.5257262Z 0:02:31 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 0/s ] rels: [ 63k 72% 2.8k/s ] features: [ 53M 148k/s ] 4.9G blocks: [ 8k 100% <1/s ] +2026-07-26T17:04:00.5259324Z cpus: 3.8 gc: 1% heap: 1G/5.3G direct: 216k postGC: 784M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:04:00.5260674Z read( -%) -> (0/15) -> process(87% 87% 88% 87%) -> (1.4k/55k) -> write( 3%) +2026-07-26T17:04:10.5426753Z 0:02:41 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 0/s ] rels: [ 83k 96% 2k/s ] features: [ 54M 162k/s ] 4.9G blocks: [ 8.1k 100% <1/s ] +2026-07-26T17:04:10.5428882Z cpus: 3.9 gc: 1% heap: 1.6G/5.3G direct: 216k postGC: 782M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:04:10.5430092Z read( -%) -> (0/15) -> process(93% 94% 96% 96%) -> (1.7k/55k) -> write( 4%) +2026-07-26T17:04:11.7417028Z 0:02:43 INF [osm_pass2:process] - Finished relations: 87,807 (2.2k/s) in 40s cpu:2m36s avg:3.9 +2026-07-26T17:04:11.9758699Z 0:02:43 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 0/s ] rels: [ 87k 100% 2.6k/s ] features: [ 55M 328k/s ] 4.2G blocks: [ 8.1k 100% 1/s ] +2026-07-26T17:04:11.9766476Z cpus: 3.9 gc: 0% heap: 1.6G/5.3G direct: 16k postGC: 782M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:04:11.9767476Z read( -%) -> (0/15) -> process( -% -% -% -%) -> (0/55k) -> write( -%) +2026-07-26T17:04:11.9768324Z 0:02:43 DEB [osm_pass2] - Processed 8,102 blocks: +2026-07-26T17:04:11.9770158Z 0:02:43 DEB [osm_pass2] - nodes: 58,884,937 (7.4M/s) in 8s cpu:31s avg:4 +2026-07-26T17:04:11.9771788Z 0:02:43 DEB [osm_pass2] - ways: 5,838,952 (56k/s) in 1m44s cpu:6m50s gc:1s avg:4 +2026-07-26T17:04:11.9772917Z 0:02:43 DEB [osm_pass2] - relations: 87,807 (2.2k/s) in 40s cpu:2m36s avg:3.9 +2026-07-26T17:04:11.9776827Z 0:02:43 INF [osm_pass2] - Finished in 2m32s cpu:9m59s gc:2s avg:3.9 +2026-07-26T17:04:11.9785698Z 0:02:43 INF [osm_pass2] - read 1x(0% 0.2s wait:1m51s done:40s) +2026-07-26T17:04:11.9790601Z 0:02:43 INF [osm_pass2] - process 4x(90% 2m16s) +2026-07-26T17:04:11.9791713Z 0:02:43 INF [osm_pass2] - write 1x(10% 15s wait:2m17s) +2026-07-26T17:04:12.0537472Z 0:02:43 INF [osm_pass2] - Deleting node.db to make room for output file +2026-07-26T17:04:12.0544930Z 0:02:43 INF [sort] - +2026-07-26T17:04:12.0545930Z 0:02:43 INF [sort] - Starting... +2026-07-26T17:04:12.0575557Z 0:02:43 INF [sort] - Grouped 6 chunks into 5 +2026-07-26T17:04:22.0721044Z 0:02:53 INF [sort] - chunks: [ 1 / 5 20% ] 5G +2026-07-26T17:04:22.0723389Z cpus: 2.6 gc: 8% heap: 1.9G/5.3G direct: 16k postGC: 2G +2026-07-26T17:04:22.0724899Z -> (3/7) -> worker(43%) +2026-07-26T17:04:32.0812291Z 0:03:03 INF [sort] - chunks: [ 3 / 5 60% ] 4.2G +2026-07-26T17:04:32.0816044Z cpus: 2.6 gc: 8% heap: 1.8G/5.3G direct: 16k postGC: 1.8G +2026-07-26T17:04:32.0817414Z -> (1/7) -> worker(47%) +2026-07-26T17:04:34.8790629Z 0:03:06 INF [sort] - chunks: [ 5 / 5 100% ] 4.2G +2026-07-26T17:04:34.8792413Z cpus: 1.4 gc: 0% heap: 1.8G/5.3G direct: 16k postGC: 1.8G +2026-07-26T17:04:34.8793296Z -> (0/7) -> worker( -%) +2026-07-26T17:04:34.8794284Z 0:03:06 INF [sort] - Finished in 23s cpu:56s gc:2s avg:2.5 +2026-07-26T17:04:34.8797572Z 0:03:06 INF [sort] - worker 1x(47% 11s wait:10s) +2026-07-26T17:04:34.8798280Z 0:03:06 INF [sort] - read:3s write:6s sort:12s +2026-07-26T17:04:34.8827449Z 0:03:06 INF [archive] - +2026-07-26T17:04:34.8828038Z 0:03:06 INF [archive] - Starting... +2026-07-26T17:04:34.8942747Z 0:03:06 INF [archive] - Unable to load tile weights from /data/tile_weights.tsv.gz, falling back to top 100k +2026-07-26T17:04:35.8278077Z 0:03:07 INF [archive:write] - Starting z0 +2026-07-26T17:04:35.8329178Z 0:03:07 INF [archive:write] - Finished z0 in 0s cpu:0s avg:0, now starting z1 +2026-07-26T17:04:35.8340022Z 0:03:07 INF [archive:write] - Finished z1 in 0s cpu:0s avg:0, now starting z2 +2026-07-26T17:04:35.8350062Z 0:03:07 INF [archive:write] - Finished z2 in 0s cpu:0s avg:0, now starting z3 +2026-07-26T17:04:40.9171075Z 0:03:12 INF [archive:write] - Finished z3 in 5s cpu:20s avg:4, now starting z4 +2026-07-26T17:04:44.9442645Z 0:03:16 INF [archive:write] - Finished z4 in 4s cpu:16s avg:3.9, now starting z5 +2026-07-26T17:04:45.1189012Z 0:03:16 INF [archive] - features: [ 538k 1% 53k/s ] 4.2G tiles: [ 17 1/s ] 384k +2026-07-26T17:04:45.1190691Z cpus: 4 gc: 7% heap: 1.1G/5.3G direct: 128k postGC: 629M +2026-07-26T17:04:45.1191644Z read( 4%) -> (258/273) -> encode(60% 64% 61% 62%) -> (269/270) -> write( 0%) +2026-07-26T17:04:45.1192743Z last tile: 5/10/18 (z5 47%) https://onthegomap.github.io/planetiler-demo/#5.5/-26.9476/-61.875 +2026-07-26T17:04:46.3841460Z 0:03:17 INF [archive:write] - Finished z5 in 1s cpu:6s avg:4, now starting z6 +2026-07-26T17:04:50.2955607Z 0:03:21 INF [archive:write] - Finished z6 in 4s cpu:16s avg:4, now starting z7 +2026-07-26T17:04:55.1315754Z 0:03:26 INF [archive] - features: [ 1.4M 3% 90k/s ] 4.2G tiles: [ 78 6/s ] 2.8M +2026-07-26T17:04:55.1316688Z cpus: 4 gc: 4% heap: 843M/5.3G direct: 274k postGC: 589M +2026-07-26T17:04:55.1317577Z read( 0%) -> (205/273) -> encode(78% 76% 77% 75%) -> (269/270) -> write( 0%) +2026-07-26T17:04:55.1318409Z last tile: 7/44/76 (z7 47%) https://onthegomap.github.io/planetiler-demo/#7.5/-33.12965/-54.84375 +2026-07-26T17:04:59.3416995Z 0:03:30 INF [archive:write] - Finished z7 in 9s cpu:36s avg:4, now starting z8 +2026-07-26T17:04:59.3657697Z 0:03:30 INF [archive:write] - Finished z8 in 0s cpu:0.1s avg:3.4, now starting z9 +2026-07-26T17:05:04.5025574Z 0:03:35 INF [archive:write] - Finished z9 in 5s cpu:20s avg:4, now starting z10 +2026-07-26T17:05:05.1471694Z 0:03:36 INF [archive] - features: [ 2.8M 5% 143k/s ] 4.2G tiles: [ 1.9k 183/s ] 31M +2026-07-26T17:05:05.1472977Z cpus: 4 gc: 3% heap: 804M/5.3G direct: 477k postGC: 542M +2026-07-26T17:05:05.1473866Z read( 3%) -> (263/273) -> encode(89% 88% 89% 90%) -> (269/270) -> write( 0%) +2026-07-26T17:05:05.1474956Z last tile: 10/318/649 (z10 46%) https://onthegomap.github.io/planetiler-demo/#10.5/-43.45278/-68.02734 +2026-07-26T17:05:11.0525207Z 0:03:42 INF [archive:write] - Finished z10 in 7s cpu:26s avg:4, now starting z11 +2026-07-26T17:05:15.1614260Z 0:03:46 INF [archive] - features: [ 4.9M 9% 210k/s ] 4.2G tiles: [ 11k 916/s ] 81M +2026-07-26T17:05:15.1615413Z cpus: 4 gc: 3% heap: 664M/5.3G direct: 477k postGC: 531M +2026-07-26T17:05:15.1616250Z read( 3%) -> (266/273) -> encode(88% 90% 88% 90%) -> (269/270) -> write( 1%) +2026-07-26T17:05:15.1617238Z last tile: 11/651/1170 (z11 47%) https://onthegomap.github.io/planetiler-demo/#11.5/-24.92627/-65.47852 +2026-07-26T17:05:17.7607829Z 0:03:49 WAR [archive:encode] - {x=691 y=1234 z=11} 1537kb uncompressed +2026-07-26T17:05:20.2455638Z 0:03:51 INF [archive:write] - Finished z11 in 9s cpu:36s avg:4, now starting z12 +2026-07-26T17:05:25.1809539Z 0:03:56 INF [archive] - features: [ 7.8M 14% 282k/s ] 4.2G tiles: [ 36k 2.4k/s ] 158M +2026-07-26T17:05:25.1810931Z cpus: 4 gc: 3% heap: 599M/5.3G direct: 719k postGC: 562M +2026-07-26T17:05:25.1811743Z read( 4%) -> (264/273) -> encode(90% 92% 90% 90%) -> (269/270) -> write( 2%) +2026-07-26T17:05:25.1812764Z last tile: 12/1385/2345 (z12 47%) https://onthegomap.github.io/planetiler-demo/#12.5/-25.28443/-58.22754 +2026-07-26T17:05:32.8594887Z 0:04:04 INF [archive:write] - Finished z12 in 13s cpu:50s avg:4, now starting z13 +2026-07-26T17:05:35.2006567Z 0:04:06 INF [archive] - features: [ 11M 20% 340k/s ] 4.2G tiles: [ 110k 7.4k/s ] 264M +2026-07-26T17:05:35.2007704Z cpus: 4 gc: 4% heap: 769M/5.3G direct: 719k postGC: 683M +2026-07-26T17:05:35.2008489Z read( 5%) -> (265/273) -> encode(87% 90% 89% 88%) -> (269/270) -> write( 3%) +2026-07-26T17:05:35.2009466Z last tile: 13/2589/5586 (z13 47%) https://onthegomap.github.io/planetiler-demo/#13.5/-54.6357/-66.20361 +2026-07-26T17:05:45.2162029Z 0:04:16 INF [archive] - features: [ 14M 27% 370k/s ] 4.2G tiles: [ 186k 7.5k/s ] 376M +2026-07-26T17:05:45.2163424Z cpus: 4 gc: 4% heap: 1.5G/5.3G direct: 719k postGC: 600M +2026-07-26T17:05:45.2166600Z read( 4%) -> (266/273) -> encode(91% 91% 89% 88%) -> (269/270) -> write( 3%) +2026-07-26T17:05:45.2168042Z last tile: 13/2768/4939 (z13 47%) https://onthegomap.github.io/planetiler-demo/#13.5/-34.72355/-58.3374 +2026-07-26T17:05:49.5957342Z 0:04:20 WAR [archive:encode] - {x=2536 y=4852 z=13} 1040kb uncompressed +2026-07-26T17:05:49.7845512Z 0:04:21 INF [archive:write] - Finished z13 in 17s cpu:1m7s avg:4, now starting z14 +2026-07-26T17:05:55.2420512Z 0:04:26 INF [archive] - features: [ 17M 32% 267k/s ] 4.2G tiles: [ 388k 20k/s ] 495M +2026-07-26T17:05:55.2422119Z cpus: 4 gc: 4% heap: 671M/5.3G direct: 719k postGC: 534M +2026-07-26T17:05:55.2423190Z read( 4%) -> (266/273) -> encode(88% 88% 91% 87%) -> (269/270) -> write( 5%) +2026-07-26T17:05:55.2424330Z last tile: 14/5682/9515 (z14 47%) https://onthegomap.github.io/planetiler-demo/#14.5/-27.90706/-55.14038 +2026-07-26T17:06:05.2546879Z 0:04:36 INF [archive] - features: [ 20M 38% 330k/s ] 4.2G tiles: [ 643k 25k/s ] 633M +2026-07-26T17:06:05.2551216Z cpus: 4 gc: 4% heap: 807M/5.3G direct: 719k postGC: 608M +2026-07-26T17:06:05.2552641Z read( 4%) -> (266/273) -> encode(89% 90% 88% 86%) -> (269/270) -> write( 7%) +2026-07-26T17:06:05.2553872Z last tile: 14/5441/9743 (z14 47%) https://onthegomap.github.io/planetiler-demo/#14.5/-32.24068/-60.43579 +2026-07-26T17:06:12.6471382Z 0:04:43 INF [archive:write] - Finished z14 in 23s cpu:1m31s avg:4, now starting z15 +2026-07-26T17:06:15.2743965Z 0:04:46 INF [archive] - features: [ 24M 44% 355k/s ] 4.2G tiles: [ 1M 40k/s ] 790M +2026-07-26T17:06:15.2746200Z cpus: 4 gc: 4% heap: 1.1G/5.3G direct: 719k postGC: 586M +2026-07-26T17:06:15.2747615Z read( 3%) -> (264/273) -> encode(89% 90% 91% 92%) -> (269/270) -> write(10%) +2026-07-26T17:06:15.2748894Z last tile: 15/10239/21083 (z15 46%) https://onthegomap.github.io/planetiler-demo/#15.5/-45.79434/-67.50549 +2026-07-26T17:06:25.2883024Z 0:04:56 INF [archive] - features: [ 26M 49% 246k/s ] 4.2G tiles: [ 1.5M 50k/s ] 932M +2026-07-26T17:06:25.2884225Z cpus: 4 gc: 4% heap: 973M/5.3G direct: 719k postGC: 817M +2026-07-26T17:06:25.2884982Z read( 3%) -> (265/273) -> encode(91% 88% 90% 92%) -> (269/270) -> write(11%) +2026-07-26T17:06:25.2885956Z last tile: 15/10552/18879 (z15 47%) https://onthegomap.github.io/planetiler-demo/#15.5/-26.42631/-64.06677 +2026-07-26T17:06:35.3035951Z 0:05:06 INF [archive] - features: [ 30M 55% 322k/s ] 4.2G tiles: [ 2.1M 60k/s ] 1G +2026-07-26T17:06:35.3037379Z cpus: 4 gc: 5% heap: 1.1G/5.3G direct: 719k postGC: 670M +2026-07-26T17:06:35.3038334Z read( 5%) -> (266/273) -> encode(86% 89% 88% 88%) -> (269/270) -> write(12%) +2026-07-26T17:06:35.3039448Z last tile: 15/10919/19634 (z15 47%) https://onthegomap.github.io/planetiler-demo/#15.5/-33.60089/-60.03479 +2026-07-26T17:06:45.3323089Z 0:05:16 INF [archive] - features: [ 33M 61% 329k/s ] 4.2G tiles: [ 2.6M 52k/s ] 1.2G +2026-07-26T17:06:45.3325083Z cpus: 4 gc: 4% heap: 958M/5.3G direct: 719k postGC: 641M +2026-07-26T17:06:45.3326463Z read( 3%) -> (262/273) -> encode(87% 87% 90% 93%) -> (268/270) -> write(11%) +2026-07-26T17:06:45.3327739Z last tile: 15/10152/19830 (z15 47%) https://onthegomap.github.io/planetiler-demo/#15.5/-35.37561/-68.4613 +2026-07-26T17:06:47.5763263Z 0:05:18 INF [archive:write] - Finished z15 in 35s cpu:2m19s gc:2s avg:4, now starting z16 +2026-07-26T17:06:55.3501352Z 0:05:26 INF [archive] - features: [ 36M 66% 300k/s ] 4.2G tiles: [ 3.7M 107k/s ] 1.4G +2026-07-26T17:06:55.3513001Z cpus: 4 gc: 4% heap: 1.2G/5.3G direct: 719k postGC: 746M +2026-07-26T17:06:55.3513847Z read( 3%) -> (254/273) -> encode(91% 88% 84% 90%) -> (269/270) -> write(19%) +2026-07-26T17:06:55.3514883Z last tile: 16/20963/41388 (z16 46%) https://onthegomap.github.io/planetiler-demo/#16.5/-42.73289/-64.84406 +2026-07-26T17:07:05.3681584Z 0:05:36 INF [archive] - features: [ 39M 71% 279k/s ] 4.2G tiles: [ 4.6M 86k/s ] 1.5G +2026-07-26T17:07:05.3683757Z cpus: 4 gc: 4% heap: 1.2G/5.3G direct: 719k postGC: 884M +2026-07-26T17:07:05.3684990Z read( 4%) -> (266/273) -> encode(93% 88% 87% 86%) -> (269/270) -> write(15%) +2026-07-26T17:07:05.3686256Z last tile: 16/22078/37947 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-27.34981/-58.71918 +2026-07-26T17:07:15.3773881Z 0:05:46 INF [archive] - features: [ 42M 77% 324k/s ] 4.2G tiles: [ 5.8M 122k/s ] 1.7G +2026-07-26T17:07:15.3776239Z cpus: 4 gc: 5% heap: 1.7G/5.3G direct: 719k postGC: 817M +2026-07-26T17:07:15.3777388Z read( 4%) -> (265/273) -> encode(88% 89% 90% 84%) -> (269/270) -> write(18%) +2026-07-26T17:07:15.3778755Z last tile: 16/21076/38065 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-27.92405/-64.22333 +2026-07-26T17:07:25.3963008Z 0:05:56 INF [archive] - features: [ 45M 83% 338k/s ] 4.2G tiles: [ 6.9M 115k/s ] 1.8G +2026-07-26T17:07:25.3965222Z cpus: 4 gc: 5% heap: 1.6G/5.3G direct: 719k postGC: 825M +2026-07-26T17:07:25.3966368Z read( 5%) -> (263/273) -> encode(85% 87% 83% 91%) -> (269/270) -> write(17%) +2026-07-26T17:07:25.3967741Z last tile: 16/21307/39015 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-32.43329/-62.95441 +2026-07-26T17:07:35.4127365Z 0:06:06 INF [archive] - features: [ 50M 91% 425k/s ] 4.2G tiles: [ 7.5M 58k/s ] 2G +2026-07-26T17:07:35.4130933Z cpus: 4 gc: 5% heap: 1.7G/5.3G direct: 719k postGC: 911M +2026-07-26T17:07:35.4132624Z read( 5%) -> (263/273) -> encode(85% 84% 88% 88%) -> (268/270) -> write(12%) +2026-07-26T17:07:35.4134676Z last tile: 16/21688/39577 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-35.00075/-60.86151 +2026-07-26T17:07:45.4340159Z 0:06:16 INF [archive] - features: [ 53M 96% 306k/s ] 4.2G tiles: [ 8.5M 100k/s ] 2.2G +2026-07-26T17:07:45.4341722Z cpus: 4 gc: 5% heap: 817M/5.3G direct: 719k postGC: 672M +2026-07-26T17:07:45.4342499Z read( 4%) -> (266/273) -> encode(86% 88% 86% 84%) -> (269/270) -> write(18%) +2026-07-26T17:07:45.4343500Z last tile: 16/19890/40344 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-38.37827/-70.73822 +2026-07-26T17:07:51.5754817Z 0:06:22 INF [archive:write] - Finished z16 in 1m4s cpu:4m14s gc:3s avg:4 +2026-07-26T17:07:51.5785373Z 0:06:22 INF [archive:write] - Building directories with 4096 entries per leaf, attempt 1... +2026-07-26T17:07:52.7899168Z 0:06:24 INF [archive:write] - Built directories with 1600 leaves, 6503B root directory +2026-07-26T17:07:52.8723266Z 0:06:24 INF [archive:write] - Writing metadata and leaf directories... +2026-07-26T17:07:52.8784736Z 0:06:24 INF [archive:write] - Writing header... +2026-07-26T17:07:52.8788716Z 0:06:24 INF [archive:write] - # addressed tiles: 9310569 +2026-07-26T17:07:52.8794173Z 0:06:24 INF [archive:write] - # of tile entries: 6550288 +2026-07-26T17:07:52.8795594Z 0:06:24 INF [archive:write] - # of tile contents: 6088634 +2026-07-26T17:07:52.8796449Z 0:06:24 INF [archive:write] - Root directory: 6.5kB +2026-07-26T17:07:52.8797102Z 0:06:24 INF [archive:write] - # leaves: 1600 +2026-07-26T17:07:52.8797717Z 0:06:24 INF [archive:write] - Leaf directories: 12MB +2026-07-26T17:07:52.8798199Z 0:06:24 INF [archive:write] - Avg leaf size: 8kB +2026-07-26T17:07:52.8798649Z 0:06:24 INF [archive:write] - Total dir bytes: 12MB +2026-07-26T17:07:52.8799384Z 0:06:24 INF [archive:write] - Average bytes per addressed tile: 1.3805561185358275 +2026-07-26T17:07:52.8832059Z 0:06:24 INF [archive] - features: [ 55M 100% 278k/s ] 4.2G tiles: [ 9.3M 97k/s ] 2.3G +2026-07-26T17:07:52.8833906Z cpus: 3.5 gc: 3% heap: 679M/5.3G direct: 16k postGC: 711M +2026-07-26T17:07:52.8834449Z read( -%) -> (0/273) -> encode( -% -% -% -%) -> (0/270) -> write( -%) +2026-07-26T17:07:52.8835084Z last tile: 16/21386/36849 (z16 48%) https://onthegomap.github.io/planetiler-demo/#16.5/-21.86915/-62.52045 +2026-07-26T17:07:52.8835654Z 0:06:24 DEB [archive] - Tile stats: +2026-07-26T17:07:52.8908477Z 0:06:24 DEB [archive] - Biggest tiles (gzipped) +2026-07-26T17:07:52.8909814Z 1. 11/691/1234 (702k) https://onthegomap.github.io/planetiler-demo/#11.5/-34.66933/-58.44727 (transportation:811k) +2026-07-26T17:07:52.8911674Z 2. 13/2536/4852 (542k) https://onthegomap.github.io/planetiler-demo/#13.5/-31.52236/-68.53271 (building:760k) +2026-07-26T17:07:52.8913185Z 3. 13/2536/4853 (469k) https://onthegomap.github.io/planetiler-demo/#13.5/-31.55981/-68.53271 (building:688k) +2026-07-26T17:07:52.8914688Z 4. 9/172/308 (461k) https://onthegomap.github.io/planetiler-demo/#9.5/-34.59654/-58.71094 (transportation:580k) +2026-07-26T17:07:52.8916183Z 5. 11/691/1233 (448k) https://onthegomap.github.io/planetiler-demo/#11.5/-34.52463/-58.44727 (transportation:448k) +2026-07-26T17:07:52.8917686Z 6. 13/2535/4852 (439k) https://onthegomap.github.io/planetiler-demo/#13.5/-31.52236/-68.57666 (building:601k) +2026-07-26T17:07:52.8919134Z 7. 13/2717/4916 (419k) https://onthegomap.github.io/planetiler-demo/#13.5/-33.88866/-60.57861 (building:761k) +2026-07-26T17:07:52.8921029Z 8. 11/690/1234 (398k) https://onthegomap.github.io/planetiler-demo/#11.5/-34.66933/-58.62305 (transportation:573k) +2026-07-26T17:07:52.8922575Z 9. 10/345/617 (396k) https://onthegomap.github.io/planetiler-demo/#10.5/-34.74149/-58.53516 (transportation:446k) +2026-07-26T17:07:52.8924182Z 10. 12/1383/2468 (392k) https://onthegomap.github.io/planetiler-demo/#12.5/-34.6332/-58.40332 (poi:385k) +2026-07-26T17:07:52.8951588Z 0:06:24 INF [archive] - Other tiles with large layers +2026-07-26T17:07:52.8952836Z 8/85/153 (233k) https://onthegomap.github.io/planetiler-demo/#8.5/-33.72235/-59.76562 (landuse:233k) +2026-07-26T17:07:52.8954216Z 6/21/38 (130k) https://onthegomap.github.io/planetiler-demo/#6.5/-34.27503/-59.0625 (water_name:130k) +2026-07-26T17:07:52.9111136Z 0:06:24 DEB [archive] - Max tile sizes +2026-07-26T17:07:52.9112106Z z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15 z16 all +2026-07-26T17:07:52.9113265Z boundary 828 1.8k 6.2k 18k 21k 18k 33k 16k 17k 7.5k 4.4k 2.8k 2.7k 1.5k 1.3k 852 696 33k +2026-07-26T17:07:52.9114452Z place 0 0 119 927 1k 2.9k 2.3k 10k 10k 9.5k 35k 23k 20k 11k 3.7k 1.6k 1k 35k +2026-07-26T17:07:52.9115581Z landcover 0 0 0 23k 48k 55k 45k 55k 78k 69k 60k 66k 28k 25k 19k 18k 9.7k 78k +2026-07-26T17:07:52.9117581Z transportation 0 0 0 0 63k 58k 79k 65k  265k  580k  446k  811k  333k  169k 68k 29k 15k  811k +2026-07-26T17:07:52.9119652Z water 0 0 0 0 18k 36k 50k 74k 69k 67k 59k 39k 22k 18k 11k 6k 2.6k 74k +2026-07-26T17:07:52.9121418Z park 0 0 0 0 0 22k 12k 16k 11k 16k 35k 34k 25k 13k 5.6k 3.7k 2.2k 35k +2026-07-26T17:07:52.9122864Z water_name 0 0 0 0 0 49k  130k 67k 60k 35k 24k 14k 9.8k 8.9k 5.4k 3.4k 2.3k  130k +2026-07-26T17:07:52.9124548Z landuse 0 0 0 0 0 0 88k  225k  233k  199k  207k  199k  129k 56k 36k 15k 7.6k  233k +2026-07-26T17:07:52.9125914Z waterway 0 0 0 0 0 0 31k 17k 14k 11k 30k 19k 14k 7.5k 5.3k 2.9k 1.5k 31k +2026-07-26T17:07:52.9127083Z transportation_name 0 0 0 0 0 0 0 4.4k 16k 15k 62k 33k 95k 33k 16k 5.7k 2.7k 95k +2026-07-26T17:07:52.9128247Z aerodrome_label 0 0 0 0 0 0 0 0 2.1k 1k 467 351 306 302 302 302 210 2.1k +2026-07-26T17:07:52.9129576Z mountain_peak 0 0 0 0 0 0 0 0 25k 10k 4.8k 2.2k 1.3k 634 374 297 235 25k +2026-07-26T17:07:52.9131190Z aeroway 0 0 0 0 0 0 0 0 0 3.1k 3.2k 2.6k 3k 2.7k 2.2k 1.7k 1.2k 3.2k +2026-07-26T17:07:52.9132874Z poi 0 0 0 0 0 0 0 0 0 0 0  508k  385k  183k 64k 31k 18k  508k +2026-07-26T17:07:52.9134677Z building 0 0 0 0 0 0 0 0 0 0 0 0 0  761k  585k  232k 80k  761k +2026-07-26T17:07:52.9136069Z housenumber 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23k 23k +2026-07-26T17:07:52.9137430Z full tile 828 1.8k 6.3k 42k 153k 222k 447k 472k 551k 918k 804k 1.5M 852k 1M 687k 251k 104k 1.5M +2026-07-26T17:07:52.9138861Z gzipped 598 1.1k 3.5k 23k 82k 124k 257k 276k 286k 461k 396k 702k 392k 542k 355k 135k 55k 702k +2026-07-26T17:07:52.9140567Z 0:06:24 DEB [archive] - Max tile: 1.5M (gzipped: 702k) +2026-07-26T17:07:52.9142003Z 0:06:24 DEB [archive] - Avg tile: 144k (gzipped: 75k) using weighted average based on OSM traffic +2026-07-26T17:07:52.9143335Z 0:06:24 DEB [archive] - # tiles: 9,310,569 +2026-07-26T17:07:52.9144316Z 0:06:24 DEB [archive] - # features: 55,359,217 +2026-07-26T17:07:52.9145459Z 0:06:24 INF [archive] - Finished in 3m18s cpu:13m2s gc:9s avg:3.9 +2026-07-26T17:07:52.9146709Z 0:06:24 INF [archive] - read 1x(4% 7s wait:3m4s done:3s) +2026-07-26T17:07:52.9147824Z 0:06:24 INF [archive] - encode 4x(86% 2m50s done:2s) +2026-07-26T17:07:52.9148941Z 0:06:24 INF [archive] - write 1x(9% 17s wait:2m44s done:2s) +2026-07-26T17:07:52.9152378Z 0:06:24 INF [archive] - Finished in 6m23s cpu:24m35s gc:12s avg:3.8 +2026-07-26T17:07:52.9155398Z 0:06:24 INF [archive] - FINISHED! +2026-07-26T17:07:52.9161937Z 0:06:24 INF [archive] - +2026-07-26T17:07:52.9169121Z 0:06:24 INF [archive] - ---------------------------------------- +2026-07-26T17:07:52.9176101Z 0:06:24 INF [archive] - data errors: +2026-07-26T17:07:52.9182910Z 0:06:24 INF [archive] - render_snap_fix_input 1,001,868 +2026-07-26T17:07:52.9184238Z 0:06:24 INF [archive] - osm_boundary_missing_way 874 +2026-07-26T17:07:52.9190271Z 0:06:24 INF [archive] - osm_multipolygon_missing_way 500 +2026-07-26T17:07:52.9191893Z 0:06:24 INF [archive] - feature_polygon_osm_invalid_multipolygon_empty_after_fix 83 +2026-07-26T17:07:52.9193210Z 0:06:24 INF [archive] - merge_snap_fix_input2 28 +2026-07-26T17:07:52.9194084Z 0:06:24 INF [archive] - merge_snap_fix_input3 17 +2026-07-26T17:07:52.9194958Z 0:06:24 INF [archive] - merge_snap_fix_input 15 +2026-07-26T17:07:52.9201360Z 0:06:24 INF [archive] - osm_boundary_duplicate_member 10 +2026-07-26T17:07:52.9202915Z 0:06:24 INF [archive] - ---------------------------------------- +2026-07-26T17:07:52.9204186Z 0:06:24 INF [archive] - overall 6m23s cpu:24m35s gc:12s avg:3.8 +2026-07-26T17:07:52.9209832Z 0:06:24 INF [archive] - osm_pass1 10s cpu:35s avg:3.6 +2026-07-26T17:07:52.9211379Z 0:06:24 INF [archive] - read 1x(3% 0.3s wait:9s) +2026-07-26T17:07:52.9217258Z 0:06:24 INF [archive] - parse 4x(59% 6s wait:2s) +2026-07-26T17:07:52.9218618Z 0:06:24 INF [archive] - process 1x(58% 6s wait:3s) +2026-07-26T17:07:52.9219841Z 0:06:24 INF [archive] - osm_pass2 2m32s cpu:9m59s gc:2s avg:3.9 +2026-07-26T17:07:52.9225809Z 0:06:24 INF [archive] - read 1x(0% 0.2s wait:1m51s done:40s) +2026-07-26T17:07:52.9227328Z 0:06:24 INF [archive] - process 4x(90% 2m16s) +2026-07-26T17:07:52.9233336Z 0:06:24 INF [archive] - write 1x(10% 15s wait:2m17s) +2026-07-26T17:07:52.9234803Z 0:06:24 INF [archive] - sort 23s cpu:56s gc:2s avg:2.5 +2026-07-26T17:07:52.9240829Z 0:06:24 INF [archive] - worker 1x(47% 11s wait:10s) +2026-07-26T17:07:52.9242113Z 0:06:24 INF [archive] - archive 3m18s cpu:13m2s gc:9s avg:3.9 +2026-07-26T17:07:52.9248055Z 0:06:24 INF [archive] - read 1x(4% 7s wait:3m4s done:3s) +2026-07-26T17:07:52.9249759Z 0:06:24 INF [archive] - encode 4x(86% 2m50s done:2s) +2026-07-26T17:07:52.9256087Z 0:06:24 INF [archive] - write 1x(9% 17s wait:2m44s done:2s) +2026-07-26T17:07:52.9257891Z 0:06:24 INF [archive] - ---------------------------------------- +2026-07-26T17:07:52.9264333Z 0:06:24 INF [archive] - archive 2.3GB +2026-07-26T17:07:52.9276066Z 0:06:24 INF [archive] - features 4.2GB +2026-07-26T17:07:54.9714367Z -rw-r--r-- 1 root root 2.2G Jul 26 17:07 /home/runner/work/Map/Map/artifacts/occumed-argentina.pmtiles +2026-07-26T17:07:54.9715427Z -rw-r--r-- 1 runner runner 92 Jul 26 17:07 /home/runner/work/Map/Map/artifacts/occumed-argentina.pmtiles.sha256 +2026-07-26T17:07:54.9716170Z Created /home/runner/work/Map/Map/artifacts/occumed-argentina.pmtiles +2026-07-26T17:07:54.9717001Z Build the app with: +2026-07-26T17:07:54.9717821Z OCCUMED_PMTILES_URL=__OCCUMED_PUBLIC_ORIGIN__/tiles/occumed-argentina.pmtiles npm run build +2026-07-26T17:07:55.0419311Z Archive exceeds GitHub Release's safe per-file ceiling and must be subdivided: argentina +2026-07-26T17:07:55.0420461Z archive_size_bytes=2333853061 +2026-07-26T17:07:55.0493252Z ##[error]Process completed with exit code 1. +2026-07-26T17:07:55.0648210Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +2026-07-26T17:07:55.0649767Z Post job cleanup. +2026-07-26T17:07:55.1540775Z [command]/usr/bin/git version +2026-07-26T17:07:55.1587232Z git version 2.54.0 +2026-07-26T17:07:55.1628906Z Temporarily overriding HOME='/home/runner/work/_temp/a54dc32f-ecb0-433a-8a89-5ef41c872dcd' before making global git config changes +2026-07-26T17:07:55.1630674Z Adding repository directory to the temporary git global config as a safe directory +2026-07-26T17:07:55.1634811Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +2026-07-26T17:07:55.1679602Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-26T17:07:55.1722412Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-26T17:07:55.2014507Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-07-26T17:07:55.2047683Z http.https://github.com/.extraheader +2026-07-26T17:07:55.2061244Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-07-26T17:07:55.2103144Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-07-26T17:07:55.2397447Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-07-26T17:07:55.2438005Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-07-26T17:07:55.2870629Z Cleaning up orphan processes +2026-07-26T17:07:55.3247090Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/diagnostics/enfield-failure-latest.log b/diagnostics/enfield-failure-latest.log new file mode 100644 index 00000000..5f4d653f --- /dev/null +++ b/diagnostics/enfield-failure-latest.log @@ -0,0 +1,870 @@ +2026-07-27T04:40:40.7855805Z Current runner version: '2.335.1' +2026-07-27T04:40:40.7882891Z ##[group]Runner Image Provisioner +2026-07-27T04:40:40.7883814Z Hosted Compute Agent +2026-07-27T04:40:40.7884520Z Version: 20260707.563 +2026-07-27T04:40:40.7885161Z Commit: 02667638d2b423fbc733a8e32a88b44996a3ba6e +2026-07-27T04:40:40.7885924Z Build Date: 2026-07-07T19:33:50Z +2026-07-27T04:40:40.7886685Z Worker ID: {041af988-7882-4692-b7f9-37ea50fa5700} +2026-07-27T04:40:40.7887415Z Azure Region: eastus +2026-07-27T04:40:40.7888048Z ##[endgroup] +2026-07-27T04:40:40.7889904Z ##[group]Operating System +2026-07-27T04:40:40.7890551Z Ubuntu +2026-07-27T04:40:40.7891179Z 24.04.4 +2026-07-27T04:40:40.7891699Z LTS +2026-07-27T04:40:40.7892247Z ##[endgroup] +2026-07-27T04:40:40.7892842Z ##[group]Runner Image +2026-07-27T04:40:40.7893417Z Image: ubuntu-24.04 +2026-07-27T04:40:40.7894032Z Version: 20260720.247.2 +2026-07-27T04:40:40.7895293Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260720.247/images/ubuntu/Ubuntu2404-Readme.md +2026-07-27T04:40:40.7896854Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260720.247 +2026-07-27T04:40:40.7897807Z ##[endgroup] +2026-07-27T04:40:40.7899628Z ##[group]GITHUB_TOKEN Permissions +2026-07-27T04:40:40.7901811Z Contents: write +2026-07-27T04:40:40.7902542Z Metadata: read +2026-07-27T04:40:40.7903110Z ##[endgroup] +2026-07-27T04:40:40.7905275Z Secret source: Actions +2026-07-27T04:40:40.7906378Z Prepare workflow directory +2026-07-27T04:40:40.8327368Z Prepare all required actions +2026-07-27T04:40:40.8366443Z Getting action download info +2026-07-27T04:40:41.0289175Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262) +2026-07-27T04:40:41.3368667Z Complete job name: enfield +2026-07-27T04:40:41.4226051Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +2026-07-27T04:40:41.4235531Z ##[group]Run actions/checkout@v4 +2026-07-27T04:40:41.4236300Z with: +2026-07-27T04:40:41.4236739Z repository: Occumed79/Map +2026-07-27T04:40:41.4240790Z token: *** +2026-07-27T04:40:41.4241223Z ssh-strict: true +2026-07-27T04:40:41.4241664Z ssh-user: git +2026-07-27T04:40:41.4242107Z persist-credentials: true +2026-07-27T04:40:41.4242591Z clean: true +2026-07-27T04:40:41.4243038Z sparse-checkout-cone-mode: true +2026-07-27T04:40:41.4243558Z fetch-depth: 1 +2026-07-27T04:40:41.4243984Z fetch-tags: false +2026-07-27T04:40:41.4244429Z show-progress: true +2026-07-27T04:40:41.4244867Z lfs: false +2026-07-27T04:40:41.4245337Z submodules: false +2026-07-27T04:40:41.4245785Z set-safe-directory: true +2026-07-27T04:40:41.4246282Z allow-unsafe-pr-checkout: false +2026-07-27T04:40:41.4247268Z env: +2026-07-27T04:40:41.4247721Z WORLD_RELEASE_TAG: occumed-world-v1 +2026-07-27T04:40:41.4248527Z ##[endgroup] +2026-07-27T04:40:41.5285260Z Syncing repository: Occumed79/Map +2026-07-27T04:40:41.5287908Z ##[group]Getting Git version info +2026-07-27T04:40:41.5289238Z Working directory is '/home/runner/work/Map/Map' +2026-07-27T04:40:41.5290854Z [command]/usr/bin/git version +2026-07-27T04:40:41.5379806Z git version 2.54.0 +2026-07-27T04:40:41.5411344Z ##[endgroup] +2026-07-27T04:40:41.5432450Z Temporarily overriding HOME='/home/runner/work/_temp/c9037f80-4131-49c1-853e-14460281d8bb' before making global git config changes +2026-07-27T04:40:41.5433925Z Adding repository directory to the temporary git global config as a safe directory +2026-07-27T04:40:41.5438562Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +2026-07-27T04:40:41.5505210Z Deleting the contents of '/home/runner/work/Map/Map' +2026-07-27T04:40:41.5511270Z ##[group]Initializing the repository +2026-07-27T04:40:41.5516800Z [command]/usr/bin/git init /home/runner/work/Map/Map +2026-07-27T04:40:41.5640669Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-07-27T04:40:41.5643036Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-07-27T04:40:41.5644387Z hint: to use in all of your new repositories, which will suppress this warning, +2026-07-27T04:40:41.5645390Z hint: call: +2026-07-27T04:40:41.5645919Z hint: +2026-07-27T04:40:41.5646898Z hint: git config --global init.defaultBranch +2026-07-27T04:40:41.5648296Z hint: +2026-07-27T04:40:41.5649857Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-07-27T04:40:41.5652077Z hint: 'development'. The just-created branch can be renamed via this command: +2026-07-27T04:40:41.5653399Z hint: +2026-07-27T04:40:41.5654362Z hint: git branch -m +2026-07-27T04:40:41.5655084Z hint: +2026-07-27T04:40:41.5656657Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-07-27T04:40:41.5658312Z Initialized empty Git repository in /home/runner/work/Map/Map/.git/ +2026-07-27T04:40:41.5665141Z [command]/usr/bin/git remote add origin https://github.com/Occumed79/Map +2026-07-27T04:40:41.5714732Z ##[endgroup] +2026-07-27T04:40:41.5715633Z ##[group]Disabling automatic garbage collection +2026-07-27T04:40:41.5720548Z [command]/usr/bin/git config --local gc.auto 0 +2026-07-27T04:40:41.5755795Z ##[endgroup] +2026-07-27T04:40:41.5756606Z ##[group]Setting up auth +2026-07-27T04:40:41.5764823Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-27T04:40:41.5809171Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-27T04:40:41.6231985Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-07-27T04:40:41.6272843Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-07-27T04:40:41.6506254Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-07-27T04:40:41.6545743Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-07-27T04:40:41.6781764Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-07-27T04:40:41.6823615Z ##[endgroup] +2026-07-27T04:40:41.6824603Z ##[group]Fetching the repository +2026-07-27T04:40:41.6834486Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +82a2e2a6e406cfead69660a858676c2cd523f68a:refs/remotes/origin/feat/custom-planetiler-pmtiles-basemap +2026-07-27T04:40:42.0908014Z From https://github.com/Occumed79/Map +2026-07-27T04:40:42.0910709Z * [new ref] 82a2e2a6e406cfead69660a858676c2cd523f68a -> origin/feat/custom-planetiler-pmtiles-basemap +2026-07-27T04:40:42.0944665Z ##[endgroup] +2026-07-27T04:40:42.0946023Z ##[group]Determining the checkout info +2026-07-27T04:40:42.0948120Z ##[endgroup] +2026-07-27T04:40:42.0954165Z [command]/usr/bin/git sparse-checkout disable +2026-07-27T04:40:42.1006728Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-07-27T04:40:42.1043721Z ##[group]Checking out the ref +2026-07-27T04:40:42.1048940Z [command]/usr/bin/git checkout --progress --force -B feat/custom-planetiler-pmtiles-basemap refs/remotes/origin/feat/custom-planetiler-pmtiles-basemap +2026-07-27T04:40:42.1708690Z Switched to a new branch 'feat/custom-planetiler-pmtiles-basemap' +2026-07-27T04:40:42.1712791Z branch 'feat/custom-planetiler-pmtiles-basemap' set up to track 'origin/feat/custom-planetiler-pmtiles-basemap'. +2026-07-27T04:40:42.1727451Z ##[endgroup] +2026-07-27T04:40:42.1783412Z [command]/usr/bin/git log -1 --format=%H +2026-07-27T04:40:42.1812739Z 82a2e2a6e406cfead69660a858676c2cd523f68a +2026-07-27T04:40:42.2421751Z Prepare all required actions +2026-07-27T04:40:42.2745409Z ##[group]Run ./.github/actions/build-pmtiles-shard-final +2026-07-27T04:40:42.2746857Z with: +2026-07-27T04:40:42.2747746Z id: enfield +2026-07-27T04:40:42.2748991Z slug: enfield +2026-07-27T04:40:42.2749948Z name: Enfield +2026-07-27T04:40:42.2750853Z continent: europe +2026-07-27T04:40:42.2752568Z pbf-url: https://download.geofabrik.de/europe/united-kingdom/england/greater-london-latest.osm.pbf +2026-07-27T04:40:42.2754636Z extract-bbox: -0.185433,51.60542,-0.008839,51.69193 +2026-07-27T04:40:42.2755858Z west: -0.185433 +2026-07-27T04:40:42.2756738Z south: 51.60542 +2026-07-27T04:40:42.2757625Z east: -0.008839 +2026-07-27T04:40:42.2758660Z north: 51.69193 +2026-07-27T04:40:42.2759636Z asset-name: occumed-enfield.pmtiles +2026-07-27T04:40:42.2760815Z release-tag: occumed-world-v1 +2026-07-27T04:40:42.2761896Z env: +2026-07-27T04:40:42.2762792Z WORLD_RELEASE_TAG: occumed-world-v1 +2026-07-27T04:40:42.2764015Z ##[endgroup] +2026-07-27T04:40:42.2891304Z ##[group]Run set -euo pipefail +2026-07-27T04:40:42.2892607Z set -euo pipefail +2026-07-27T04:40:42.2894307Z release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')" +2026-07-27T04:40:42.2896120Z row="$( +2026-07-27T04:40:42.2897044Z  gh api --paginate \ +2026-07-27T04:40:42.2898774Z  "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ +2026-07-27T04:40:42.2900529Z  --jq '.[] | [.id, .name, .size] | @tsv' | +2026-07-27T04:40:42.2902026Z  awk -F '\t' -v name="$ASSET_NAME" '$2 == name { print; exit }' +2026-07-27T04:40:42.2903417Z )" +2026-07-27T04:40:42.2904393Z asset_id="$(printf '%s' "$row" | cut -f1)" +2026-07-27T04:40:42.2905770Z asset_size="$(printf '%s' "$row" | cut -f3)" +2026-07-27T04:40:42.2907472Z if [ -n "$asset_id" ] && [ -n "$asset_size" ] && [ "$asset_size" -gt 0 ]; then +2026-07-27T04:40:42.2909833Z  echo 'exists=true' >> "$GITHUB_OUTPUT" +2026-07-27T04:40:42.2911449Z  echo "Reusing published asset: $ASSET_NAME ($asset_size bytes)" +2026-07-27T04:40:42.2912942Z else +2026-07-27T04:40:42.2913918Z  echo 'exists=false' >> "$GITHUB_OUTPUT" +2026-07-27T04:40:42.2915102Z fi +2026-07-27T04:40:42.2967486Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} +2026-07-27T04:40:42.2969137Z env: +2026-07-27T04:40:42.2970030Z WORLD_RELEASE_TAG: occumed-world-v1 +2026-07-27T04:40:42.2979250Z GH_TOKEN: *** +2026-07-27T04:40:42.2980195Z RELEASE_TAG: occumed-world-v1 +2026-07-27T04:40:42.2981305Z ASSET_NAME: occumed-enfield.pmtiles +2026-07-27T04:40:42.2982404Z ##[endgroup] +2026-07-27T04:40:46.5282869Z ##[group]Run sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc || true +2026-07-27T04:40:46.5283601Z sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc || true +2026-07-27T04:40:46.5284172Z docker system prune --all --force || true +2026-07-27T04:40:46.5284576Z df -h +2026-07-27T04:40:46.5332979Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} +2026-07-27T04:40:46.5333444Z env: +2026-07-27T04:40:46.5333745Z WORLD_RELEASE_TAG: occumed-world-v1 +2026-07-27T04:40:46.5334117Z ##[endgroup] +2026-07-27T04:42:01.9026800Z Deleted Images: +2026-07-27T04:42:01.9027717Z untagged: ghcr.io/github/gh-aw-firewall/api-proxy:latest +2026-07-27T04:42:01.9030264Z untagged: ghcr.io/github/gh-aw-firewall/api-proxy@sha256:fc2970aadaeae05993e76697d29f03dc8bfb9248ff87a8f3d8b0975485a4b317 +2026-07-27T04:42:01.9032268Z deleted: sha256:c275829eb3ac9f1d0bf2fd6e52969056bb4865be234f5b86244ffca331f60807 +2026-07-27T04:42:01.9033478Z deleted: sha256:6718689011eed0897d40ec7e5676add75f27e7c004fe52aeccd32b1f731fc2ab +2026-07-27T04:42:01.9034699Z deleted: sha256:d24234332196f00130baa4c81be278de312033a96ee97eda181e771c5f06b502 +2026-07-27T04:42:02.0906050Z deleted: sha256:332141aff7801dbd8b17c3cdf5a24d10d81b8959d5a642c0be7bace6ef50ab56 +2026-07-27T04:42:02.0907906Z deleted: sha256:d6ef614c240e61cac7158d3a7ee9a410c402a09a05e78597676a95657cb36019 +2026-07-27T04:42:02.0909742Z deleted: sha256:6df6b333b4d0f005b60e28c1122f6a125ff4341a8c70ca670a87fa16cb0d3443 +2026-07-27T04:42:02.0911128Z deleted: sha256:ab9f3a85577dfd5a22ae0304ae74c12488cec989c3711cfad1e9368e2fafc1a5 +2026-07-27T04:42:02.0912546Z deleted: sha256:10b6f28122b16e3d80c54e71d3862408c577f6ff0339294343a8748ac0222a42 +2026-07-27T04:42:02.0913942Z deleted: sha256:0c510e9bce8d06ea9f60ea02991cd0fab1dbe507ac8df9e97e13f7a1b776d10b +2026-07-27T04:42:02.0915380Z deleted: sha256:99c649c17859ff1c577895fa3686215de56be09d50dad7da7e1b4c4699b4c36d +2026-07-27T04:42:02.0916852Z deleted: sha256:ce71179e83b5dfa4d0334c62a71d263f8316aa9b91ce87db83c38752ea5f1946 +2026-07-27T04:42:02.0918585Z deleted: sha256:42af7d5015d124254c82fa4f3c7b6126d37c2a8cb49ce041c8b2a4194ce99e8b +2026-07-27T04:42:02.0919785Z deleted: sha256:4e06155ae763df57e62c25698c633755617e33d207d17b97b0cbfd5fb0c7785b +2026-07-27T04:42:02.0920722Z untagged: ghcr.io/github/github-mcp-server:latest +2026-07-27T04:42:02.0921820Z untagged: ghcr.io/github/github-mcp-server@sha256:2b0c48b070f61e9d3969269ead600f62d00fb237b60ac849ef3d166ee7de9ad3 +2026-07-27T04:42:02.0923278Z deleted: sha256:f40c60c6e12a30e2102b9249994156465f9ad40086cce3a525cd0db534310dc2 +2026-07-27T04:42:02.0924407Z deleted: sha256:b5250bf133ff3007629d7c9995d28ae6c6440a7ce316e1eb496ef88d1cc7a1ef +2026-07-27T04:42:02.0925606Z deleted: sha256:93f8a4ff89fed3ba912cd46d84ce104671efdcd2e5e9813b539aca349ef54c77 +2026-07-27T04:42:02.0926683Z deleted: sha256:f143ca3d3aff7912392b5453df67a2c2311a9093c2ce9df6641f7969b8d57876 +2026-07-27T04:42:02.0927767Z deleted: sha256:dc4d20d688742988140835ef055b9bf2352771c9bd79e788163307766ace428d +2026-07-27T04:42:02.0930362Z deleted: sha256:b5899337b61a770d1369ef891942bf206c5130fd418d79dd03b137c79417797e +2026-07-27T04:42:02.0931472Z deleted: sha256:9961f624d433af6bf5f27a9329b20c9003871d4d6a8eaf7660e0c3ee97b99ec0 +2026-07-27T04:42:02.0932573Z deleted: sha256:a93d4c94ed98a870888a83c87b9ed539ad5ffe48766cf18704fdf7a7ddc22b8b +2026-07-27T04:42:02.0933651Z deleted: sha256:aa5474e4e9e56714055b03e72a0b67af902f4250d72e7adbbad052d394da396c +2026-07-27T04:42:02.0934701Z deleted: sha256:becefdc9434d01995ec24d208298b0b31e91bf355abcad4bb1c976f5c3d34041 +2026-07-27T04:42:02.0935752Z deleted: sha256:ace00d72e107d7fab390228217b3203f35c811e72e774a94e8146787ed135bd7 +2026-07-27T04:42:02.0936791Z deleted: sha256:1489daf1169adbdd01f5607124efecb1b8adae04ccc526b19b8c37b7b38f361d +2026-07-27T04:42:02.0937827Z deleted: sha256:9aaec7450842aa16723e41bc54501a07d3ba7bdb005a59376bacde1677931af6 +2026-07-27T04:42:02.0939219Z deleted: sha256:90a369081e0d4a94f4b46a4bbcaedb0697cf7137f89c43b56863f1f82fc700df +2026-07-27T04:42:02.0940250Z deleted: sha256:0d13c93c781826bb241661df56e754515b367c1b9f0658cd9b7779b387730a6b +2026-07-27T04:42:02.0941320Z deleted: sha256:ae4ea0419daf3b80677707c6cb2a7e1ad717843d902a774d7e0fb08702db3df4 +2026-07-27T04:42:02.0942417Z deleted: sha256:9ac0db7cd6b389001b18856f7926a18dff7f834c84523445e5030fd753f09245 +2026-07-27T04:42:02.0943330Z untagged: ghcr.io/github/gh-aw-mcpg:latest +2026-07-27T04:42:02.0944391Z untagged: ghcr.io/github/gh-aw-mcpg@sha256:3c744710ea275cd5ee65db92a1099e0d980754bd9fafda9ce67704c67004dc83 +2026-07-27T04:42:02.0945684Z deleted: sha256:0d3df43c86f7e6be375ac47805b2ca600ca1eb869c5d9759627f69786be992df +2026-07-27T04:42:02.0946765Z deleted: sha256:18da42760118282bc3592b3e4e242888c8edc868e46551d3740943370fc961b1 +2026-07-27T04:42:02.0947804Z deleted: sha256:1b259134a1d27bc7f6c942477fa9ac953ed78f04d52ac40d61123cdd4cd5d933 +2026-07-27T04:42:02.0949150Z deleted: sha256:423c65e9d1193b1980fbd182e54ec28cdcf06f64833b3d29889eee2d3c3a9cf4 +2026-07-27T04:42:02.0950218Z deleted: sha256:04586c868512a57329f32f6fce894e6501d2de266d863f4049dea0e4a4d1b74c +2026-07-27T04:42:02.0951304Z deleted: sha256:b8aa5a3c8cd9ee86c12bcce2a07b1191ac543f43d615dbf8524f47beaab3bab9 +2026-07-27T04:42:02.0952404Z deleted: sha256:cec1bfc3afe4c42bf0723c783ab16bcebaee0734f6b8624513751b5d3f7ba12e +2026-07-27T04:42:02.0953840Z deleted: sha256:e56bf8f071ec044e227074f33fc258d5b0f903a53f3867597cb56628db110d07 +2026-07-27T04:42:02.0955157Z deleted: sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c +2026-07-27T04:42:02.0956086Z untagged: ghcr.io/github/gh-aw-firewall/agent:latest +2026-07-27T04:42:02.0957215Z untagged: ghcr.io/github/gh-aw-firewall/agent@sha256:0d35e8682845f183c1c634699a8e8a6cbe2c271b867031410df74533243c5f67 +2026-07-27T04:42:02.0959028Z deleted: sha256:34486428c615b1af0c4fadb579031acb1d585e2b411b7fe157eff8b53538d634 +2026-07-27T04:42:02.0960124Z deleted: sha256:ffe5b18926c66c6628b61e6fb58d31b4dccd868034ba2738d714278b444a8b6f +2026-07-27T04:42:02.0961170Z deleted: sha256:5c1d5d03de7240d290882992fe5e882738130186ba3133400b20a07b11b621cd +2026-07-27T04:42:02.0962225Z deleted: sha256:499aac4cc461580d27a1157da60cbaa884021d7d3b0fff106d3e673f07315c16 +2026-07-27T04:42:02.0963300Z deleted: sha256:89b831d80e78406b43a6c95a79b1f3e024daf7bfea15c0f0456a553a2c18d552 +2026-07-27T04:42:02.0964445Z deleted: sha256:f62cdc35809c2eb747a73598128a57b17e9d613aeec0be78a1a4aca7bbfd94b4 +2026-07-27T04:42:02.0965565Z deleted: sha256:3e9fd60fe8162957a2a92a0aa344c45b3b076bb9bcf8fc15552a973a522a364d +2026-07-27T04:42:02.0966680Z deleted: sha256:1bce1a475f4904ecbc5b3f820856130f15e4d7ac90ba0e8399203365eb13746c +2026-07-27T04:42:02.0967768Z deleted: sha256:001c081771a82d859e83bd10f8788d3e9fdf9135c0818173c5d441ef2e2e941c +2026-07-27T04:42:02.0969121Z deleted: sha256:73500115736fe03e6aa972e2ba795480a41fe941e213cd7cc2befb07609acb2b +2026-07-27T04:42:02.0970213Z deleted: sha256:40ea6ba9fb643f004a92d0fd0ec7cc2ac661e68c7c1806c8dfa3c7bbd39d9d3a +2026-07-27T04:42:02.0971308Z deleted: sha256:e89d119f240cb26543b869cabaab9e96cd15d5d93f8a6f1f28e4dba67d14d716 +2026-07-27T04:42:02.0972404Z deleted: sha256:1806b842d5b92fbabb0e1f320b4cb18134a87fd60287de81ee6c20198d9b1bb9 +2026-07-27T04:42:02.0973502Z deleted: sha256:dd4bc0e35d5e571c085836d260da0f7c7ceec71be00eadbd9981e33b6fedbe9d +2026-07-27T04:42:02.0974644Z deleted: sha256:38e849f9b67dd1e6f67b40100c4bba76415bed55b46b9cf5df247c441e46a51a +2026-07-27T04:42:02.0975712Z deleted: sha256:0ce3e765ec8781a5b85b7cf78c28de1e4a6002a5f6f3d706c626287428f3cb4d +2026-07-27T04:42:02.0976758Z deleted: sha256:13fa6c7d25e7800c5ba71ae68af2979f8c11292d05d583be539c7bcb4bbe7e6a +2026-07-27T04:42:02.0977898Z deleted: sha256:bf5fa42a765f68858e5f8e4ac71992aa9c4af17476aef5bcacf5efdc6b33ff9a +2026-07-27T04:42:02.0979434Z deleted: sha256:10f9108f6cebf96e05cadfab3c188071f3c6d084abe680fd0bc9f61c268e854d +2026-07-27T04:42:02.0980349Z untagged: ghcr.io/github/gh-aw-firewall/squid:latest +2026-07-27T04:42:02.0981487Z untagged: ghcr.io/github/gh-aw-firewall/squid@sha256:5abc51995e5901c5d1daeefc957301ee409980e2e607391ec22c06cb2513327b +2026-07-27T04:42:02.0982901Z deleted: sha256:5d2a3b5c96c4e06039394d9b1446fb9a6bbe22a0e779f8acee3c84dd87a8de3f +2026-07-27T04:42:02.0983961Z deleted: sha256:7b3976961a67c6d5db582e58e3ec84f80ff4a6d17e81bd5c8b9ab8ac395eec3b +2026-07-27T04:42:02.0985012Z deleted: sha256:15fdd1e303c4113814c37243c285a3094d92e6bbc7cb3cd3f3a892249130b783 +2026-07-27T04:42:02.0986143Z deleted: sha256:cf119a274cb9c334dd976fbb5a0ac69a34421beff51e1c51eaca952298aac12e +2026-07-27T04:42:02.0987239Z deleted: sha256:5292e117ce638fa26361066de363a581b6649582eedfa92b668144ce4507369f +2026-07-27T04:42:02.0988260Z deleted: sha256:18b8983bb021aeaf0d3dd60c74b83c5af746dd4e851b7272a3165130b2740bd3 +2026-07-27T04:42:02.0989665Z deleted: sha256:0f7aceedbeef2527fd8b8cb81c5e0ebbb3032d42cbd0847080e679dfa6deb274 +2026-07-27T04:42:02.0990721Z deleted: sha256:7b26b80c1cff713367db892365d8d1227498773be6690e7a39165099060acef2 +2026-07-27T04:42:02.0991745Z deleted: sha256:e8bce0aabd687e9ee90e0bada33884f40b277196f72aac9934357472863a80ae +2026-07-27T04:42:02.0992680Z untagged: ghcr.io/dependabot/dependabot-updater-core:latest +2026-07-27T04:42:02.0993925Z untagged: ghcr.io/dependabot/dependabot-updater-core@sha256:06da5d15313bd7494b9d7843e5592a3447b0519d58d9443700b4c066dd88ce4e +2026-07-27T04:42:02.0995337Z deleted: sha256:beb6211895b06b03926b0667940552751c56be0523e1abd73709ccc600de629c +2026-07-27T04:42:02.0996618Z deleted: sha256:093d5b61c52fbf02002a4e73e3a1f9e143d7abb8e802bf4b6a89f1891376440e +2026-07-27T04:42:02.0997900Z deleted: sha256:fae08bddc41bad0997839b6e729bc884a359edc342580be90ddfde260702d296 +2026-07-27T04:42:02.0999469Z deleted: sha256:c8ff9c7833650ca4152a258a0a5a3a8fbc6306808690a98048e0d32b9b15b7c4 +2026-07-27T04:42:02.1000509Z deleted: sha256:7485233e0281ed232ff9c9b22fae64a48baf277e12bec66a4d0bee2fc01eb355 +2026-07-27T04:42:02.1001549Z deleted: sha256:5235da268c35d780fd16381ea3cdccabc8c18348cf0b2e0b01af8779f07bd543 +2026-07-27T04:42:02.1002569Z deleted: sha256:bb41513a0461ed3aaa69541867fcf72926b72e81b299c59eee5d5ce44008336e +2026-07-27T04:42:02.1003621Z deleted: sha256:6aa0a3f5721d48290c586c07a08b0cae33e20a8c0e4a02caca4c9e5e9ceb70a5 +2026-07-27T04:42:02.1004716Z deleted: sha256:e0be43307b491175885b237d0083b85b721f99cc274a2441d3e357a39cccb50c +2026-07-27T04:42:02.1005770Z deleted: sha256:7ea70c5787a8e343868f1ad539db28a77db5edbb1e024b24ebad591b5def0da4 +2026-07-27T04:42:02.1006809Z deleted: sha256:fba6ba581fc892877e7599259950f74f4d18ea535d0a7f4132bcc6342c6fd88a +2026-07-27T04:42:02.1007870Z deleted: sha256:ccaf719c0b42484491b94e62a93b95b26aec6fde56dc1cbbed9515b7f669aef9 +2026-07-27T04:42:02.1009211Z deleted: sha256:f103cd120fdd6cbc7f3d0e1d5bfb3e16290c32ead7b822d15c34460ecdf64b29 +2026-07-27T04:42:02.1009848Z +2026-07-27T04:42:02.1010115Z Total reclaimed space: 1.851GB +2026-07-27T04:42:02.1174855Z Filesystem Size Used Avail Use% Mounted on +2026-07-27T04:42:02.1175491Z /dev/root 145G 39G 106G 27% / +2026-07-27T04:42:02.1176027Z tmpfs 7.9G 84K 7.9G 1% /dev/shm +2026-07-27T04:42:02.1176564Z tmpfs 3.2G 1012K 3.2G 1% /run +2026-07-27T04:42:02.1177092Z tmpfs 5.0M 0 5.0M 0% /run/lock +2026-07-27T04:42:02.1177722Z efivarfs 128M 26K 128M 1% /sys/firmware/efi/efivars +2026-07-27T04:42:02.1178745Z /dev/sda16 881M 64M 756M 8% /boot +2026-07-27T04:42:02.1179321Z /dev/sda15 105M 6.2M 99M 6% /boot/efi +2026-07-27T04:42:02.1179843Z tmpfs 1.6G 12K 1.6G 1% /run/user/1001 +2026-07-27T04:42:02.1242011Z ##[group]Run set -euo pipefail +2026-07-27T04:42:02.1242365Z set -euo pipefail +2026-07-27T04:42:02.1242734Z mkdir -p .planetiler-data/tmp artifacts +2026-07-27T04:42:02.1243165Z target=".planetiler-data/enfield.osm.pbf" +2026-07-27T04:42:02.1243476Z if [ -n "$EXTRACT_BBOX" ]; then +2026-07-27T04:42:02.1243959Z  source=".planetiler-data/enfield-source.osm.pbf" +2026-07-27T04:42:02.1244573Z  curl --fail --location --retry 8 --retry-delay 10 --retry-all-errors \ +2026-07-27T04:42:02.1245540Z  --output "$source" "https://download.geofabrik.de/europe/united-kingdom/england/greater-london-latest.osm.pbf" +2026-07-27T04:42:02.1246290Z  sudo apt-get update +2026-07-27T04:42:02.1246693Z  sudo apt-get install -y --no-install-recommends osmium-tool +2026-07-27T04:42:02.1247377Z  osmium extract --bbox="$EXTRACT_BBOX" --strategy=complete_ways --overwrite \ +2026-07-27T04:42:02.1247810Z  --output="$target" "$source" +2026-07-27T04:42:02.1248086Z  rm -f "$source" +2026-07-27T04:42:02.1248304Z else +2026-07-27T04:42:02.1249047Z  curl --fail --location --retry 8 --retry-delay 10 --retry-all-errors \ +2026-07-27T04:42:02.1249921Z  --output "$target" "https://download.geofabrik.de/europe/united-kingdom/england/greater-london-latest.osm.pbf" +2026-07-27T04:42:02.1250514Z fi +2026-07-27T04:42:02.1250830Z test -s "$target" +2026-07-27T04:42:02.1305077Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} +2026-07-27T04:42:02.1305413Z env: +2026-07-27T04:42:02.1305617Z WORLD_RELEASE_TAG: occumed-world-v1 +2026-07-27T04:42:02.1306145Z EXTRACT_BBOX: -0.185433,51.60542,-0.008839,51.69193 +2026-07-27T04:42:02.1306554Z ##[endgroup] +2026-07-27T04:42:02.1466608Z % Total % Received % Xferd Average Speed Time Time Time Current +2026-07-27T04:42:02.1468261Z Dload Upload Total Spent Left Speed +2026-07-27T04:42:02.1469934Z +2026-07-27T04:42:02.5489330Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 +2026-07-27T04:42:03.6822518Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 +2026-07-27T04:42:04.6834844Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 +2026-07-27T04:42:05.6846524Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0 +2026-07-27T04:42:06.6859504Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0 +2026-07-27T04:42:07.6870058Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:04 --:--:-- 0 +2026-07-27T04:42:08.6881672Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0 +2026-07-27T04:42:09.6893430Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:06 --:--:-- 0 +2026-07-27T04:42:10.6905368Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:07 --:--:-- 0 +2026-07-27T04:42:11.6917450Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:08 --:--:-- 0 +2026-07-27T04:42:12.6929744Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0 +2026-07-27T04:42:13.6941318Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:10 --:--:-- 0 +2026-07-27T04:42:14.6952494Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:11 --:--:-- 0 +2026-07-27T04:42:15.6964544Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:12 --:--:-- 0 +2026-07-27T04:42:16.6976211Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:13 --:--:-- 0 +2026-07-27T04:42:17.6988257Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:14 --:--:-- 0 +2026-07-27T04:42:18.7000098Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:15 --:--:-- 0 +2026-07-27T04:42:19.7012305Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:16 --:--:-- 0 +2026-07-27T04:42:20.7024348Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:17 --:--:-- 0 +2026-07-27T04:42:21.7036170Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:18 --:--:-- 0 +2026-07-27T04:42:22.7048161Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:19 --:--:-- 0 +2026-07-27T04:42:23.7059967Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:20 --:--:-- 0 +2026-07-27T04:42:24.7072406Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:21 --:--:-- 0 +2026-07-27T04:42:25.7082628Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:22 --:--:-- 0 +2026-07-27T04:42:26.7094609Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:23 --:--:-- 0 +2026-07-27T04:42:27.7106363Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:24 --:--:-- 0 +2026-07-27T04:42:28.7117811Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:25 --:--:-- 0 +2026-07-27T04:42:29.7130376Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:26 --:--:-- 0 +2026-07-27T04:42:30.7142137Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:27 --:--:-- 0 +2026-07-27T04:42:31.7154138Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:28 --:--:-- 0 +2026-07-27T04:42:32.7165547Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:29 --:--:-- 0 +2026-07-27T04:42:33.7177536Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:30 --:--:-- 0 +2026-07-27T04:42:34.7189572Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:31 --:--:-- 0 +2026-07-27T04:42:35.7201662Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:32 --:--:-- 0 +2026-07-27T04:42:36.7212409Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:33 --:--:-- 0 +2026-07-27T04:42:37.7224344Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:34 --:--:-- 0 +2026-07-27T04:42:38.7236218Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:35 --:--:-- 0 +2026-07-27T04:42:39.7247833Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:36 --:--:-- 0 +2026-07-27T04:42:40.7259127Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:37 --:--:-- 0 +2026-07-27T04:42:41.7270586Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:38 --:--:-- 0 +2026-07-27T04:42:42.7283097Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:39 --:--:-- 0 +2026-07-27T04:42:43.7294251Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:40 --:--:-- 0 +2026-07-27T04:42:44.7305935Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:41 --:--:-- 0 +2026-07-27T04:42:45.7318007Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:42 --:--:-- 0 +2026-07-27T04:42:46.7330303Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:43 --:--:-- 0 +2026-07-27T04:42:47.7342110Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:44 --:--:-- 0 +2026-07-27T04:42:48.7354478Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:45 --:--:-- 0 +2026-07-27T04:42:49.7366358Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:46 --:--:-- 0 +2026-07-27T04:42:50.7378266Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:47 --:--:-- 0 +2026-07-27T04:42:51.7389825Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:48 --:--:-- 0 +2026-07-27T04:42:52.7402279Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:49 --:--:-- 0 +2026-07-27T04:42:53.7414597Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:50 --:--:-- 0 +2026-07-27T04:42:54.7425724Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:51 --:--:-- 0 +2026-07-27T04:42:55.7437340Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:52 --:--:-- 0 +2026-07-27T04:42:56.7449593Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:53 --:--:-- 0 +2026-07-27T04:42:57.7460833Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:54 --:--:-- 0 +2026-07-27T04:42:58.7473137Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:55 --:--:-- 0 +2026-07-27T04:42:59.7484793Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:56 --:--:-- 0 +2026-07-27T04:43:00.7496645Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:57 --:--:-- 0 +2026-07-27T04:43:01.7509588Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:58 --:--:-- 0 +2026-07-27T04:43:02.7520697Z 0 0 0 0 0 0 0 0 --:--:-- 0:00:59 --:--:-- 0 +2026-07-27T04:43:03.7533029Z 0 0 0 0 0 0 0 0 --:--:-- 0:01:00 --:--:-- 0 +2026-07-27T04:43:04.7545032Z 0 0 0 0 0 0 0 0 --:--:-- 0:01:01 --:--:-- 0 +2026-07-27T04:43:05.7556946Z 0 0 0 0 0 0 0 0 --:--:-- 0:01:02 --:--:-- 0 +2026-07-27T04:43:06.7566373Z 0 0 0 0 0 0 0 0 --:--:-- 0:01:03 --:--:-- 0 +2026-07-27T04:43:07.2945868Z 0 0 0 0 0 0 0 0 --:--:-- 0:01:04 --:--:-- 0 +2026-07-27T04:43:07.2948754Z 100 273 100 273 0 0 4 0 0:01:08 0:01:05 0:00:03 60 +2026-07-27T04:43:07.5131674Z +2026-07-27T04:43:08.4956768Z 0 121M 0 15909 0 0 243 0 6d 01h 0:01:05 6d 01h 243 +2026-07-27T04:43:09.4864680Z 1 121M 1 1859k 0 0 28699 0 1:14:04 0:01:06 1:12:58 1875k +2026-07-27T04:43:10.4864544Z 16 121M 16 19.6M 0 0 299k 0 0:06:56 0:01:07 0:05:49 9.9M +2026-07-27T04:43:11.4858322Z 34 121M 34 41.7M 0 0 624k 0 0:03:19 0:01:08 0:02:11 14.0M +2026-07-27T04:43:12.4869867Z 52 121M 52 63.8M 0 0 942k 0 0:02:12 0:01:09 0:01:03 16.0M +2026-07-27T04:43:13.4858604Z 70 121M 70 85.2M 0 0 1241k 0 0:01:40 0:01:10 0:00:30 17.1M +2026-07-27T04:43:14.1810603Z 87 121M 87 106M 0 0 1534k 0 0:01:21 0:01:11 0:00:10 21.0M +2026-07-27T04:43:14.1812275Z 100 121M 100 121M 0 0 1729k 0 0:01:12 0:01:12 --:--:-- 21.7M +2026-07-27T04:43:14.3104465Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] +2026-07-27T04:43:14.3580861Z Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease +2026-07-27T04:43:14.3582288Z Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease +2026-07-27T04:43:14.3583486Z Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B] +2026-07-27T04:43:14.3641017Z Get:8 https://dl.google.com/linux/chrome-stable/deb stable InRelease [2548 B] +2026-07-27T04:43:14.3669472Z Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] +2026-07-27T04:43:14.3774552Z Get:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB] +2026-07-27T04:43:14.3789495Z Get:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB] +2026-07-27T04:43:14.5785431Z Get:9 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [237 kB] +2026-07-27T04:43:14.5970349Z Get:10 https://packages.microsoft.com/ubuntu/24.04/prod noble/main armhf Packages [11.7 kB] +2026-07-27T04:43:14.5989514Z Get:11 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [203 kB] +2026-07-27T04:43:14.6485181Z Get:12 https://dl.google.com/linux/chrome-stable/deb stable/main amd64 Packages [1425 B] +2026-07-27T04:43:14.6825724Z Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1141 kB] +2026-07-27T04:43:14.6959978Z Get:14 http://azure.archive.ubuntu.com/ubuntu noble-updates/main Translation-en [276 kB] +2026-07-27T04:43:14.6963716Z Get:15 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [180 kB] +2026-07-27T04:43:14.6999267Z Get:16 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1676 kB] +2026-07-27T04:43:14.7151400Z Get:17 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [333 kB] +2026-07-27T04:43:14.7177987Z Get:18 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [388 kB] +2026-07-27T04:43:14.7236753Z Get:19 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [1348 kB] +2026-07-27T04:43:14.7369947Z Get:20 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted Translation-en [302 kB] +2026-07-27T04:43:14.7393115Z Get:21 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [45.4 kB] +2026-07-27T04:43:14.7414136Z Get:22 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse Translation-en [12.1 kB] +2026-07-27T04:43:14.7867959Z Get:23 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B] +2026-07-27T04:43:14.7886750Z Get:24 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [5760 B] +2026-07-27T04:43:14.7919910Z Get:25 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [32.5 kB] +2026-07-27T04:43:14.7930146Z Get:26 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [12.6 kB] +2026-07-27T04:43:14.8410611Z Get:27 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Packages [881 kB] +2026-07-27T04:43:14.8464373Z Get:28 http://azure.archive.ubuntu.com/ubuntu noble-security/main Translation-en [196 kB] +2026-07-27T04:43:14.8526742Z Get:29 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [46.3 kB] +2026-07-27T04:43:14.8546420Z Get:30 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Packages [1197 kB] +2026-07-27T04:43:14.8615307Z Get:31 http://azure.archive.ubuntu.com/ubuntu noble-security/universe Translation-en [238 kB] +2026-07-27T04:43:14.8642863Z Get:32 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [76.3 kB] +2026-07-27T04:43:14.8661552Z Get:33 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [1240 kB] +2026-07-27T04:43:14.8732197Z Get:34 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted Translation-en [281 kB] +2026-07-27T04:43:14.8759438Z Get:35 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [40.3 kB] +2026-07-27T04:43:14.8773930Z Get:36 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse Translation-en [10.4 kB] +2026-07-27T04:43:21.5986577Z Fetched 10.8 MB in 1s (7508 kB/s) +2026-07-27T04:43:22.3439466Z Reading package lists... +2026-07-27T04:43:22.3764369Z Reading package lists... +2026-07-27T04:43:22.5875751Z Building dependency tree... +2026-07-27T04:43:22.5883293Z Reading state information... +2026-07-27T04:43:22.7769849Z The following additional packages will be installed: +2026-07-27T04:43:22.7774646Z libboost-program-options1.83.0 +2026-07-27T04:43:22.8121236Z The following NEW packages will be installed: +2026-07-27T04:43:22.8127211Z libboost-program-options1.83.0 osmium-tool +2026-07-27T04:43:22.8350025Z 0 upgraded, 2 newly installed, 0 to remove and 66 not upgraded. +2026-07-27T04:43:22.8350724Z Need to get 902 kB of archives. +2026-07-27T04:43:22.8351860Z After this operation, 3982 kB of additional disk space will be used. +2026-07-27T04:43:22.8352338Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] +2026-07-27T04:43:22.8742477Z Get:2 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-program-options1.83.0 amd64 1.83.0-2.1ubuntu3.2 [321 kB] +2026-07-27T04:43:22.8889469Z Get:3 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 osmium-tool amd64 1.16.0-1build1 [582 kB] +2026-07-27T04:43:23.1564530Z Fetched 902 kB in 0s (12.9 MB/s) +2026-07-27T04:43:23.2015333Z Selecting previously unselected package libboost-program-options1.83.0:amd64. +2026-07-27T04:43:23.2909176Z (Reading database ... +2026-07-27T04:43:23.2909534Z (Reading database ... 5% +2026-07-27T04:43:23.2909815Z (Reading database ... 10% +2026-07-27T04:43:23.2910088Z (Reading database ... 15% +2026-07-27T04:43:23.2910383Z (Reading database ... 20% +2026-07-27T04:43:23.2910638Z (Reading database ... 25% +2026-07-27T04:43:23.2910895Z (Reading database ... 30% +2026-07-27T04:43:23.2911395Z (Reading database ... 35% +2026-07-27T04:43:23.2911821Z (Reading database ... 40% +2026-07-27T04:43:23.2912159Z (Reading database ... 45% +2026-07-27T04:43:23.2912429Z (Reading database ... 50% +2026-07-27T04:43:23.3250910Z (Reading database ... 55% +2026-07-27T04:43:23.6697019Z (Reading database ... 60% +2026-07-27T04:43:23.9600342Z (Reading database ... 65% +2026-07-27T04:43:24.2381301Z (Reading database ... 70% +2026-07-27T04:43:24.4653782Z (Reading database ... 75% +2026-07-27T04:43:24.9051603Z (Reading database ... 80% +2026-07-27T04:43:25.9872394Z (Reading database ... 85% +2026-07-27T04:43:26.4242891Z (Reading database ... 90% +2026-07-27T04:43:27.0175464Z (Reading database ... 95% +2026-07-27T04:43:27.0175902Z (Reading database ... 100% +2026-07-27T04:43:27.0176483Z (Reading database ... 202954 files and directories currently installed.) +2026-07-27T04:43:27.0221150Z Preparing to unpack .../libboost-program-options1.83.0_1.83.0-2.1ubuntu3.2_amd64.deb ... +2026-07-27T04:43:27.0259080Z Unpacking libboost-program-options1.83.0:amd64 (1.83.0-2.1ubuntu3.2) ... +2026-07-27T04:43:27.0706896Z Selecting previously unselected package osmium-tool. +2026-07-27T04:43:27.0836967Z Preparing to unpack .../osmium-tool_1.16.0-1build1_amd64.deb ... +2026-07-27T04:43:27.0850143Z Unpacking osmium-tool (1.16.0-1build1) ... +2026-07-27T04:43:27.1722894Z Setting up libboost-program-options1.83.0:amd64 (1.83.0-2.1ubuntu3.2) ... +2026-07-27T04:43:27.1750733Z Setting up osmium-tool (1.16.0-1build1) ... +2026-07-27T04:43:27.1776924Z Processing triggers for libc-bin (2.39-0ubuntu8.7) ... +2026-07-27T04:43:27.2871752Z Processing triggers for man-db (2.12.0-4build2) ... +2026-07-27T04:43:27.2935268Z Not building database; man-db/auto-update is not 'true'. +2026-07-27T04:43:28.3765731Z +2026-07-27T04:43:28.3766562Z Running kernel seems to be up-to-date. +2026-07-27T04:43:28.3767017Z +2026-07-27T04:43:28.3767217Z No services need to be restarted. +2026-07-27T04:43:28.3767611Z +2026-07-27T04:43:28.3767828Z No containers need to be restarted. +2026-07-27T04:43:28.3768244Z +2026-07-27T04:43:28.3769239Z No user sessions are running outdated binaries. +2026-07-27T04:43:28.3769799Z +2026-07-27T04:43:28.3772094Z No VM guests are running outdated hypervisor (qemu) binaries on this host. +2026-07-27T04:43:32.6819028Z ##[group]Run set -euo pipefail +2026-07-27T04:43:32.6819355Z set -euo pipefail +2026-07-27T04:43:32.6819621Z bash planetiler/build-region.sh +2026-07-27T04:43:32.6819957Z output="artifacts/occumed-enfield.pmtiles" +2026-07-27T04:43:32.6820276Z test -s "$output" +2026-07-27T04:43:32.6820540Z test "$(head -c 7 "$output")" = 'PMTiles' +2026-07-27T04:43:32.6820863Z size="$(stat --printf='%s' "$output")" +2026-07-27T04:43:32.6821167Z echo "archive_size_bytes=$size" +2026-07-27T04:43:32.6821452Z if [ "$size" -gt 2000000000 ]; then +2026-07-27T04:43:32.6821847Z  echo "Archive exceeds GitHub Release safe file size: enfield" >&2 +2026-07-27T04:43:32.6822226Z  exit 1 +2026-07-27T04:43:32.6822417Z fi +2026-07-27T04:43:32.6822663Z rm -f ".planetiler-data/enfield.osm.pbf" +2026-07-27T04:43:32.6867871Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} +2026-07-27T04:43:32.6868227Z env: +2026-07-27T04:43:32.6868591Z WORLD_RELEASE_TAG: occumed-world-v1 +2026-07-27T04:43:32.6868896Z OCCUMED_TILE_AREA: enfield +2026-07-27T04:43:32.6869284Z OCCUMED_OSM_PBF: /home/runner/work/Map/Map/.planetiler-data/enfield.osm.pbf +2026-07-27T04:43:32.6869866Z OCCUMED_PMTILES_OUTPUT: /home/runner/work/Map/Map/artifacts/occumed-enfield.pmtiles +2026-07-27T04:43:32.6870428Z OCCUMED_PLANETILER_DATA_DIR: /home/runner/work/Map/Map/.planetiler-data +2026-07-27T04:43:32.6870830Z OCCUMED_PLANETILER_MEMORY: 5g +2026-07-27T04:43:32.6871074Z ##[endgroup] +2026-07-27T04:43:32.9103265Z Prepared corrected Planetiler profile at /home/runner/work/Map/Map/.planetiler-data/generated-profile/occumed-basemap.yml. +2026-07-27T04:43:32.9191758Z Building Occu-Med PMTiles +2026-07-27T04:43:32.9192400Z area: enfield +2026-07-27T04:43:32.9193048Z source: /home/runner/work/Map/Map/.planetiler-data/enfield.osm.pbf +2026-07-27T04:43:32.9193956Z output: /home/runner/work/Map/Map/artifacts/occumed-enfield.pmtiles +2026-07-27T04:43:32.9194734Z memory: 5g +2026-07-27T04:43:32.9195170Z image: ghcr.io/onthegomap/planetiler:0.10.2 +2026-07-27T04:43:32.9195768Z schema: /home/runner/work/Map/Map/.planetiler-data/generated-profile/occumed-basemap.yml +2026-07-27T04:43:32.9373208Z Unable to find image 'ghcr.io/onthegomap/planetiler:0.10.2' locally +2026-07-27T04:43:33.1146955Z 0.10.2: Pulling from onthegomap/planetiler +2026-07-27T04:43:33.1615803Z 5a7813e071bf: Pulling fs layer +2026-07-27T04:43:33.1616386Z d1504bee8985: Pulling fs layer +2026-07-27T04:43:33.1616872Z 7b5a3507f742: Pulling fs layer +2026-07-27T04:43:33.1617366Z 4f4fb700ef54: Pulling fs layer +2026-07-27T04:43:33.1617877Z ea28f6f7f0aa: Pulling fs layer +2026-07-27T04:43:33.1618576Z dea4d5cc16e5: Pulling fs layer +2026-07-27T04:43:33.1619065Z e349fa8d207a: Pulling fs layer +2026-07-27T04:43:33.1619569Z 1424843df450: Pulling fs layer +2026-07-27T04:43:33.1620044Z b2a6ec97a57e: Pulling fs layer +2026-07-27T04:43:33.1620536Z 8e666be9a63a: Pulling fs layer +2026-07-27T04:43:33.1620867Z 4f4fb700ef54: Waiting +2026-07-27T04:43:33.1621136Z ea28f6f7f0aa: Waiting +2026-07-27T04:43:33.1621384Z dea4d5cc16e5: Waiting +2026-07-27T04:43:33.1621618Z e349fa8d207a: Waiting +2026-07-27T04:43:33.1621845Z 1424843df450: Waiting +2026-07-27T04:43:33.1622073Z b2a6ec97a57e: Waiting +2026-07-27T04:43:33.1622305Z 8e666be9a63a: Waiting +2026-07-27T04:43:33.2803942Z d1504bee8985: Verifying Checksum +2026-07-27T04:43:33.2805167Z d1504bee8985: Download complete +2026-07-27T04:43:33.3135895Z 5a7813e071bf: Verifying Checksum +2026-07-27T04:43:33.3136781Z 5a7813e071bf: Download complete +2026-07-27T04:43:33.3291925Z 4f4fb700ef54: Verifying Checksum +2026-07-27T04:43:33.3292802Z 4f4fb700ef54: Download complete +2026-07-27T04:43:33.3642972Z ea28f6f7f0aa: Verifying Checksum +2026-07-27T04:43:33.3643603Z ea28f6f7f0aa: Download complete +2026-07-27T04:43:33.4431562Z e349fa8d207a: Verifying Checksum +2026-07-27T04:43:33.4432484Z e349fa8d207a: Download complete +2026-07-27T04:43:33.5014576Z 1424843df450: Verifying Checksum +2026-07-27T04:43:33.5015246Z 1424843df450: Download complete +2026-07-27T04:43:33.5557054Z b2a6ec97a57e: Verifying Checksum +2026-07-27T04:43:33.5558042Z b2a6ec97a57e: Download complete +2026-07-27T04:43:33.6070352Z 8e666be9a63a: Verifying Checksum +2026-07-27T04:43:33.6071297Z 8e666be9a63a: Download complete +2026-07-27T04:43:33.7107182Z dea4d5cc16e5: Verifying Checksum +2026-07-27T04:43:33.7120879Z dea4d5cc16e5: Download complete +2026-07-27T04:43:33.8049331Z 7b5a3507f742: Verifying Checksum +2026-07-27T04:43:33.8049960Z 7b5a3507f742: Download complete +2026-07-27T04:43:34.4878257Z 5a7813e071bf: Pull complete +2026-07-27T04:43:36.4876275Z d1504bee8985: Pull complete +2026-07-27T04:43:38.2950415Z 7b5a3507f742: Pull complete +2026-07-27T04:43:38.3047497Z 4f4fb700ef54: Pull complete +2026-07-27T04:43:38.3174949Z ea28f6f7f0aa: Pull complete +2026-07-27T04:43:38.7456998Z dea4d5cc16e5: Pull complete +2026-07-27T04:43:38.7801114Z e349fa8d207a: Pull complete +2026-07-27T04:43:38.7904489Z 1424843df450: Pull complete +2026-07-27T04:43:38.8008360Z b2a6ec97a57e: Pull complete +2026-07-27T04:43:38.8123742Z 8e666be9a63a: Pull complete +2026-07-27T04:43:38.8166826Z Digest: sha256:cf32202dbc001a9ab4bc11534b642b13de3798179817da8558e567a3d13dd403 +2026-07-27T04:43:38.8179292Z Status: Downloaded newer image for ghcr.io/onthegomap/planetiler:0.10.2 +2026-07-27T04:43:38.9949110Z Picked up JAVA_TOOL_OPTIONS: -Xmx5g +2026-07-27T04:43:39.6203044Z 0:00:00 DEB - argument: schema=/profile/occumed-basemap.yml (Location of YML-format schema definition file) +2026-07-27T04:43:40.4822520Z 0:00:01 DEB - argument: render_maxzoom=19 (no description provided) +2026-07-27T04:43:40.4826368Z 0:00:01 DEB - argument: min_feature_size_at_max_zoom=0.0625 (no description provided) +2026-07-27T04:43:40.4832141Z 0:00:01 DEB - argument: area=enfield (Geofabrik area to download) +2026-07-27T04:43:40.4833144Z 0:00:01 DEB - argument: force=true (no description provided) +2026-07-27T04:43:40.4837896Z 0:00:01 DEB - argument: osm_source_path=enfield.osm.pbf (Local OSM PBF path) +2026-07-27T04:43:40.4841672Z 0:00:01 DEB - argument: min_feature_size=0.5 (no description provided) +2026-07-27T04:43:40.4847037Z 0:00:01 DEB - argument: maxzoom=16 (no description provided) +2026-07-27T04:43:40.4848110Z 0:00:01 DEB - argument: madvise=true (default value for whether to use linux madvise(random) to improve memory-mapped read performance for temporary storage) +2026-07-27T04:43:40.4855427Z 0:00:01 DEB - argument: storage=mmap (default storage type for temporary data, one of [ram, mmap, direct]) +2026-07-27T04:43:40.4863145Z 0:00:01 DEB - argument: parallel_tmp_io=false (Use unlimited parallelism reading/writing temp files (ie. if using tmpfs or ramfs for temp storage)) +2026-07-27T04:43:40.4871442Z 0:00:01 DEB - argument: threads=4 (num threads) +2026-07-27T04:43:40.4878150Z 0:00:01 DEB - argument: write_threads=1 (number of threads to use when writing temp features) +2026-07-27T04:43:40.4885890Z 0:00:01 DEB - argument: process_threads=4 (number of threads to use when processing input features) +2026-07-27T04:43:40.4892841Z 0:00:01 DEB - argument: bounds=null (bounds) +2026-07-27T04:43:40.4900763Z 0:00:01 DEB - argument: polygon=null (a .poly file that limits output to tiles intersecting the shape) +2026-07-27T04:43:40.4907659Z 0:00:01 DEB - argument: minzoom=0 (minimum zoom level) +2026-07-27T04:43:40.4916803Z 0:00:01 DEB - argument: tmpdir=/data/tmp (temp directory) +2026-07-27T04:43:40.4925133Z 0:00:01 DEB - argument: extra_name_tags= (Extra name tags to copy from OSM to output) +2026-07-27T04:43:40.4932892Z 0:00:01 DEB - argument: mlt_advanced=false (Use FSST and FastPFOR encoding schemes when tile format=MLT) +2026-07-27T04:43:40.4941223Z 0:00:01 DEB - argument: feature_read_threads=1 (number of threads to use when reading features at tile write time) +2026-07-27T04:43:40.4950080Z 0:00:01 DEB - argument: tile_write_threads=1 (number of threads used to write tiles - only supported by [files, csv, tsv, proto, pbf, json]) +2026-07-27T04:43:40.4959290Z 0:00:01 DEB - argument: loginterval=10 seconds (time between logs) +2026-07-27T04:43:40.4967199Z 0:00:01 DEB - argument: append=false (append to the output file - only supported by [files, csv, tsv, proto, pbf, json]) +2026-07-27T04:43:40.4975424Z 0:00:01 DEB - argument: compress_temp=false (compress temporary feature storage (uses more CPU, but less disk space)) +2026-07-27T04:43:40.4982893Z 0:00:01 DEB - argument: mmap_temp=true (use memory-mapped IO for temp feature files) +2026-07-27T04:43:40.4990687Z 0:00:01 DEB - argument: sort_max_readers=6 (maximum number of concurrent read threads to use when sorting chunks) +2026-07-27T04:43:40.4999863Z 0:00:01 DEB - argument: sort_max_writers=6 (maximum number of concurrent write threads to use when sorting chunks) +2026-07-27T04:43:40.5007700Z 0:00:01 DEB - argument: nodemap_type=sparsearray (type of node location map, one of [noop, sortedtable, sparsearray, array]) +2026-07-27T04:43:40.5015737Z 0:00:01 DEB - argument: nodemap_storage=mmap (storage for node location map, one of [ram, mmap, direct]) +2026-07-27T04:43:40.5043252Z 0:00:01 DEB - argument: nodemap_madvise=true (use linux madvise(random) for node locations) +2026-07-27T04:43:40.5044881Z 0:00:01 DEB - argument: multipolygon_geometry_storage=mmap (storage for multipolygon geometries, one of [ram, mmap, direct]) +2026-07-27T04:43:40.5046495Z 0:00:01 DEB - argument: multipolygon_geometry_madvise=true (use linux madvise(random) for temporary multipolygon geometry storage) +2026-07-27T04:43:40.5049012Z 0:00:01 DEB - argument: http_user_agent=Planetiler downloader (https://github.com/onthegomap/planetiler) (User-Agent header to set when downloading files over HTTP) +2026-07-27T04:43:40.5050745Z 0:00:01 DEB - argument: http_timeout=30 seconds (Timeout to use when downloading files over HTTP) +2026-07-27T04:43:40.5051871Z 0:00:01 DEB - argument: http_retries=5 (Retries to use when downloading files over HTTP) +2026-07-27T04:43:40.5052969Z 0:00:01 DEB - argument: http_retry_wait=5 seconds (How long to wait before retrying HTTP request) +2026-07-27T04:43:40.5054203Z 0:00:01 DEB - argument: download_chunk_size_mb=100 (Size of file chunks to download in parallel in megabytes) +2026-07-27T04:43:40.5055491Z 0:00:01 DEB - argument: download_threads=1 (Number of parallel threads to use when downloading each file) +2026-07-27T04:43:40.5056948Z 0:00:01 DEB - argument: download_max_bandwidth= (Maximum bandwidth to consume when downloading files in units mb/s, mbps, kbps, etc.) +2026-07-27T04:43:40.5064936Z 0:00:01 DEB - argument: simplify_tolerance_at_max_zoom=0.0625 (Default value for the tile pixel tolerance to use when simplifying features at the maximum zoom level to allow for overzooming) +2026-07-27T04:43:40.5074606Z 0:00:01 DEB - argument: simplify_tolerance=0.1 (Default value for the tile pixel tolerance to use when simplifying features below the maximum zoom level) +2026-07-27T04:43:40.5083209Z 0:00:01 DEB - argument: osm_lazy_reads=true (Read OSM blocks from disk in worker threads) +2026-07-27T04:43:40.5087861Z 0:00:01 DEB - argument: skip_filled_tiles=false (Skip writing tiles containing only polygon fills to the output) +2026-07-27T04:43:40.5093338Z 0:00:01 DEB - argument: tile_warning_size_mb=1.0 (Maximum size in megabytes of a tile to emit a warning about) +2026-07-27T04:43:40.5097992Z 0:00:01 DEB - argument: color=null (Color the terminal output) +2026-07-27T04:43:40.5102541Z 0:00:01 DEB - argument: keep_unzipped=false (keep unzipped sources by default after reading) +2026-07-27T04:43:40.5113774Z 0:00:01 DEB - argument: tile_compression=gzip (the tile compression, one of [gzip, none]) +2026-07-27T04:43:40.5120290Z 0:00:01 DEB - argument: tile_format=mvt (the tile format, one of [mvt, mlt]) +2026-07-27T04:43:40.5132620Z 0:00:01 DEB - argument: exclude_ids=false (Exclude feature IDs from generated vector tiles) +2026-07-27T04:43:40.5136208Z 0:00:01 DEB - argument: mlt_fastpfor=false (Use FastPFOR encoding when tile format=MLT) +2026-07-27T04:43:40.5167494Z 0:00:01 DEB - argument: mlt_fsst=false (Use FSST encoding when tile format=MLT) +2026-07-27T04:43:40.5169510Z 0:00:01 DEB - argument: mlt_tessellate_polygons=false (Pre-triangulate polygons when tile format=MLT so that clients do not need to) +2026-07-27T04:43:40.5171671Z 0:00:01 DEB - argument: mlt_reorder_features=false (Allow re-ordering output features within each layer when tile format=MLT to reduce tile sizes) +2026-07-27T04:43:40.5173506Z 0:00:01 DEB - argument: mlt_shared_dict=false (Share dictionaries between string fields when tile format=MLT) +2026-07-27T04:43:40.5175067Z 0:00:01 DEB - argument: output_layerstats=false (output a tsv.gz file for each tile/layer size) +2026-07-27T04:43:40.5177076Z 0:00:01 DEB - argument: debug_url=https://onthegomap.github.io/planetiler-demo/#{z}/{lat}/{lon} (debug url to use for displaying tiles with {z} {lat} {lon} placeholders) +2026-07-27T04:43:40.5179517Z 0:00:01 DEB - argument: tile_weights=/data/tile_weights.tsv.gz (tsv.gz file with columns z,x,y,loads to generate weighted average tile size stat) +2026-07-27T04:43:40.5189383Z 0:00:01 DEB - argument: max_point_buffer=Infinity (Additional global limit for the max tile pixels to include points outside tile bounds of all layers. Set to a lower value to reduce tile size for clients that handle label collisions across tiles (most web and native clients). NOTE: Do not reduce if you need to support raster tile rendering) +2026-07-27T04:43:40.5230189Z 0:00:01 DEB - argument: log_jts_exceptions=false (Emit verbose details to debug JTS geometry errors) +2026-07-27T04:43:40.5232784Z 0:00:01 DEB - argument: feature_source_id_multiplier=10 (Set vector tile feature IDs to (featureId * thisValue) + sourceId where sourceId is 1 for OSM nodes, 2 for ways, 3 for relations, and 0 for other sources. Set to false to disable.) +2026-07-27T04:43:40.5235492Z 0:00:01 DEB - argument: reuse_featuredb=false (Reuse existing feature DB on disk, skipping source reading stages (for iterating on post-processing logic)) +2026-07-27T04:43:40.5285427Z 0:00:01 INF - argument: stats=use in-memory stats +2026-07-27T04:43:40.5520531Z 0:00:01 DEB - argument: only_download=false (download source data then exit) +2026-07-27T04:43:40.5521926Z 0:00:01 DEB - argument: tests=null (run test cases in a yaml then quit) +2026-07-27T04:43:40.5530780Z 0:00:01 DEB - argument: download=false (download sources) +2026-07-27T04:43:40.5538788Z 0:00:01 DEB - argument: refresh_sources=false (download new version of source files if they have changed) +2026-07-27T04:43:40.5547281Z 0:00:01 DEB - argument: download_osm_tile_weights=false (download OSM tile weights file) +2026-07-27T04:43:40.5557307Z 0:00:01 DEB - argument: temp_nodes=/data/tmp/node.db (temp node db location) +2026-07-27T04:43:40.5573989Z 0:00:01 DEB - argument: temp_multipolygons=/data/tmp/multipolygon.db (temp multipolygon db location) +2026-07-27T04:43:40.5575555Z 0:00:01 DEB - argument: temp_features=/data/tmp/feature.db (temp feature db location) +2026-07-27T04:43:40.5583061Z 0:00:01 DEB - argument: osm_parse_node_bounds=false (parse bounds from OSM nodes instead of header) +2026-07-27T04:43:40.8888211Z 0:00:01 DEB - argument: osm_path=/data/enfield.osm.pbf (osm OSM input file path) +2026-07-27T04:43:40.8890337Z 0:00:01 DEB - argument: refresh_osm=false (Download new version of osm if changed) +2026-07-27T04:43:40.8893449Z 0:00:01 DEB - argument: free_osm_after_read=false (delete osm input file after reading to make space for output (reduces peak disk usage)) +2026-07-27T04:43:41.0129730Z 0:00:01 DEB - argument: output=/output/occumed-enfield.pmtiles (output tile archive URI) +2026-07-27T04:43:41.0136776Z 0:00:01 DEB - argument: version=false (show version then exit) +2026-07-27T04:43:41.0148295Z 0:00:01 INF - Planetiler build git hash: 0e5588c4a6e8c29a270a33afe8df62027d889604 +2026-07-27T04:43:41.0151564Z 0:00:01 INF - Planetiler build version: 0.10.2 +2026-07-27T04:43:41.0158293Z 0:00:01 INF - Planetiler build timestamp: 2026-03-28T14:40:55.764Z +2026-07-27T04:43:41.0159658Z 0:00:01 DEB - argument: help=false (show arguments then exit) +2026-07-27T04:43:41.0341140Z 0:00:01 DEB - argument: layer_stats=/output/occumed-enfield.pmtiles.layerstats.tsv.gz (layer stats output path) +2026-07-27T04:43:41.0342810Z 0:00:01 INF - Building ConfiguredProfile profile into file:///output/occumed-enfield.pmtiles in these phases: +2026-07-27T04:43:41.0344386Z 0:00:01 INF - osm_pass1: Pre-process OpenStreetMap input (store node locations then relation members) +2026-07-27T04:43:41.0345232Z 0:00:01 INF - osm_pass2: Process OpenStreetMap nodes, ways, then relations +2026-07-27T04:43:41.0345758Z 0:00:01 INF - sort: Sort rendered features by tile ID +2026-07-27T04:43:41.0401656Z 0:00:01 INF - archive: Encode each tile and write to TileArchiveConfig[format=PMTILES, scheme=FILE, uri=file:///output/occumed-enfield.pmtiles, options={}] +2026-07-27T04:43:41.0566616Z 0:00:01 DEB - ✓ 8.2M storage on /data (/dev/root) requested for read phase disk, 112G available +2026-07-27T04:43:41.0573131Z 0:00:01 DEB - - 7.2M used for temporary node location cache +2026-07-27T04:43:41.0574181Z 0:00:01 DEB - - 1M used for temporary multipolygon geometry cache +2026-07-27T04:43:41.0585877Z 0:00:01 DEB - ✓ 8.2M storage on /data (/dev/root) requested for read phase, 112G available +2026-07-27T04:43:41.0587204Z 0:00:01 DEB - - 7.2M used for sparsearray node location cache +2026-07-27T04:43:41.0589140Z 0:00:01 DEB - - 1M used for multipolygon way geometries +2026-07-27T04:43:41.0592286Z 0:00:01 DEB - ✓ 300M JVM heap requested for read phase, 5.3G available +2026-07-27T04:43:41.0594040Z 0:00:01 DEB - - 300M used for sparsearray node location in-memory index +2026-07-27T04:43:41.0635189Z 0:00:01 DEB - ✓ 8.2M temporary files and 11G of free memory for OS to cache them +2026-07-27T04:43:41.0713549Z 0:00:01 WAR - Bounds not found in header for enfield.osm.pbf and --bounds not provided, parsing bounds from nodes +2026-07-27T04:43:41.0740235Z 0:00:01 INF [osm_bounds] - +2026-07-27T04:43:41.0741192Z 0:00:01 INF [osm_bounds] - Starting... +2026-07-27T04:43:41.5225135Z 0:00:02 INF [osm_bounds:process] - Finished nodes: 644,038 (1.7M/s) in 0.4s cpu:1s avg:3.9 +2026-07-27T04:43:41.7353677Z 0:00:02 INF [osm_bounds:process] - Finished ways: 119,795 (529k/s) in 0.2s cpu:0.9s avg:3.9 +2026-07-27T04:43:41.7525504Z 0:00:02 INF [osm_bounds:process] - Finished relations: 1,640 (97k/s) in 0s cpu:0.1s avg:3.6 +2026-07-27T04:43:41.7626739Z 0:00:02 INF [osm_bounds] - nodes: [ 644k 976k/s ] ways: [ 119k 181k/s ] rels: [ 1.6k 2.4k/s ] +2026-07-27T04:43:41.7628855Z cpus: 3.8 gc: 6% heap: 40M/5.3G direct: 8.1k postGC: 67M +2026-07-27T04:43:41.7630266Z read( -%) -> (0/10) -> process( -% -% -%) +2026-07-27T04:43:41.7638769Z 0:00:02 DEB [osm_bounds] - nodes: 644,038 (1.7M/s) in 0.4s cpu:1s avg:3.9 +2026-07-27T04:43:41.7640493Z 0:00:02 DEB [osm_bounds] - ways: 119,795 (529k/s) in 0.2s cpu:0.9s avg:3.9 +2026-07-27T04:43:41.7641791Z 0:00:02 DEB [osm_bounds] - relations: 1,640 (97k/s) in 0s cpu:0.1s avg:3.6 +2026-07-27T04:43:41.7650028Z 0:00:02 INF [osm_bounds] - Finished in 0.7s cpu:3s avg:3.7 +2026-07-27T04:43:41.7672999Z 0:00:02 INF [osm_bounds] - read 1x(2% 0s) +2026-07-27T04:43:41.7679547Z 0:00:02 INF [osm_bounds] - process 3x(58% 0.4s) +2026-07-27T04:43:41.7705050Z 0:00:02 INF [osm_bounds] - Setting map bounds from input: Envelope(-0.3411928,51.5711773,0.0349575,51.7314462) +2026-07-27T04:43:41.7738716Z 0:00:02 DEB [osm_bounds] - argument: archive_name=Occu-Med Terrain ('name' attribute for tileset metadata) +2026-07-27T04:43:41.7745932Z 0:00:02 DEB [osm_bounds] - argument: archive_description=Custom Occu-Med vector schema for the reusable MapLibre basemap ('description' attribute for tileset metadata) +2026-07-27T04:43:41.7749383Z 0:00:02 DEB [osm_bounds] - argument: archive_attribution=© OpenStreetMap contributors ('attribution' attribute for tileset metadata) +2026-07-27T04:43:41.7758816Z 0:00:02 DEB [osm_bounds] - argument: archive_version=0.3.0 ('version' attribute for tileset metadata) +2026-07-27T04:43:41.7760786Z 0:00:02 DEB [osm_bounds] - argument: archive_type=baselayer ('type' attribute for tileset metadata) +2026-07-27T04:43:41.8161920Z 0:00:02 INF [osm_bounds] - Using merge sort feature map, chunk size=1789mb max workers=4 +2026-07-27T04:43:41.8392759Z 0:00:02 INF [osm_pass1] - +2026-07-27T04:43:41.8413085Z 0:00:02 INF [osm_pass1] - Starting... +2026-07-27T04:43:42.6833260Z 0:00:03 INF [osm_pass1:process] - Finished nodes: 644,038 (787k/s) in 0.8s cpu:2s avg:2.9 +2026-07-27T04:43:42.7568298Z 0:00:03 INF [osm_pass1:process] - Finished ways: 119,795 (1.6M/s) in 0.1s cpu:0.3s avg:3.8 +2026-07-27T04:43:42.7813970Z 0:00:03 INF [osm_pass1:process] - Finished relations: 1,640 (70k/s) in 0s cpu:0.1s avg:3.8 +2026-07-27T04:43:42.7964374Z 0:00:03 INF [osm_pass1] - nodes: [ 644k 682k/s ] 527M ways: [ 119k 126k/s ] rels: [ 1.6k 1.7k/s ] blocks: [ 97 102/s ] +2026-07-27T04:43:42.7966075Z cpus: 3 gc: 10% heap: 881M/5.3G direct: 16k postGC: 800M hppc: 323k +2026-07-27T04:43:42.7967043Z read( -%) -> (0/13) -> parse( -% -% -% -%) -> (0/10) -> process( -%) +2026-07-27T04:43:42.7975543Z 0:00:03 DEB [osm_pass1] - Processed 97 blocks: +2026-07-27T04:43:42.7987993Z 0:00:03 DEB [osm_pass1] - nodes: 644,038 (787k/s) in 0.8s cpu:2s avg:2.9 +2026-07-27T04:43:42.7989404Z 0:00:03 DEB [osm_pass1] - ways: 119,795 (1.6M/s) in 0.1s cpu:0.3s avg:3.8 +2026-07-27T04:43:42.7996353Z 0:00:03 DEB [osm_pass1] - relations: 1,640 (70k/s) in 0s cpu:0.1s avg:3.8 +2026-07-27T04:43:42.8005832Z 0:00:03 INF [osm_pass1] - Finished in 1s cpu:3s avg:3 +2026-07-27T04:43:42.8033935Z 0:00:03 INF [osm_pass1] - read 1x(2% 0s) +2026-07-27T04:43:42.8034959Z 0:00:03 INF [osm_pass1] - parse 4x(12% 0.1s) +2026-07-27T04:43:42.8036014Z 0:00:03 INF [osm_pass1] - process 1x(80% 0.8s) +2026-07-27T04:43:42.8036808Z 0:00:03 INF [osm_pass2] - +2026-07-27T04:43:42.8037587Z 0:00:03 INF [osm_pass2] - Starting... +2026-07-27T04:43:43.3630404Z 0:00:04 DEB [osm_pass2:process] - Sorting long long multimap... +2026-07-27T04:43:43.3647239Z 0:00:04 DEB [osm_pass2:process] - Sorted long long multimap 0s cpu:0s avg:4.4 +2026-07-27T04:43:43.3722932Z 0:00:04 INF [osm_pass2:process] - Finished nodes: 644,038 (1.1M/s) in 0.6s cpu:2s avg:3.9 +2026-07-27T04:43:49.9554204Z 0:00:10 INF [osm_pass2:process] - Finished ways: 119,795 (18k/s) in 7s cpu:26s avg:4 +2026-07-27T04:43:50.0119291Z 0:00:10 INF [osm_pass2:process] - Finished relations: 1,640 (29k/s) in 0.1s cpu:0.2s avg:3.6 +2026-07-27T04:43:50.2700739Z 0:00:10 INF [osm_pass2] - nodes: [ 644k 100% 86k/s ] 527M ways: [ 119k 100% 16k/s ] rels: [ 1.6k 100% 220/s ] features: [ 697k 93k/s ] 43M blocks: [ 97 100% 13/s ] +2026-07-27T04:43:50.2708458Z cpus: 4 gc: 1% heap: 1.2G/5.3G direct: 16k postGC: 818M relInfo: 323k mpGeoms: 149k +2026-07-27T04:43:50.2710034Z read( -%) -> (0/15) -> process( -% -% -% -%) -> (0/55k) -> write( -%) +2026-07-27T04:43:50.2711371Z 0:00:10 DEB [osm_pass2] - Processed 97 blocks: +2026-07-27T04:43:50.2713034Z 0:00:10 DEB [osm_pass2] - nodes: 644,038 (1.1M/s) in 0.6s cpu:2s avg:3.9 +2026-07-27T04:43:50.2714220Z 0:00:10 DEB [osm_pass2] - ways: 119,795 (18k/s) in 7s cpu:26s avg:4 +2026-07-27T04:43:50.2715794Z 0:00:10 DEB [osm_pass2] - relations: 1,640 (29k/s) in 0.1s cpu:0.2s avg:3.6 +2026-07-27T04:43:50.2716920Z 0:00:10 INF [osm_pass2] - Finished in 7s cpu:30s avg:4 +2026-07-27T04:43:50.2720350Z 0:00:10 INF [osm_pass2] - read 1x(0% 0s wait:4s done:3s) +2026-07-27T04:43:50.2723751Z 0:00:10 INF [osm_pass2] - process 4x(62% 5s) +2026-07-27T04:43:50.2726870Z 0:00:10 INF [osm_pass2] - write 1x(5% 0.4s wait:7s) +2026-07-27T04:43:50.2760412Z 0:00:10 INF [osm_pass2] - Deleting node.db to make room for output file +2026-07-27T04:43:50.2767913Z 0:00:10 INF [sort] - +2026-07-27T04:43:50.2770927Z 0:00:10 INF [sort] - Starting... +2026-07-27T04:43:50.2805084Z 0:00:10 INF [sort] - Grouped 2 chunks into 1 +2026-07-27T04:43:51.0898248Z 0:00:11 INF [sort] - chunks: [ 1 / 1 100% ] 43M +2026-07-27T04:43:51.0900026Z cpus: 3.6 gc: 0% heap: 1.3G/5.3G direct: 16k postGC: 818M +2026-07-27T04:43:51.0901144Z -> (0/3) -> worker( -%) +2026-07-27T04:43:51.0909433Z 0:00:11 INF [sort] - Finished in 0.8s cpu:3s avg:3.6 +2026-07-27T04:43:51.0921076Z 0:00:11 INF [sort] - worker 1x(42% 0.3s) +2026-07-27T04:43:51.0922054Z 0:00:11 INF [sort] - read:0s write:0s sort:0s +2026-07-27T04:43:51.0964678Z 0:00:11 INF [archive] - +2026-07-27T04:43:51.0965426Z 0:00:11 INF [archive] - Starting... +2026-07-27T04:43:51.1104001Z 0:00:11 INF [archive] - Unable to load tile weights from /data/tile_weights.tsv.gz, falling back to top 100k +2026-07-27T04:43:52.1300655Z 0:00:12 INF [archive:write] - Starting z16 +2026-07-27T04:43:52.1314982Z 0:00:12 INF [archive:write] - Finished z16 in 0s cpu:0s avg:8.4, now starting z3 +2026-07-27T04:43:52.1389898Z 0:00:12 INF [archive:write] - Finished z3 in 0s cpu:0s avg:4.4, now starting z4 +2026-07-27T04:43:52.1393040Z 0:00:12 INF [archive:write] - Finished z4 in 0s cpu:0s avg:0, now starting z5 +2026-07-27T04:43:52.1400474Z 0:00:12 INF [archive:write] - Finished z5 in 0s cpu:0s avg:0, now starting z6 +2026-07-27T04:43:52.1440152Z 0:00:12 INF [archive:write] - Finished z6 in 0s cpu:0s avg:0, now starting z7 +2026-07-27T04:43:52.1444306Z 0:00:12 INF [archive:write] - Finished z7 in 0s cpu:0s avg:0, now starting z8 +2026-07-27T04:43:52.1450276Z 0:00:12 INF [archive:write] - Finished z8 in 0s cpu:0s avg:0, now starting z9 +2026-07-27T04:43:52.1484426Z 0:00:12 INF [archive:write] - Finished z9 in 0s cpu:0s avg:0, now starting z10 +2026-07-27T04:43:52.1490949Z 0:00:12 INF [archive:write] - Finished z10 in 0s cpu:0s avg:0, now starting z11 +2026-07-27T04:43:52.2193337Z 0:00:12 INF [archive:write] - Finished z11 in 0.1s cpu:0.3s avg:4, now starting z12 +2026-07-27T04:43:52.4210870Z 0:00:13 INF [archive:write] - Finished z12 in 0.2s cpu:0.8s avg:4, now starting z13 +2026-07-27T04:43:52.7743228Z 0:00:13 INF [archive:write] - Finished z13 in 0.4s cpu:1s avg:4, now starting z14 +2026-07-27T04:43:53.1570089Z 0:00:13 INF [archive:write] - Finished z14 in 0.4s cpu:1s avg:4, now starting z15 +2026-07-27T04:43:53.5516207Z 0:00:14 INF [archive:write] - Finished z15 in 0.4s cpu:2s avg:4, now starting z16 +2026-07-27T04:43:53.9656196Z 0:00:14 INF [archive:write] - Finished z16 in 0.4s cpu:2s avg:4 +2026-07-27T04:43:53.9675627Z 0:00:14 INF [archive:write] - Tile data was not written in order, sorting entries... +2026-07-27T04:43:53.9682462Z 0:00:14 INF [archive:write] - Done sorting. +2026-07-27T04:43:54.0441496Z 0:00:14 INF [archive:write] - Writing metadata and leaf directories... +2026-07-27T04:43:54.0449748Z 0:00:14 INF [archive:write] - Writing header... +2026-07-27T04:43:54.0461304Z 0:00:14 INF [archive:write] - # addressed tiles: 1540 +2026-07-27T04:43:54.0462381Z 0:00:14 INF [archive:write] - # of tile entries: 1540 +2026-07-27T04:43:54.0470832Z 0:00:14 INF [archive:write] - # of tile contents: 1540 +2026-07-27T04:43:54.0475830Z 0:00:14 INF [archive:write] - Root directory: 3.4kB +2026-07-27T04:43:54.0479322Z 0:00:14 INF [archive:write] - # leaves: 0 +2026-07-27T04:43:54.0483011Z 0:00:14 INF [archive:write] - Total dir bytes: 3.4kB +2026-07-27T04:43:54.0486664Z 0:00:14 INF [archive:write] - Average bytes per addressed tile: 2.2564935064935066 +2026-07-27T04:43:54.0535208Z 0:00:14 INF [archive] - features: [ 697k 100% 264k/s ] 43M tiles: [ 1.5k 583/s ] 13M +2026-07-27T04:43:54.0537448Z cpus: 3.9 gc: 4% heap: 1.6G/5.3G direct: 16k postGC: 761M +2026-07-27T04:43:54.0539228Z read( -%) -> (0/273) -> encode( -% -% -% -%) -> (0/270) -> write( -%) +2026-07-27T04:43:54.0540494Z last tile: 16/32756/21771 (z16 15%) https://onthegomap.github.io/planetiler-demo/#16.5/51.57878/-0.06317 +2026-07-27T04:43:54.0541805Z 0:00:14 DEB [archive] - Tile stats: +2026-07-27T04:43:54.0612479Z 0:00:14 DEB [archive] - Biggest tiles (gzipped) +2026-07-27T04:43:54.0613901Z 1. 13/4092/2719 (284k) https://onthegomap.github.io/planetiler-demo/#13.5/51.63166/-0.15381 (building:424k) +2026-07-27T04:43:54.0616998Z 2. 13/4093/2719 (219k) https://onthegomap.github.io/planetiler-demo/#13.5/51.63166/-0.10986 (building:338k) +2026-07-27T04:43:54.0619099Z 3. 11/1023/679 (208k) https://onthegomap.github.io/planetiler-demo/#11.5/51.67252/-0.08789 (transportation:209k) +2026-07-27T04:43:54.0620813Z 4. 13/4094/2718 (206k) https://onthegomap.github.io/planetiler-demo/#13.5/51.65892/-0.06592 (building:232k) +2026-07-27T04:43:54.0622457Z 5. 12/2046/1359 (194k) https://onthegomap.github.io/planetiler-demo/#12.5/51.64529/-0.13184 (transportation:185k) +2026-07-27T04:43:54.0637041Z 6. 12/2047/1359 (188k) https://onthegomap.github.io/planetiler-demo/#12.5/51.64529/-0.04395 (transportation:206k) +2026-07-27T04:43:54.0639070Z 7. 13/4094/2719 (156k) https://onthegomap.github.io/planetiler-demo/#13.5/51.63166/-0.06592 (building:156k) +2026-07-27T04:43:54.0640567Z 8. 13/4092/2720 (143k) https://onthegomap.github.io/planetiler-demo/#13.5/51.60437/-0.15381 (building:166k) +2026-07-27T04:43:54.0642135Z 9. 13/4092/2718 (139k) https://onthegomap.github.io/planetiler-demo/#13.5/51.65892/-0.15381 (building:149k) +2026-07-27T04:43:54.0643703Z 10. 13/4093/2718 (135k) https://onthegomap.github.io/planetiler-demo/#13.5/51.65892/-0.10986 (building:160k) +2026-07-27T04:43:54.0808084Z 0:00:14 DEB [archive] - Max tile sizes +2026-07-27T04:43:54.0809566Z z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15 z16 all +2026-07-27T04:43:54.0810838Z landcover 79 58 0 140 313 1.2k 3k 6.8k 12k 10k 6k 5.9k 4.4k 2.6k 12k +2026-07-27T04:43:54.0812561Z transportation 0 0 253 1.8k 5k 14k 32k 42k  209k  206k  122k 55k 25k 10k  209k +2026-07-27T04:43:54.0814037Z water_name 0 0 634 2.4k 3.5k 4.5k 5.2k 5.8k 6.6k 3.9k 1.5k 1k 599 459 6.6k +2026-07-27T04:43:54.0815284Z boundary 0 0 0 422 566 1.2k 1.3k 1.5k 1.7k 829 576 394 381 280 1.7k +2026-07-27T04:43:54.0816521Z landuse 0 0 0 770 5.1k 16k 32k 48k 61k 37k 16k 8.4k 4.7k 1.7k 61k +2026-07-27T04:43:54.0817742Z water 0 0 0 169 234 543 1.3k 2.4k 5.1k 4.2k 2.5k 1.7k 869 787 5.1k +2026-07-27T04:43:54.0819174Z waterway 0 0 0 289 340 559 633 2.7k 3.2k 1.9k 1k 734 523 413 3.2k +2026-07-27T04:43:54.0820403Z park 0 0 0 0 1.1k 3k 4.7k 5.8k 6.2k 3.4k 1.5k 918 602 379 6.2k +2026-07-27T04:43:54.0821568Z place 0 0 0 0 92 92 208 958 956 494 201 158 138 118 958 +2026-07-27T04:43:54.0823387Z transportation_name 0 0 0 0 420 2.4k 3.7k 9.9k 10k 54k 25k 9.7k 3.8k 1.6k 54k +2026-07-27T04:43:54.0824778Z mountain_peak 0 0 0 0 0 78 78 78 78 78 78 78 78 78 78 +2026-07-27T04:43:54.0833632Z poi 0 0 0 0 0 0 0 0 82k 68k 35k 26k 13k 8k 82k +2026-07-27T04:43:54.0834813Z aeroway 0 0 0 0 0 0 0 0 0 0 77 83 100 100 100 +2026-07-27T04:43:54.0836418Z building 0 0 0 0 0 0 0 0 0 0  424k  164k 53k 20k  424k +2026-07-27T04:43:54.0837710Z housenumber 0 0 0 0 0 0 0 0 0 0 0 0 0 11k 11k +2026-07-27T04:43:54.0839166Z full tile 79 58 887 6k 16k 45k 85k 126k 400k 376k 593k 212k 72k 37k 593k +2026-07-27T04:43:54.0840364Z gzipped 98 80 625 3.5k 10k 26k 49k 75k 208k 194k 284k 111k 39k 20k 284k +2026-07-27T04:43:54.0841520Z 0:00:14 DEB [archive] - Max tile: 593k (gzipped: 284k) +2026-07-27T04:43:54.0842786Z 0:00:14 DEB [archive] - Avg tile: 15k (gzipped: 8.6k) using weighted average based on OSM traffic +2026-07-27T04:43:54.0843942Z 0:00:14 DEB [archive] - # tiles: 1,540 +2026-07-27T04:43:54.0844789Z 0:00:14 DEB [archive] - # features: 697,704 +2026-07-27T04:43:54.0845871Z 0:00:14 INF [archive] - Finished in 3s cpu:12s avg:3.9 +2026-07-27T04:43:54.0846903Z 0:00:14 INF [archive] - read 1x(4% 0.1s done:3s) +2026-07-27T04:43:54.0847893Z 0:00:14 INF [archive] - encode 4x(50% 2s) +2026-07-27T04:43:54.0849110Z 0:00:14 INF [archive] - write 1x(1% 0s wait:2s) +2026-07-27T04:43:54.0850159Z 0:00:14 INF [archive] - Finished in 14s cpu:51s avg:3.8 +2026-07-27T04:43:54.0851152Z 0:00:14 INF [archive] - FINISHED! +2026-07-27T04:43:54.0852011Z 0:00:14 INF [archive] - +2026-07-27T04:43:54.0852958Z 0:00:14 INF [archive] - ---------------------------------------- +2026-07-27T04:43:54.0853985Z 0:00:14 INF [archive] - data errors: +2026-07-27T04:43:54.0854994Z 0:00:14 INF [archive] - render_snap_fix_input 2,019 +2026-07-27T04:43:54.0856051Z 0:00:14 INF [archive] - osm_multipolygon_missing_way 23 +2026-07-27T04:43:54.0857183Z 0:00:14 INF [archive] - ---------------------------------------- +2026-07-27T04:43:54.0863045Z 0:00:14 INF [archive] - overall 14s cpu:51s avg:3.8 +2026-07-27T04:43:54.0866361Z 0:00:14 INF [archive] - osm_bounds 0.7s cpu:3s avg:3.7 +2026-07-27T04:43:54.0869428Z 0:00:14 INF [archive] - osm_pass1 1s cpu:3s avg:3 +2026-07-27T04:43:54.0872234Z 0:00:14 INF [archive] - osm_pass2 7s cpu:30s avg:4 +2026-07-27T04:43:54.0879196Z 0:00:14 INF [archive] - read 1x(0% 0s wait:4s done:3s) +2026-07-27T04:43:54.0880750Z 0:00:14 INF [archive] - process 4x(62% 5s) +2026-07-27T04:43:54.0883009Z 0:00:14 INF [archive] - write 1x(5% 0.4s wait:7s) +2026-07-27T04:43:54.0885889Z 0:00:14 INF [archive] - sort 0.8s cpu:3s avg:3.6 +2026-07-27T04:43:54.0888880Z 0:00:14 INF [archive] - archive 3s cpu:12s avg:3.9 +2026-07-27T04:43:54.0894758Z 0:00:14 INF [archive] - read 1x(4% 0.1s done:3s) +2026-07-27T04:43:54.0900839Z 0:00:14 INF [archive] - encode 4x(50% 2s) +2026-07-27T04:43:54.0901781Z 0:00:14 INF [archive] - write 1x(1% 0s wait:2s) +2026-07-27T04:43:54.0902849Z 0:00:14 INF [archive] - ---------------------------------------- +2026-07-27T04:43:54.0906057Z 0:00:14 INF [archive] - archive 13MB +2026-07-27T04:43:54.0911348Z 0:00:14 INF [archive] - features 43MB +2026-07-27T04:43:54.2228937Z -rw-r--r-- 1 root root 13M Jul 27 04:43 /home/runner/work/Map/Map/artifacts/occumed-enfield.pmtiles +2026-07-27T04:43:54.2230778Z -rw-r--r-- 1 runner runner 90 Jul 27 04:43 /home/runner/work/Map/Map/artifacts/occumed-enfield.pmtiles.sha256 +2026-07-27T04:43:54.2232633Z Created /home/runner/work/Map/Map/artifacts/occumed-enfield.pmtiles +2026-07-27T04:43:54.2233349Z Build the app with: +2026-07-27T04:43:54.2233950Z OCCUMED_PMTILES_URL=__OCCUMED_PUBLIC_ORIGIN__/tiles/occumed-enfield.pmtiles npm run build +2026-07-27T04:43:54.2262094Z archive_size_bytes=13359681 +2026-07-27T04:43:54.2310370Z ##[group]Run set -euo pipefail +2026-07-27T04:43:54.2310700Z set -euo pipefail +2026-07-27T04:43:54.2311142Z release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')" +2026-07-27T04:43:54.2311618Z for attempt in 1 2 3 4 5; do +2026-07-27T04:43:54.2311964Z  if gh release upload "$RELEASE_TAG" "artifacts/$ASSET_NAME" \ +2026-07-27T04:43:54.2312388Z  --repo "$GITHUB_REPOSITORY"; then +2026-07-27T04:43:54.2312661Z  break +2026-07-27T04:43:54.2312851Z  fi +2026-07-27T04:43:54.2313034Z  size="$( +2026-07-27T04:43:54.2313245Z  gh api --paginate \ +2026-07-27T04:43:54.2313650Z  "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ +2026-07-27T04:43:54.2314096Z  --jq '.[] | [.name, .size] | @tsv' | +2026-07-27T04:43:54.2314476Z  awk -F '\t' -v name="$ASSET_NAME" '$1 == name { print $2; exit }' +2026-07-27T04:43:54.2314823Z  )" +2026-07-27T04:43:54.2315048Z  if [ -n "$size" ] && [ "$size" -gt 0 ]; then +2026-07-27T04:43:54.2315437Z  echo "Asset appeared during upload: $ASSET_NAME ($size bytes)" +2026-07-27T04:43:54.2315790Z  exit 0 +2026-07-27T04:43:54.2315983Z  fi +2026-07-27T04:43:54.2316178Z  sleep $((attempt * 10)) +2026-07-27T04:43:54.2316413Z done +2026-07-27T04:43:54.2316589Z size="$( +2026-07-27T04:43:54.2316794Z  gh api --paginate \ +2026-07-27T04:43:54.2317166Z  "/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \ +2026-07-27T04:43:54.2317590Z  --jq '.[] | [.name, .size] | @tsv' | +2026-07-27T04:43:54.2317965Z  awk -F '\t' -v name="$ASSET_NAME" '$1 == name { print $2; exit }' +2026-07-27T04:43:54.2318308Z )" +2026-07-27T04:43:54.2319067Z if [ -z "$size" ] || [ "$size" -le 0 ]; then +2026-07-27T04:43:54.2319463Z  echo "Release asset is still missing after upload: $ASSET_NAME" >&2 +2026-07-27T04:43:54.2319823Z  exit 1 +2026-07-27T04:43:54.2320005Z fi +2026-07-27T04:43:54.2320272Z echo "Published release asset: $ASSET_NAME ($size bytes)" +2026-07-27T04:43:54.2365362Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} +2026-07-27T04:43:54.2365719Z env: +2026-07-27T04:43:54.2365931Z WORLD_RELEASE_TAG: occumed-world-v1 +2026-07-27T04:43:54.2368902Z GH_TOKEN: *** +2026-07-27T04:43:54.2369148Z RELEASE_TAG: occumed-world-v1 +2026-07-27T04:43:54.2369426Z ASSET_NAME: occumed-enfield.pmtiles +2026-07-27T04:43:54.2369692Z ##[endgroup] +2026-07-27T04:43:56.0911137Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-enfield.pmtiles) +2026-07-27T04:43:56.0912300Z file_count limited to 1000 assets per release +2026-07-27T04:44:08.9891443Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-enfield.pmtiles) +2026-07-27T04:44:08.9894226Z file_count limited to 1000 assets per release +2026-07-27T04:44:31.8882693Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-enfield.pmtiles) +2026-07-27T04:44:31.8902858Z file_count limited to 1000 assets per release +2026-07-27T04:45:05.1476127Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-enfield.pmtiles) +2026-07-27T04:45:05.1478213Z file_count limited to 1000 assets per release +2026-07-27T04:45:48.1042769Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-enfield.pmtiles) +2026-07-27T04:45:48.1044554Z file_count limited to 1000 assets per release +2026-07-27T04:46:41.7882843Z Release asset is still missing after upload: occumed-enfield.pmtiles +2026-07-27T04:46:41.7897623Z ##[error]Process completed with exit code 1. +2026-07-27T04:46:41.8048638Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +2026-07-27T04:46:41.8050264Z Post job cleanup. +2026-07-27T04:46:41.8940887Z [command]/usr/bin/git version +2026-07-27T04:46:41.8989742Z git version 2.54.0 +2026-07-27T04:46:41.9034064Z Temporarily overriding HOME='/home/runner/work/_temp/42a1cc29-f6c4-4a80-bc76-5cec917e75b8' before making global git config changes +2026-07-27T04:46:41.9036032Z Adding repository directory to the temporary git global config as a safe directory +2026-07-27T04:46:41.9040244Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +2026-07-27T04:46:41.9084728Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-27T04:46:41.9127418Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-27T04:46:41.9423248Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-07-27T04:46:41.9467425Z http.https://github.com/.extraheader +2026-07-27T04:46:41.9485590Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-07-27T04:46:41.9523343Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-07-27T04:46:41.9793540Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-07-27T04:46:41.9840186Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-07-27T04:46:42.0267875Z Cleaning up orphan processes +2026-07-27T04:46:42.0675774Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/diagnostics/enfield-failure-latest.meta b/diagnostics/enfield-failure-latest.meta new file mode 100644 index 00000000..8e22c0ae --- /dev/null +++ b/diagnostics/enfield-failure-latest.meta @@ -0,0 +1,2 @@ +run_id=30237694770 +job_id=89888523274 diff --git a/diagnostics/fresno-production-build-failure.log b/diagnostics/fresno-production-build-failure.log new file mode 100644 index 00000000..faf9f966 --- /dev/null +++ b/diagnostics/fresno-production-build-failure.log @@ -0,0 +1,350 @@ +2026-07-26T17:11:51.9144541Z Hit:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease +2026-07-26T17:11:51.9159979Z Hit:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease +2026-07-26T17:11:51.9186132Z Hit:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease +2026-07-26T17:11:51.9189094Z Hit:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease +2026-07-26T17:11:51.9954586Z Hit:8 https://dl.google.com/linux/chrome-stable/deb stable InRelease +2026-07-26T17:11:53.0411604Z Reading package lists... +2026-07-26T17:11:53.0642250Z Reading package lists... +2026-07-26T17:11:53.2163722Z Building dependency tree... +2026-07-26T17:11:53.2170997Z Reading state information... +2026-07-26T17:11:53.3459417Z libasound2t64 is already the newest version (1.2.11-1ubuntu0.3). +2026-07-26T17:11:53.3460346Z libasound2t64 set to manually installed. +2026-07-26T17:11:53.3461208Z libatk-bridge2.0-0t64 is already the newest version (2.52.0-1build1). +2026-07-26T17:11:53.3462048Z libatk-bridge2.0-0t64 set to manually installed. +2026-07-26T17:11:53.3462824Z libatk1.0-0t64 is already the newest version (2.52.0-1build1). +2026-07-26T17:11:53.3464166Z libatk1.0-0t64 set to manually installed. +2026-07-26T17:11:53.3464918Z libatspi2.0-0t64 is already the newest version (2.52.0-1build1). +2026-07-26T17:11:53.3465634Z libatspi2.0-0t64 set to manually installed. +2026-07-26T17:11:53.3466299Z libcairo2 is already the newest version (1.18.0-3build1). +2026-07-26T17:11:53.3466940Z libcairo2 set to manually installed. +2026-07-26T17:11:53.3467981Z libcups2t64 is already the newest version (2.4.7-1.2ubuntu7.14). +2026-07-26T17:11:53.3468665Z libcups2t64 set to manually installed. +2026-07-26T17:11:53.3469393Z libdbus-1-3 is already the newest version (1.14.10-4ubuntu4.1). +2026-07-26T17:11:53.3470131Z libdbus-1-3 set to manually installed. +2026-07-26T17:11:53.3470943Z libdrm2 is already the newest version (2.4.125-1ubuntu0.1~24.04.2). +2026-07-26T17:11:53.3471685Z libdrm2 set to manually installed. +2026-07-26T17:11:53.3472399Z libgbm1 is already the newest version (25.2.8-0ubuntu0.24.04.2). +2026-07-26T17:11:53.3473096Z libgbm1 set to manually installed. +2026-07-26T17:11:53.3473808Z libglib2.0-0t64 is already the newest version (2.80.0-6ubuntu3.8). +2026-07-26T17:11:53.3474533Z libglib2.0-0t64 set to manually installed. +2026-07-26T17:11:53.3475247Z libnspr4 is already the newest version (2:4.35-1.1build1). +2026-07-26T17:11:53.3475899Z libnspr4 set to manually installed. +2026-07-26T17:11:53.3476737Z libnss3 is already the newest version (2:3.98-1ubuntu0.2). +2026-07-26T17:11:53.3477632Z libnss3 set to manually installed. +2026-07-26T17:11:53.3478347Z libpango-1.0-0 is already the newest version (1.52.1+ds-1build1). +2026-07-26T17:11:53.3479059Z libpango-1.0-0 set to manually installed. +2026-07-26T17:11:53.3479838Z libx11-6 is already the newest version (2:1.8.7-1build1). +2026-07-26T17:11:53.3480491Z libx11-6 set to manually installed. +2026-07-26T17:11:53.3481130Z libxcb1 is already the newest version (1.15-1ubuntu2). +2026-07-26T17:11:53.3481747Z libxcb1 set to manually installed. +2026-07-26T17:11:53.3482741Z libxcomposite1 is already the newest version (1:0.4.5-1build3). +2026-07-26T17:11:53.3483473Z libxcomposite1 set to manually installed. +2026-07-26T17:11:53.3484209Z libxdamage1 is already the newest version (1:1.1.6-1build1). +2026-07-26T17:11:53.3484934Z libxdamage1 set to manually installed. +2026-07-26T17:11:53.3485633Z libxext6 is already the newest version (2:1.3.4-1build2). +2026-07-26T17:11:53.3486306Z libxext6 set to manually installed. +2026-07-26T17:11:53.3487013Z libxfixes3 is already the newest version (1:6.0.0-2build1). +2026-07-26T17:11:53.3487945Z libxfixes3 set to manually installed. +2026-07-26T17:11:53.3488702Z libxkbcommon0 is already the newest version (1.6.0-1build1). +2026-07-26T17:11:53.3489413Z libxkbcommon0 set to manually installed. +2026-07-26T17:11:53.3490122Z libxrandr2 is already the newest version (2:1.5.2-2build1). +2026-07-26T17:11:53.3490790Z libxrandr2 set to manually installed. +2026-07-26T17:11:53.3491469Z xvfb is already the newest version (2:21.1.12-1ubuntu1.6). +2026-07-26T17:11:53.3492417Z fonts-noto-color-emoji is already the newest version (2.047-0ubuntu0.24.04.1). +2026-07-26T17:11:53.3493349Z libfontconfig1 is already the newest version (2.15.0-1.1ubuntu2). +2026-07-26T17:11:53.3494030Z libfontconfig1 set to manually installed. +2026-07-26T17:11:53.3494749Z libfreetype6 is already the newest version (2.13.2+dfsg-1ubuntu0.1). +2026-07-26T17:11:53.3495433Z libfreetype6 set to manually installed. +2026-07-26T17:11:53.3496095Z fonts-liberation is already the newest version (1:2.1.5-3). +2026-07-26T17:11:53.3496834Z fonts-liberation set to manually installed. +2026-07-26T17:11:53.3497660Z The following additional packages will be installed: +2026-07-26T17:11:53.3498221Z xfonts-encodings xfonts-utils +2026-07-26T17:11:53.3498655Z Recommended packages: +2026-07-26T17:11:53.3499071Z fonts-ipafont-mincho fonts-tlwg-loma +2026-07-26T17:11:53.3629645Z The following NEW packages will be installed: +2026-07-26T17:11:53.3630563Z fonts-freefont-ttf fonts-ipafont-gothic fonts-tlwg-loma-otf fonts-unifont +2026-07-26T17:11:53.3636080Z fonts-wqy-zenhei xfonts-cyrillic xfonts-encodings xfonts-scalable +2026-07-26T17:11:53.3636533Z xfonts-utils +2026-07-26T17:11:53.3796026Z 0 upgraded, 9 newly installed, 0 to remove and 66 not upgraded. +2026-07-26T17:11:53.3796541Z Need to get 21.1 MB of archives. +2026-07-26T17:11:53.3796983Z After this operation, 79.5 MB of additional disk space will be used. +2026-07-26T17:11:53.3797956Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] +2026-07-26T17:11:53.5288641Z Get:2 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 fonts-ipafont-gothic all 00303-21ubuntu1 [3513 kB] +2026-07-26T17:11:54.1557821Z Get:3 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 fonts-freefont-ttf all 20211204+svn4273-2 [5641 kB] +2026-07-26T17:11:54.3168745Z Get:4 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 fonts-tlwg-loma-otf all 1:0.7.3-1 [107 kB] +2026-07-26T17:11:54.3865971Z Get:5 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 fonts-unifont all 1:15.1.01-1build1 [2993 kB] +2026-07-26T17:11:54.4860221Z Get:6 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 fonts-wqy-zenhei all 0.9.45-8 [7472 kB] +2026-07-26T17:11:54.6178907Z Get:7 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 xfonts-encodings all 1:1.0.5-0ubuntu2 [578 kB] +2026-07-26T17:11:54.6911576Z Get:8 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 xfonts-utils amd64 1:7.7+6build3 [94.4 kB] +2026-07-26T17:11:54.7598225Z Get:9 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 xfonts-cyrillic all 1:1.0.5+nmu1 [384 kB] +2026-07-26T17:11:54.8305407Z Get:10 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 xfonts-scalable all 1:1.0.3-1.3 [304 kB] +2026-07-26T17:11:55.0797786Z Fetched 21.1 MB in 1s (14.4 MB/s) +2026-07-26T17:11:55.1243635Z Selecting previously unselected package fonts-ipafont-gothic. +2026-07-26T17:11:55.1298647Z (Reading database ... +2026-07-26T17:11:55.1299223Z (Reading database ... 5% +2026-07-26T17:11:55.1299602Z (Reading database ... 10% +2026-07-26T17:11:55.1300232Z (Reading database ... 15% +2026-07-26T17:11:55.1300561Z (Reading database ... 20% +2026-07-26T17:11:55.1300848Z (Reading database ... 25% +2026-07-26T17:11:55.1301184Z (Reading database ... 30% +2026-07-26T17:11:55.1301472Z (Reading database ... 35% +2026-07-26T17:11:55.1301810Z (Reading database ... 40% +2026-07-26T17:11:55.1302094Z (Reading database ... 45% +2026-07-26T17:11:55.1302413Z (Reading database ... 50% +2026-07-26T17:11:55.1309162Z (Reading database ... 55% +2026-07-26T17:11:55.1418720Z (Reading database ... 60% +2026-07-26T17:11:55.1447174Z (Reading database ... 65% +2026-07-26T17:11:55.1472998Z (Reading database ... 70% +2026-07-26T17:11:55.1501753Z (Reading database ... 75% +2026-07-26T17:11:55.1536750Z (Reading database ... 80% +2026-07-26T17:11:55.1676138Z (Reading database ... 85% +2026-07-26T17:11:55.1745506Z (Reading database ... 90% +2026-07-26T17:11:55.1954911Z (Reading database ... 95% +2026-07-26T17:11:55.1955397Z (Reading database ... 100% +2026-07-26T17:11:55.1956141Z (Reading database ... 203005 files and directories currently installed.) +2026-07-26T17:11:55.1995172Z Preparing to unpack .../0-fonts-ipafont-gothic_00303-21ubuntu1_all.deb ... +2026-07-26T17:11:55.2066354Z Unpacking fonts-ipafont-gothic (00303-21ubuntu1) ... +2026-07-26T17:11:55.4285353Z Selecting previously unselected package fonts-freefont-ttf. +2026-07-26T17:11:55.4411278Z Preparing to unpack .../1-fonts-freefont-ttf_20211204+svn4273-2_all.deb ... +2026-07-26T17:11:55.4419016Z Unpacking fonts-freefont-ttf (20211204+svn4273-2) ... +2026-07-26T17:11:55.5218280Z Selecting previously unselected package fonts-tlwg-loma-otf. +2026-07-26T17:11:55.5343760Z Preparing to unpack .../2-fonts-tlwg-loma-otf_1%3a0.7.3-1_all.deb ... +2026-07-26T17:11:55.5351106Z Unpacking fonts-tlwg-loma-otf (1:0.7.3-1) ... +2026-07-26T17:11:55.5557770Z Selecting previously unselected package fonts-unifont. +2026-07-26T17:11:55.5683736Z Preparing to unpack .../3-fonts-unifont_1%3a15.1.01-1build1_all.deb ... +2026-07-26T17:11:55.5691975Z Unpacking fonts-unifont (1:15.1.01-1build1) ... +2026-07-26T17:11:55.6730641Z Selecting previously unselected package fonts-wqy-zenhei. +2026-07-26T17:11:55.6855071Z Preparing to unpack .../4-fonts-wqy-zenhei_0.9.45-8_all.deb ... +2026-07-26T17:11:55.6950711Z Unpacking fonts-wqy-zenhei (0.9.45-8) ... +2026-07-26T17:11:56.1549018Z Selecting previously unselected package xfonts-encodings. +2026-07-26T17:11:56.1674938Z Preparing to unpack .../5-xfonts-encodings_1%3a1.0.5-0ubuntu2_all.deb ... +2026-07-26T17:11:56.1683577Z Unpacking xfonts-encodings (1:1.0.5-0ubuntu2) ... +2026-07-26T17:11:56.1969116Z Selecting previously unselected package xfonts-utils. +2026-07-26T17:11:56.2095430Z Preparing to unpack .../6-xfonts-utils_1%3a7.7+6build3_amd64.deb ... +2026-07-26T17:11:56.2104725Z Unpacking xfonts-utils (1:7.7+6build3) ... +2026-07-26T17:11:56.2555084Z Selecting previously unselected package xfonts-cyrillic. +2026-07-26T17:11:56.2680401Z Preparing to unpack .../7-xfonts-cyrillic_1%3a1.0.5+nmu1_all.deb ... +2026-07-26T17:11:56.2689508Z Unpacking xfonts-cyrillic (1:1.0.5+nmu1) ... +2026-07-26T17:11:56.3030916Z Selecting previously unselected package xfonts-scalable. +2026-07-26T17:11:56.3154993Z Preparing to unpack .../8-xfonts-scalable_1%3a1.0.3-1.3_all.deb ... +2026-07-26T17:11:56.3171431Z Unpacking xfonts-scalable (1:1.0.3-1.3) ... +2026-07-26T17:11:56.3567709Z Setting up fonts-wqy-zenhei (0.9.45-8) ... +2026-07-26T17:11:56.3681913Z Setting up fonts-freefont-ttf (20211204+svn4273-2) ... +2026-07-26T17:11:56.3701785Z Setting up fonts-tlwg-loma-otf (1:0.7.3-1) ... +2026-07-26T17:11:56.3721205Z Setting up xfonts-encodings (1:1.0.5-0ubuntu2) ... +2026-07-26T17:11:56.3740582Z Setting up fonts-ipafont-gothic (00303-21ubuntu1) ... +2026-07-26T17:11:56.3805624Z update-alternatives: using /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf to provide /usr/share/fonts/truetype/fonts-japanese-gothic.ttf (fonts-japanese-gothic.ttf) in auto mode +2026-07-26T17:11:56.3821302Z Setting up fonts-unifont (1:15.1.01-1build1) ... +2026-07-26T17:11:56.3840901Z Setting up xfonts-utils (1:7.7+6build3) ... +2026-07-26T17:11:56.3881719Z Setting up xfonts-cyrillic (1:1.0.5+nmu1) ... +2026-07-26T17:11:56.4211371Z Setting up xfonts-scalable (1:1.0.3-1.3) ... +2026-07-26T17:11:56.4479303Z Processing triggers for man-db (2.12.0-4build2) ... +2026-07-26T17:11:56.4495797Z Not building database; man-db/auto-update is not 'true'. +2026-07-26T17:11:56.4507673Z Processing triggers for fontconfig (2.15.0-1.1ubuntu2) ... +2026-07-26T17:11:57.0901268Z +2026-07-26T17:11:57.0902115Z Running kernel seems to be up-to-date. +2026-07-26T17:11:57.0902590Z +2026-07-26T17:11:57.0902916Z No services need to be restarted. +2026-07-26T17:11:57.0903302Z +2026-07-26T17:11:57.0903648Z No containers need to be restarted. +2026-07-26T17:11:57.0904050Z +2026-07-26T17:11:57.0904406Z No user sessions are running outdated binaries. +2026-07-26T17:11:57.0904848Z +2026-07-26T17:11:57.0905432Z No VM guests are running outdated hypervisor (qemu) binaries on this host. +2026-07-26T17:11:57.8543189Z Downloading Chromium 139.0.7258.5 (playwright build v1181) from https://cdn.playwright.dev/dbazure/download/playwright/builds/chromium/1181/chromium-linux.zip +2026-07-26T17:11:59.2278147Z | | 0% of 172.5 MiB +2026-07-26T17:11:59.3857826Z |■■■■■■■■ | 10% of 172.5 MiB +2026-07-26T17:11:59.4688005Z |■■■■■■■■■■■■■■■■ | 20% of 172.5 MiB +2026-07-26T17:11:59.5416311Z |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 172.5 MiB +2026-07-26T17:11:59.6131763Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 172.5 MiB +2026-07-26T17:11:59.6818583Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 172.5 MiB +2026-07-26T17:11:59.7423786Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 172.5 MiB +2026-07-26T17:11:59.8166456Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 172.5 MiB +2026-07-26T17:11:59.8785994Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 172.5 MiB +2026-07-26T17:11:59.9407730Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 172.5 MiB +2026-07-26T17:12:00.0067381Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 172.5 MiB +2026-07-26T17:12:03.2758119Z Chromium 139.0.7258.5 (playwright build v1181) downloaded to /home/runner/.cache/ms-playwright/chromium-1181 +2026-07-26T17:12:03.2760275Z Downloading FFMPEG playwright build v1011 from https://cdn.playwright.dev/dbazure/download/playwright/builds/ffmpeg/1011/ffmpeg-linux.zip +2026-07-26T17:12:03.4172733Z | | 0% of 2.3 MiB +2026-07-26T17:12:03.4313058Z |■■■■■■■■ | 10% of 2.3 MiB +2026-07-26T17:12:03.4372919Z |■■■■■■■■■■■■■■■■ | 20% of 2.3 MiB +2026-07-26T17:12:03.4417535Z |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 2.3 MiB +2026-07-26T17:12:03.4462676Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 2.3 MiB +2026-07-26T17:12:03.4496821Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 2.3 MiB +2026-07-26T17:12:03.4530067Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 2.3 MiB +2026-07-26T17:12:03.4540623Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 2.3 MiB +2026-07-26T17:12:03.4568269Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 2.3 MiB +2026-07-26T17:12:03.4586810Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 2.3 MiB +2026-07-26T17:12:03.4601244Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 2.3 MiB +2026-07-26T17:12:03.5183857Z FFMPEG playwright build v1011 downloaded to /home/runner/.cache/ms-playwright/ffmpeg-1011 +2026-07-26T17:12:03.5186086Z Downloading Chromium Headless Shell 139.0.7258.5 (playwright build v1181) from https://cdn.playwright.dev/dbazure/download/playwright/builds/chromium/1181/chromium-headless-shell-linux.zip +2026-07-26T17:12:03.6484643Z | | 0% of 104.8 MiB +2026-07-26T17:12:03.7470730Z |■■■■■■■■ | 10% of 104.8 MiB +2026-07-26T17:12:03.7950274Z |■■■■■■■■■■■■■■■■ | 20% of 104.8 MiB +2026-07-26T17:12:03.8422512Z |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 104.8 MiB +2026-07-26T17:12:03.8886588Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 104.8 MiB +2026-07-26T17:12:03.9358015Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 104.8 MiB +2026-07-26T17:12:03.9805080Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 104.8 MiB +2026-07-26T17:12:04.0148964Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 104.8 MiB +2026-07-26T17:12:04.0669263Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 104.8 MiB +2026-07-26T17:12:04.1075183Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 104.8 MiB +2026-07-26T17:12:04.1425601Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 104.8 MiB +2026-07-26T17:12:05.9565372Z Chromium Headless Shell 139.0.7258.5 (playwright build v1181) downloaded to /home/runner/.cache/ms-playwright/chromium_headless_shell-1181 +2026-07-26T17:12:06.0528591Z ##[group]Run mkdir -p public/tiles artifacts/visual-preview +2026-07-26T17:12:06.0529064Z mkdir -p public/tiles artifacts/visual-preview +2026-07-26T17:12:06.0529539Z cp artifacts/occumed-fresno.pmtiles public/tiles/occumed-fresno.pmtiles +2026-07-26T17:12:06.0529958Z npm run build +2026-07-26T17:12:06.0530241Z test -s dist/tiles/occumed-fresno.pmtiles +2026-07-26T17:12:06.0530587Z ls -lh dist/tiles/occumed-fresno.pmtiles +2026-07-26T17:12:06.0575706Z shell: /usr/bin/bash -e {0} +2026-07-26T17:12:06.0575963Z env: +2026-07-26T17:12:06.0576163Z OCCUMED_WORLD_MANIFEST_URL: off +2026-07-26T17:12:06.0576559Z OCCUMED_PMTILES_URL: __OCCUMED_PUBLIC_ORIGIN__/tiles/occumed-fresno.pmtiles +2026-07-26T17:12:06.0576956Z ##[endgroup] +2026-07-26T17:12:06.2251854Z +2026-07-26T17:12:06.2252358Z > @occumed/map@0.4.0 build +2026-07-26T17:12:06.2252950Z > npm run prepare:assets && npm run check && vite build && npm run check:server +2026-07-26T17:12:06.2253375Z +2026-07-26T17:12:06.3219685Z +2026-07-26T17:12:06.3220420Z > @occumed/map@0.4.0 prepare:assets +2026-07-26T17:12:06.3221336Z > npm run prepare:sprites && npm run prepare:style +2026-07-26T17:12:06.3221656Z +2026-07-26T17:12:06.4181293Z +2026-07-26T17:12:06.4181867Z > @occumed/map@0.4.0 prepare:sprites +2026-07-26T17:12:06.4182419Z > node scripts/build-sprites.mjs +2026-07-26T17:12:06.4182643Z +2026-07-26T17:12:07.0178250Z Generated 1x and 2x Occu-Med sprites from 440 unique SVG files. +2026-07-26T17:12:07.1314406Z +2026-07-26T17:12:07.1314892Z > @occumed/map@0.4.0 prepare:style +2026-07-26T17:12:07.1319437Z > node scripts/build-runtime-style.mjs && node scripts/normalize-runtime-fonts.mjs && node scripts/normalize-runtime-filters.mjs && node scripts/normalize-boundary-filters.mjs && node scripts/force-runtime-filter-expressions.mjs && node scripts/apply-schema-parity.mjs && node scripts/apply-globe-parity.mjs && node scripts/apply-photo-reference.mjs && node scripts/restore-exported-cartography.mjs && node scripts/calibrate-reference-colors.mjs && node scripts/lock-exact-exported-swatches.mjs && node scripts/lock-reference-atmosphere.mjs && node scripts/use-custom-pmtiles-source.mjs +2026-07-26T17:12:07.1321774Z +2026-07-26T17:12:07.1874154Z Generated 146 runtime layers from 148 original layers; 4 incompatible layers documented. +2026-07-26T17:12:07.2319156Z Normalized active font stacks in 4 runtime layers and refined 1 label halos. +2026-07-26T17:12:07.2759325Z Normalized mixed legacy/expression filters in 0 runtime layers. +2026-07-26T17:12:07.3184775Z Translated Mapbox boundary filters in 5 runtime layers. +2026-07-26T17:12:07.3600852Z Forced expression-mode parsing for 129 runtime filters. +2026-07-26T17:12:07.4053818Z Applied open-schema parity to 6 land layers, 6 place-label layers, and 3 icon-label layers. +2026-07-26T17:12:07.4485586Z Applied refined Occu-Med globe rim, vivid low-zoom relief, and stable hillshade. +2026-07-26T17:12:07.4930561Z Applied live visual-QA pass 2 for globe framing, ocean depth, landcover, terrain, roads, boundaries, and labels. +2026-07-26T17:12:07.5525555Z Restored exported layout and paint for 144 layers and repaired 118 schema-sensitive filters. +2026-07-26T17:12:07.6065605Z Preserved 91 exported structure-specific colors and restored visible low-zoom landcover, water, terrain, roads, and boundaries. +2026-07-26T17:12:07.6570292Z Locked exact exported swatches, preserved vector detail, and faded pixel-based relief before regional zooms. +2026-07-26T17:12:07.7040336Z Locked the luminous white-blue reference atmosphere without adding surface fog. +2026-07-26T17:12:07.7522416Z Configured custom PMTiles source: __OCCUMED_PUBLIC_ORIGIN__/tiles/occumed-fresno.pmtiles +2026-07-26T17:12:07.8591115Z +2026-07-26T17:12:07.8592126Z > @occumed/map@0.4.0 check +2026-07-26T17:12:07.8592593Z > npm run check:export && npm run check:runtime +2026-07-26T17:12:07.8592844Z +2026-07-26T17:12:07.9540424Z +2026-07-26T17:12:07.9541475Z > @occumed/map@0.4.0 check:export +2026-07-26T17:12:07.9542515Z > node scripts/check-export.mjs +2026-07-26T17:12:07.9542862Z +2026-07-26T17:12:07.9986953Z Original Occu-Med Terrain export is intact: 148 layers and 440 uploaded SVG files. +2026-07-26T17:12:08.0998226Z +2026-07-26T17:12:08.0998862Z > @occumed/map@0.4.0 check:runtime +2026-07-26T17:12:08.1002451Z > node scripts/check-runtime.mjs && node scripts/validate-maplibre-style.mjs && node scripts/check-globe-parity.mjs && node scripts/check-cartography-parity.mjs && node scripts/check-viewer-quality.mjs && node scripts/check-photo-reference.mjs && node scripts/check-exact-exported-swatches.mjs && node scripts/check-render-clarity.mjs && node scripts/check-pmtiles-integration.mjs +2026-07-26T17:12:08.1005061Z +2026-07-26T17:12:08.1432305Z Occu-Med open basemap validation failed: +2026-07-26T17:12:08.1434715Z - Rendered layers still request unavailable font stacks: Noto Sans Regular, Noto Sans Semibold +2026-07-26T17:12:08.1696848Z ##[error]Process completed with exit code 1. +2026-07-26T17:12:08.1750386Z ##[group]Run if [ ! -s artifacts/occumed-fresno.pmtiles ]; then +2026-07-26T17:12:08.1750884Z if [ ! -s artifacts/occumed-fresno.pmtiles ]; then +2026-07-26T17:12:08.1751350Z  echo "Fresno archive was not generated; no archive manifest can be written." +2026-07-26T17:12:08.1751757Z  exit 0 +2026-07-26T17:12:08.1751957Z fi +2026-07-26T17:12:08.1752139Z ( +2026-07-26T17:12:08.1752328Z  cd artifacts +2026-07-26T17:12:08.1752689Z  sha256sum occumed-fresno.pmtiles > occumed-fresno.pmtiles.sha256 +2026-07-26T17:12:08.1753081Z ) +2026-07-26T17:12:08.1753257Z { +2026-07-26T17:12:08.1753447Z  echo "commit=${GITHUB_SHA}" +2026-07-26T17:12:08.1753930Z  echo "source=https://download.geofabrik.de/north-america/us/california-latest.osm.pbf" +2026-07-26T17:12:08.1754435Z  echo "bounds=-120.55,35.50,-118.45,37.55" +2026-07-26T17:12:08.1754807Z  echo "profile=planetiler/occumed-basemap.yml" +2026-07-26T17:12:08.1755175Z  echo "built_at=$(date -u +%Y-%m-%dT%H:%M:%SZ)" +2026-07-26T17:12:08.1755587Z  stat --printf='size_bytes=%s\n' artifacts/occumed-fresno.pmtiles +2026-07-26T17:12:08.1756019Z  cat artifacts/occumed-fresno.pmtiles.sha256 +2026-07-26T17:12:08.1756371Z } | tee artifacts/occumed-fresno.manifest.txt +2026-07-26T17:12:08.1800111Z shell: /usr/bin/bash -e {0} +2026-07-26T17:12:08.1800360Z ##[endgroup] +2026-07-26T17:12:08.3375017Z commit=defc0cbd07cd1f3597e456e3c2e01e252ac4cc35 +2026-07-26T17:12:08.3375793Z source=https://download.geofabrik.de/north-america/us/california-latest.osm.pbf +2026-07-26T17:12:08.3376341Z bounds=-120.55,35.50,-118.45,37.55 +2026-07-26T17:12:08.3376868Z profile=planetiler/occumed-basemap.yml +2026-07-26T17:12:08.3377636Z built_at=2026-07-26T17:12:08Z +2026-07-26T17:12:08.3388549Z size_bytes=204194771 +2026-07-26T17:12:08.3399907Z 9c5e0898690ecf3d645e4f075fd798299586f2d5938cb7473df0cbe4c6f44a29 occumed-fresno.pmtiles +2026-07-26T17:12:08.3479659Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +2026-07-26T17:12:08.3480959Z ##[group]Run actions/upload-artifact@v4 +2026-07-26T17:12:08.3481225Z with: +2026-07-26T17:12:08.3481531Z name: occumed-fresno-pmtiles-defc0cbd07cd1f3597e456e3c2e01e252ac4cc35 +2026-07-26T17:12:08.3482556Z path: artifacts/occumed-fresno.pmtiles +artifacts/occumed-fresno.pmtiles.sha256 +artifacts/occumed-fresno.manifest.txt +artifacts/pmtiles-range.headers.txt +artifacts/preview-server.log +artifacts/visual-preview/ + +2026-07-26T17:12:08.3483451Z if-no-files-found: error +2026-07-26T17:12:08.3483679Z compression-level: 0 +2026-07-26T17:12:08.3483888Z retention-days: 30 +2026-07-26T17:12:08.3484085Z overwrite: false +2026-07-26T17:12:08.3484506Z include-hidden-files: false +2026-07-26T17:12:08.3484739Z ##[endgroup] +2026-07-26T17:12:08.5117313Z (node:4333) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-07-26T17:12:08.5119159Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-07-26T17:12:08.5290185Z Multiple search paths detected. Calculating the least common ancestor of all paths +2026-07-26T17:12:08.5295445Z The least common ancestor is /home/runner/work/Map/Map/artifacts. This will be the root directory of the artifact +2026-07-26T17:12:08.5299910Z With the provided path, there will be 3 files uploaded +2026-07-26T17:12:08.5302585Z Artifact name is valid! +2026-07-26T17:12:08.5303607Z Root directory input is valid! +2026-07-26T17:12:08.8590755Z Beginning upload of artifact content to blob storage +2026-07-26T17:12:08.9077711Z (node:4333) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +2026-07-26T17:12:09.9287840Z Uploaded bytes 8388608 +2026-07-26T17:12:09.9511351Z Uploaded bytes 16777216 +2026-07-26T17:12:10.0243106Z Uploaded bytes 25165824 +2026-07-26T17:12:10.0340880Z Uploaded bytes 33554432 +2026-07-26T17:12:10.2104155Z Uploaded bytes 41943040 +2026-07-26T17:12:10.2705794Z Uploaded bytes 50331648 +2026-07-26T17:12:10.3156040Z Uploaded bytes 58720256 +2026-07-26T17:12:10.3297915Z Uploaded bytes 67108864 +2026-07-26T17:12:10.5292697Z Uploaded bytes 75497472 +2026-07-26T17:12:10.5867796Z Uploaded bytes 83886080 +2026-07-26T17:12:10.6418526Z Uploaded bytes 92274688 +2026-07-26T17:12:10.6655707Z Uploaded bytes 100663296 +2026-07-26T17:12:10.8520935Z Uploaded bytes 109051904 +2026-07-26T17:12:10.9300026Z Uploaded bytes 117440512 +2026-07-26T17:12:10.9924099Z Uploaded bytes 125829120 +2026-07-26T17:12:11.0006834Z Uploaded bytes 134217728 +2026-07-26T17:12:11.1587118Z Uploaded bytes 142606336 +2026-07-26T17:12:11.2319968Z Uploaded bytes 150994944 +2026-07-26T17:12:11.3126526Z Uploaded bytes 159383552 +2026-07-26T17:12:11.3255272Z Uploaded bytes 167772160 +2026-07-26T17:12:11.4901580Z Uploaded bytes 176160768 +2026-07-26T17:12:11.5265673Z Uploaded bytes 184549376 +2026-07-26T17:12:11.6078459Z Uploaded bytes 192937984 +2026-07-26T17:12:11.6686693Z Uploaded bytes 201326592 +2026-07-26T17:12:11.8496233Z Uploaded bytes 204195656 +2026-07-26T17:12:11.9549741Z Finished uploading artifact content to blob storage! +2026-07-26T17:12:11.9553379Z SHA256 digest of uploaded artifact zip is 9485a9c6a8e21ff3ecffb8a43c707ab2bc2bfa07361d3c249abb79940144776e +2026-07-26T17:12:11.9556098Z Finalizing artifact upload +2026-07-26T17:12:12.1736094Z Artifact occumed-fresno-pmtiles-defc0cbd07cd1f3597e456e3c2e01e252ac4cc35.zip successfully finalized. Artifact ID 8634739920 +2026-07-26T17:12:12.1738757Z Artifact occumed-fresno-pmtiles-defc0cbd07cd1f3597e456e3c2e01e252ac4cc35 has been successfully uploaded! Final size is 204195656 bytes. Artifact ID is 8634739920 +2026-07-26T17:12:12.1744026Z Artifact download URL: https://github.com/Occumed79/Map/actions/runs/30211913698/artifacts/8634739920 +2026-07-26T17:12:12.1992295Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +2026-07-26T17:12:12.1993553Z Post job cleanup. +2026-07-26T17:12:12.2846161Z [command]/usr/bin/git version +2026-07-26T17:12:12.2889698Z git version 2.54.0 +2026-07-26T17:12:12.2931906Z Temporarily overriding HOME='/home/runner/work/_temp/95cb2be3-0cea-40eb-874c-c2e23eb5c55f' before making global git config changes +2026-07-26T17:12:12.2933463Z Adding repository directory to the temporary git global config as a safe directory +2026-07-26T17:12:12.2938606Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +2026-07-26T17:12:12.2981531Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-26T17:12:12.3045981Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-26T17:12:12.3307383Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-07-26T17:12:12.3335911Z http.https://github.com/.extraheader +2026-07-26T17:12:12.3349430Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-07-26T17:12:12.3388266Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-07-26T17:12:12.3635130Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-07-26T17:12:12.3678884Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-07-26T17:12:12.4090727Z Cleaning up orphan processes +2026-07-26T17:12:12.4344377Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/diagnostics/fresno-world-render.trigger b/diagnostics/fresno-world-render.trigger new file mode 100644 index 00000000..2548ab90 --- /dev/null +++ b/diagnostics/fresno-world-render.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-27T15:56:00Z +purpose=final_high_dpi_browser_validation_with_rendered_world_pmtiles_feature_evidence diff --git a/diagnostics/fresno-world-render/latest-failure.log b/diagnostics/fresno-world-render/latest-failure.log new file mode 100644 index 00000000..8f04079c --- /dev/null +++ b/diagnostics/fresno-world-render/latest-failure.log @@ -0,0 +1,501 @@ +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8485339Z Current runner version: '2.335.1' +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8526073Z ##[group]Runner Image Provisioner +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8527536Z Hosted Compute Agent +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8528514Z Version: 20260707.563 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8530010Z Commit: 02667638d2b423fbc733a8e32a88b44996a3ba6e +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8531297Z Build Date: 2026-07-07T19:33:50Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8532569Z Worker ID: {fa81283b-0532-4bc3-a166-606cf8b701fb} +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8533887Z Azure Region: eastus +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8534897Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8537465Z ##[group]Operating System +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8538553Z Ubuntu +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8539897Z 24.04.4 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8540750Z LTS +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8541562Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8542630Z ##[group]Runner Image +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8543857Z Image: ubuntu-24.04 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8545034Z Version: 20260720.247.2 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8547309Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260720.247/images/ubuntu/Ubuntu2404-Readme.md +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8550579Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260720.247 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8552352Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8554333Z ##[group]GITHUB_TOKEN Permissions +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8557408Z Contents: write +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8558483Z Metadata: read +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8559704Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8563275Z Secret source: Actions +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.8564965Z Prepare workflow directory +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.9059528Z Prepare all required actions +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:02.9117024Z Getting action download info +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.0819654Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.3360510Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.4786640Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.6965976Z Complete job name: validate-fresno-world +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7759677Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7768552Z ##[group]Run actions/checkout@v4 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7769637Z with: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7770140Z ref: feat/custom-planetiler-pmtiles-basemap +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7770756Z fetch-depth: 0 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7771204Z repository: Occumed79/Map +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7775359Z token: *** +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7775792Z ssh-strict: true +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7776230Z ssh-user: git +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7776682Z persist-credentials: true +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7777176Z clean: true +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7777631Z sparse-checkout-cone-mode: true +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7778159Z fetch-tags: false +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7778611Z show-progress: true +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7779346Z lfs: false +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7779773Z submodules: false +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7780227Z set-safe-directory: true +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7780741Z allow-unsafe-pr-checkout: false +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.7781544Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.8893488Z Syncing repository: Occumed79/Map +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.8896400Z ##[group]Getting Git version info +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.8897623Z Working directory is '/home/runner/work/Map/Map' +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.8899676Z [command]/usr/bin/git version +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9024545Z git version 2.54.0 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9049777Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9066372Z Temporarily overriding HOME='/home/runner/work/_temp/336eed2b-b6bb-444f-bef6-794a9fded032' before making global git config changes +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9069165Z Adding repository directory to the temporary git global config as a safe directory +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9072901Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9149912Z Deleting the contents of '/home/runner/work/Map/Map' +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9152421Z ##[group]Initializing the repository +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9153761Z [command]/usr/bin/git init /home/runner/work/Map/Map +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9256313Z hint: Using 'master' as the name for the initial branch. This default branch name +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9258305Z hint: will change to "main" in Git 3.0. To configure the initial branch name +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9262764Z hint: to use in all of your new repositories, which will suppress this warning, +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9264191Z hint: call: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9264994Z hint: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9265999Z hint: git config --global init.defaultBranch +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9267153Z hint: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9268246Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9270317Z hint: 'development'. The just-created branch can be renamed via this command: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9271639Z hint: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9272358Z hint: git branch -m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9273298Z hint: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9274880Z hint: Disable this message with "git config set advice.defaultBranchName false" +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9276966Z Initialized empty Git repository in /home/runner/work/Map/Map/.git/ +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9280614Z [command]/usr/bin/git remote add origin https://github.com/Occumed79/Map +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9325077Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9326438Z ##[group]Disabling automatic garbage collection +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9331547Z [command]/usr/bin/git config --local gc.auto 0 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9365155Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9366864Z ##[group]Setting up auth +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9374697Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9424397Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9784181Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:03.9823054Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.0047659Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.0083538Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.0338441Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.0378703Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.0380518Z ##[group]Fetching the repository +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.0390532Z [command]/usr/bin/git -c protocol.version=2 fetch --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5318550Z From https://github.com/Occumed79/Map +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5320996Z * [new branch] build/complete-occumed-basemap -> origin/build/complete-occumed-basemap +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5322471Z * [new branch] build/exact-mapbox-reference-v2 -> origin/build/exact-mapbox-reference-v2 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5323886Z * [new branch] build/exact-occumed-template -> origin/build/exact-occumed-template +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5325434Z * [new branch] build/literal-mapbox-style-self-hosted-app -> origin/build/literal-mapbox-style-self-hosted-app +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5326990Z * [new branch] build/mapbox-visual-parity -> origin/build/mapbox-visual-parity +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5328297Z * [new branch] build/open-basemap-foundation -> origin/build/open-basemap-foundation +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5329877Z * [new branch] build/open-mapbox-clone-v1 -> origin/build/open-mapbox-clone-v1 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5331181Z * [new branch] feat/custom-planetiler-pmtiles -> origin/feat/custom-planetiler-pmtiles +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5333125Z * [new branch] feat/custom-planetiler-pmtiles-basemap -> origin/feat/custom-planetiler-pmtiles-basemap +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5334611Z * [new branch] fix/final-visual-quality -> origin/fix/final-visual-quality +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5335884Z * [new branch] fix/live-visual-qa-pass-2 -> origin/fix/live-visual-qa-pass-2 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5337287Z * [new branch] fix/lock-exact-exported-swatches -> origin/fix/lock-exact-exported-swatches +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5339106Z * [new branch] fix/maplibre-filter-expressions -> origin/fix/maplibre-filter-expressions +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5340753Z * [new branch] fix/nonfatal-map-errors -> origin/fix/nonfatal-map-errors +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5342345Z * [new branch] fix/preserve-layer-specific-palette -> origin/fix/preserve-layer-specific-palette +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5343961Z * [new branch] fix/reference-color-system-pass-4 -> origin/fix/reference-color-system-pass-4 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5345482Z * [new branch] fix/remove-radioactive-relief -> origin/fix/remove-radioactive-relief +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5346874Z * [new branch] fix/render-health-timeout -> origin/fix/render-health-timeout +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5348450Z * [new branch] fix/restore-exported-road-label-hierarchy -> origin/fix/restore-exported-road-label-hierarchy +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5350498Z * [new branch] fix/restore-visible-mapbox-composition -> origin/fix/restore-visible-mapbox-composition +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5352007Z * [new branch] fix/stable-globe-rendering -> origin/fix/stable-globe-rendering +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5353492Z * [new branch] fix/strong-low-zoom-green -> origin/fix/strong-low-zoom-green +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5355072Z * [new branch] fix/style-cache-busting -> origin/fix/style-cache-busting +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5356482Z * [new branch] main -> origin/main +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5357934Z * [new branch] rebuild/photo-reference-v1 -> origin/rebuild/photo-reference-v1 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5360040Z * [new branch] rebuild/photo-reference-v2 -> origin/rebuild/photo-reference-v2 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5361785Z * [new branch] revert/remove-mapbox-runtime -> origin/revert/remove-mapbox-runtime +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5363407Z * [new branch] visual/globe-parity-v1 -> origin/visual/globe-parity-v1 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5364920Z * [new tag] occumed-world-v1 -> occumed-world-v1 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5410913Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5413587Z ##[group]Determining the checkout info +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5420491Z [command]/usr/bin/git branch --list --remote origin/feat/custom-planetiler-pmtiles-basemap +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5460162Z origin/feat/custom-planetiler-pmtiles-basemap +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5476640Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5478010Z [command]/usr/bin/git sparse-checkout disable +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5516052Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5548289Z ##[group]Checking out the ref +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.5553176Z [command]/usr/bin/git checkout --progress --force -B feat/custom-planetiler-pmtiles-basemap refs/remotes/origin/feat/custom-planetiler-pmtiles-basemap +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6214221Z Switched to a new branch 'feat/custom-planetiler-pmtiles-basemap' +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6216546Z branch 'feat/custom-planetiler-pmtiles-basemap' set up to track 'origin/feat/custom-planetiler-pmtiles-basemap'. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6229493Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6280264Z [command]/usr/bin/git log -1 --format=%H +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6311426Z 57c62208e29d320f94be1feb438a547d33ff9c39 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6697069Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6700803Z ##[group]Run actions/setup-node@v4 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6701676Z with: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6702617Z node-version: 24 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6703405Z always-auth: false +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6704186Z check-latest: false +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6709126Z token: *** +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.6709904Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.8135820Z (node:2302) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.8137588Z (Use `node --trace-deprecation ...` to show where the warning was created) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.8140461Z Found in cache @ /opt/hostedtoolcache/node/24.18.0/x64 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:04.8142284Z ##[group]Environment details +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.1967582Z node: v24.18.0 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.1968645Z npm: 11.16.0 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.1969532Z yarn: 1.22.22 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.1970770Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.2130736Z ##[group]Run set -euo pipefail +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.2131568Z ^[[36;1mset -euo pipefail^[[0m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.2132257Z ^[[36;1mnpm install^[[0m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.2132923Z ^[[36;1mnpm install --no-save playwright^[[0m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.2134006Z ^[[36;1mnpx playwright install --with-deps chromium^[[0m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.2193264Z shell: /usr/bin/bash -e {0} +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:05.2193938Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:10.8501138Z npm warn deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6765803Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6766677Z added 91 packages, and audited 92 packages in 8s +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6767124Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6767720Z 22 packages are looking for funding +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6768159Z run `npm fund` for details +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6779660Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6780196Z found 0 vulnerabilities +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6791062Z npm warn allow-scripts 1 package has install scripts not yet covered by allowScripts: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6793036Z npm warn allow-scripts @mapnik/mapnik@4.8.0 (preinstall: ./scripts/preinstall.sh; install: node-gyp-build; postinstall: ./scripts/postinstall.sh) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6794354Z npm warn allow-scripts +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:13.6795634Z npm warn allow-scripts Run `npm approve-scripts --allow-scripts-pending` to review, or `npm approve-scripts ` to allow. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1483039Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1483835Z added 2 packages, and audited 94 packages in 1s +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1484492Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1484812Z 22 packages are looking for funding +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1485926Z run `npm fund` for details +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1496606Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1497969Z found 0 vulnerabilities +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1515042Z npm warn allow-scripts 1 package has install scripts not yet covered by allowScripts: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1516028Z npm warn allow-scripts @mapnik/mapnik@4.8.0 (install: node-gyp rebuild) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1516485Z npm warn allow-scripts +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.1517232Z npm warn allow-scripts Run `npm approve-scripts --allow-scripts-pending` to review, or `npm approve-scripts ` to allow. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.9247377Z Installing dependencies... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:15.9330572Z Switching to root user to install dependencies... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.0181252Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.0638125Z Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.0644922Z Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.0647522Z Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.0652222Z Get:8 https://dl.google.com/linux/chrome-stable/deb stable InRelease [2548 B] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.0674284Z Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.0728562Z Get:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.0759754Z Get:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.2297808Z Get:9 https://packages.microsoft.com/ubuntu/24.04/prod noble/main armhf Packages [11.7 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.2397700Z Get:10 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [203 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.2470214Z Get:11 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [237 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.2924500Z Get:12 https://dl.google.com/linux/chrome-stable/deb stable/main amd64 Packages [1425 B] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3231624Z Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1151 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3302468Z Get:14 http://azure.archive.ubuntu.com/ubuntu noble-updates/main Translation-en [277 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3329569Z Get:15 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [180 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3351728Z Get:16 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1678 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3439319Z Get:17 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [333 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3465647Z Get:18 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [388 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3520935Z Get:19 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [1367 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3681676Z Get:20 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted Translation-en [308 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3699877Z Get:21 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [45.4 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.3756055Z Get:22 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse Translation-en [12.3 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4203649Z Get:23 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4224796Z Get:24 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [5760 B] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4241787Z Get:25 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [32.5 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4260672Z Get:26 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [12.6 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4405214Z Get:27 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Packages [885 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4459456Z Get:28 http://azure.archive.ubuntu.com/ubuntu noble-security/main Translation-en [196 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4479388Z Get:29 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [46.3 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4495996Z Get:30 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Packages [1197 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4580244Z Get:31 http://azure.archive.ubuntu.com/ubuntu noble-security/universe Translation-en [238 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4592796Z Get:32 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [76.3 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4604071Z Get:33 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [1248 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4670226Z Get:34 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted Translation-en [284 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4693933Z Get:35 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [40.3 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:16.4707154Z Get:36 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse Translation-en [10.4 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:20.3203826Z Fetched 10.9 MB in 1s (8146 kB/s) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:20.9966066Z Reading package lists... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.0208255Z Reading package lists... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.1816228Z Building dependency tree... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.1823977Z Reading state information... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3162211Z libasound2t64 is already the newest version (1.2.11-1ubuntu0.3). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3163212Z libasound2t64 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3163994Z libatk-bridge2.0-0t64 is already the newest version (2.52.0-1build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3164949Z libatk-bridge2.0-0t64 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3165902Z libatk1.0-0t64 is already the newest version (2.52.0-1build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3167341Z libatk1.0-0t64 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3168457Z libatspi2.0-0t64 is already the newest version (2.52.0-1build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3171355Z libatspi2.0-0t64 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3172465Z libcairo2 is already the newest version (1.18.0-3build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3173318Z libcairo2 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3174229Z libcups2t64 is already the newest version (2.4.7-1.2ubuntu7.14). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3175311Z libcups2t64 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3176287Z libdbus-1-3 is already the newest version (1.14.10-4ubuntu4.1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3177106Z libdbus-1-3 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3178400Z libdrm2 is already the newest version (2.4.125-1ubuntu0.1~24.04.2). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3179668Z libdrm2 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3180530Z libgbm1 is already the newest version (25.2.8-0ubuntu0.24.04.2). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3181233Z libgbm1 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3181965Z libglib2.0-0t64 is already the newest version (2.80.0-6ubuntu3.8). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3182848Z libglib2.0-0t64 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3183580Z libnspr4 is already the newest version (2:4.35-1.1build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3184226Z libnspr4 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3184866Z libnss3 is already the newest version (2:3.98-1ubuntu0.2). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3185499Z libnss3 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3186237Z libpango-1.0-0 is already the newest version (1.52.1+ds-1build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3187005Z libpango-1.0-0 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3187757Z libx11-6 is already the newest version (2:1.8.7-1build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3188467Z libx11-6 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3189493Z libxcb1 is already the newest version (1.15-1ubuntu2). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3190168Z libxcb1 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3190924Z libxcomposite1 is already the newest version (1:0.4.5-1build3). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3191680Z libxcomposite1 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3192456Z libxdamage1 is already the newest version (1:1.1.6-1build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3193191Z libxdamage1 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3193931Z libxext6 is already the newest version (2:1.3.4-1build2). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3194618Z libxext6 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3195247Z libxfixes3 is already the newest version (1:6.0.0-2build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3195631Z libxfixes3 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3196034Z libxkbcommon0 is already the newest version (1.6.0-1build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3196427Z libxkbcommon0 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3196840Z libxrandr2 is already the newest version (2:1.5.2-2build1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3197218Z libxrandr2 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3197610Z xvfb is already the newest version (2:21.1.12-1ubuntu1.6). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3198151Z fonts-noto-color-emoji is already the newest version (2.047-0ubuntu0.24.04.1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3198705Z libfontconfig1 is already the newest version (2.15.0-1.1ubuntu2). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3199461Z libfontconfig1 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3199902Z libfreetype6 is already the newest version (2.13.2+dfsg-1ubuntu0.1). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3200319Z libfreetype6 set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3200728Z fonts-liberation is already the newest version (1:2.1.5-3). +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3201128Z fonts-liberation set to manually installed. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3201516Z The following additional packages will be installed: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3201867Z xfonts-encodings xfonts-utils +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3202144Z Recommended packages: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3202414Z fonts-ipafont-mincho fonts-tlwg-loma +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3351039Z The following NEW packages will be installed: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3351891Z fonts-freefont-ttf fonts-ipafont-gothic fonts-tlwg-loma-otf fonts-unifont +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3356505Z fonts-wqy-zenhei xfonts-cyrillic xfonts-encodings xfonts-scalable +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3357155Z xfonts-utils +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3522593Z 0 upgraded, 9 newly installed, 0 to remove and 66 not upgraded. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3523336Z Need to get 21.1 MB of archives. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3524102Z After this operation, 79.5 MB of additional disk space will be used. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3524963Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.3768204Z Get:2 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 fonts-ipafont-gothic all 00303-21ubuntu1 [3513 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.4140115Z Get:3 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 fonts-freefont-ttf all 20211204+svn4273-2 [5641 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.4598234Z Get:4 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 fonts-tlwg-loma-otf all 1:0.7.3-1 [107 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.4694198Z Get:5 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 fonts-unifont all 1:15.1.01-1build1 [2993 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.4988197Z Get:6 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 fonts-wqy-zenhei all 0.9.45-8 [7472 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.5514219Z Get:7 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 xfonts-encodings all 1:1.0.5-0ubuntu2 [578 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.5622714Z Get:8 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 xfonts-utils amd64 1:7.7+6build3 [94.4 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.5717031Z Get:9 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 xfonts-cyrillic all 1:1.0.5+nmu1 [384 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.5814676Z Get:10 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 xfonts-scalable all 1:1.0.3-1.3 [304 kB] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8297684Z Fetched 21.1 MB in 0s (87.3 MB/s) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8534267Z Selecting previously unselected package fonts-ipafont-gothic. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8802202Z (Reading database ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8802801Z (Reading database ... 5% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8803462Z (Reading database ... 10% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8803954Z (Reading database ... 15% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8804440Z (Reading database ... 20% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8805083Z (Reading database ... 25% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8805660Z (Reading database ... 30% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8806083Z (Reading database ... 35% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8806506Z (Reading database ... 40% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8806932Z (Reading database ... 45% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8807405Z (Reading database ... 50% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.8846692Z (Reading database ... 55% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:21.9766413Z (Reading database ... 60% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:22.1792211Z (Reading database ... 65% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:22.3776102Z (Reading database ... 70% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:22.4762627Z (Reading database ... 75% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:22.6772339Z (Reading database ... 80% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:22.8957594Z (Reading database ... 85% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.0289015Z (Reading database ... 90% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.1948371Z (Reading database ... 95% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.1949176Z (Reading database ... 100% +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.1949756Z (Reading database ... 202954 files and directories currently installed.) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.1992229Z Preparing to unpack .../0-fonts-ipafont-gothic_00303-21ubuntu1_all.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.2085441Z Unpacking fonts-ipafont-gothic (00303-21ubuntu1) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.4355574Z Selecting previously unselected package fonts-freefont-ttf. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.4481730Z Preparing to unpack .../1-fonts-freefont-ttf_20211204+svn4273-2_all.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.4491624Z Unpacking fonts-freefont-ttf (20211204+svn4273-2) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.5284936Z Selecting previously unselected package fonts-tlwg-loma-otf. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.5413746Z Preparing to unpack .../2-fonts-tlwg-loma-otf_1%3a0.7.3-1_all.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.5424920Z Unpacking fonts-tlwg-loma-otf (1:0.7.3-1) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.5650079Z Selecting previously unselected package fonts-unifont. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.5778942Z Preparing to unpack .../3-fonts-unifont_1%3a15.1.01-1build1_all.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.5789842Z Unpacking fonts-unifont (1:15.1.01-1build1) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.6864914Z Selecting previously unselected package fonts-wqy-zenhei. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.7003929Z Preparing to unpack .../4-fonts-wqy-zenhei_0.9.45-8_all.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:23.7109513Z Unpacking fonts-wqy-zenhei (0.9.45-8) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.1705333Z Selecting previously unselected package xfonts-encodings. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.1833195Z Preparing to unpack .../5-xfonts-encodings_1%3a1.0.5-0ubuntu2_all.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.1843849Z Unpacking xfonts-encodings (1:1.0.5-0ubuntu2) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.2133327Z Selecting previously unselected package xfonts-utils. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.2259872Z Preparing to unpack .../6-xfonts-utils_1%3a7.7+6build3_amd64.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.2271457Z Unpacking xfonts-utils (1:7.7+6build3) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.2647096Z Selecting previously unselected package xfonts-cyrillic. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.2774424Z Preparing to unpack .../7-xfonts-cyrillic_1%3a1.0.5+nmu1_all.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.2785255Z Unpacking xfonts-cyrillic (1:1.0.5+nmu1) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.3136272Z Selecting previously unselected package xfonts-scalable. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.3263592Z Preparing to unpack .../8-xfonts-scalable_1%3a1.0.3-1.3_all.deb ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.3274686Z Unpacking xfonts-scalable (1:1.0.3-1.3) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.3697072Z Setting up fonts-wqy-zenhei (0.9.45-8) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.3850050Z Setting up fonts-freefont-ttf (20211204+svn4273-2) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.3879889Z Setting up fonts-tlwg-loma-otf (1:0.7.3-1) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.3907459Z Setting up xfonts-encodings (1:1.0.5-0ubuntu2) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.3946912Z Setting up fonts-ipafont-gothic (00303-21ubuntu1) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.4025761Z update-alternatives: using /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf to provide /usr/share/fonts/truetype/fonts-japanese-gothic.ttf (fonts-japanese-gothic.ttf) in auto mode +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.4045014Z Setting up fonts-unifont (1:15.1.01-1build1) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.4072520Z Setting up xfonts-utils (1:7.7+6build3) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.4128700Z Setting up xfonts-cyrillic (1:1.0.5+nmu1) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.4431268Z Setting up xfonts-scalable (1:1.0.3-1.3) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.4713527Z Processing triggers for man-db (2.12.0-4build2) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.4740977Z Not building database; man-db/auto-update is not 'true'. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:24.4757494Z Processing triggers for fontconfig (2.15.0-1.1ubuntu2) ... +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1647051Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1647752Z Running kernel seems to be up-to-date. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1648070Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1648270Z No services need to be restarted. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1648505Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1648704Z No containers need to be restarted. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1650006Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1650277Z No user sessions are running outdated binaries. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1650568Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.1650946Z No VM guests are running outdated hypervisor (qemu) binaries on this host. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:25.9503036Z Downloading Chrome for Testing 151.0.7922.34 (playwright chromium v1234) from https://cdn.playwright.dev/builds/cft/151.0.7922.34/linux64/chrome-linux64.zip +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:26.9300977Z | | 0% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.0723445Z |■■■■■■■■ | 10% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.1630466Z |■■■■■■■■■■■■■■■■ | 20% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.2392450Z |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.3237379Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.3906865Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.4695898Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.5445069Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.6180705Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.6868557Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:27.7688055Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 184.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:31.2934562Z Chrome for Testing 151.0.7922.34 (playwright chromium v1234) downloaded to /home/runner/.cache/ms-playwright/chromium-1234 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:31.2939193Z Downloading FFmpeg (playwright ffmpeg v1011) from https://cdn.playwright.dev/dbazure/download/playwright/builds/ffmpeg/1011/ffmpeg-linux.zip +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.2939092Z | | 0% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3117951Z |■■■■■■■■ | 10% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3198007Z |■■■■■■■■■■■■■■■■ | 20% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3253859Z |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3314949Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3367090Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3381635Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3398079Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3439660Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3457935Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.3494355Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 2.3 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.4163476Z FFmpeg (playwright ffmpeg v1011) downloaded to /home/runner/.cache/ms-playwright/ffmpeg-1011 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:32.4187967Z Downloading Chrome Headless Shell 151.0.7922.34 (playwright chromium-headless-shell v1234) from https://cdn.playwright.dev/builds/cft/151.0.7922.34/linux64/chrome-headless-shell-linux64.zip +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.4028572Z | | 0% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.5007661Z |■■■■■■■■ | 10% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.5767183Z |■■■■■■■■■■■■■■■■ | 20% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.6430351Z |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.7013877Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.7735114Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.8162927Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.8568302Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.9126531Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:33.9647299Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:34.0105902Z |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 114.7 MiB +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.3641225Z Chrome Headless Shell 151.0.7922.34 (playwright chromium-headless-shell v1234) downloaded to /home/runner/.cache/ms-playwright/chromium_headless_shell-1234 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.3982388Z ##[group]Run npm run build +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.3982686Z ^[[36;1mnpm run build^[[0m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.4026848Z shell: /usr/bin/bash -e {0} +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.4027109Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.5032709Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.5033201Z > @occumed/map@0.4.0 build +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.5033895Z > npm run prepare:assets && npm run check && vite build && npm run check:server +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.5034292Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.5994265Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.5994685Z > @occumed/map@0.4.0 prepare:assets +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.5995159Z > npm run prepare:sprites && npm run prepare:style +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.5995414Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.7043756Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.7044400Z > @occumed/map@0.4.0 prepare:sprites +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.7045240Z > node scripts/build-sprites.mjs +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:36.7045642Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.2993324Z Generated 1x and 2x Occu-Med sprites from 440 unique SVG files. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.4158612Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.4159458Z > @occumed/map@0.4.0 prepare:style +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.4164937Z > node scripts/build-runtime-style.mjs && node scripts/normalize-runtime-fonts.mjs && node scripts/normalize-runtime-filters.mjs && node scripts/normalize-boundary-filters.mjs && node scripts/force-runtime-filter-expressions.mjs && node scripts/apply-schema-parity.mjs && node scripts/apply-globe-parity.mjs && node scripts/apply-photo-reference.mjs && node scripts/restore-exported-cartography.mjs && node scripts/calibrate-reference-colors.mjs && node scripts/lock-exact-exported-swatches.mjs && node scripts/lock-reference-atmosphere.mjs && node scripts/use-custom-pmtiles-source.mjs +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.4169281Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.4707253Z Generated 146 runtime layers from 148 original layers; 4 incompatible layers documented. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.5142324Z Normalized active font stacks in 4 runtime layers and refined 1 label halos. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.5604240Z Normalized mixed legacy/expression filters in 0 runtime layers. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.6046055Z Translated Mapbox boundary filters in 5 runtime layers. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.6489600Z Forced expression-mode parsing for 129 runtime filters. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.6949113Z Applied open-schema parity to 6 land layers, 6 place-label layers, and 3 icon-label layers. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.7387946Z Applied refined Occu-Med globe rim, vivid low-zoom relief, and stable hillshade. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.7839271Z Applied live visual-QA pass 2 for globe framing, ocean depth, landcover, terrain, roads, boundaries, and labels. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.8457718Z Restored exported layout and paint for 144 layers and repaired 118 schema-sensitive filters. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.9055937Z Preserved 91 exported structure-specific colors and restored visible low-zoom landcover, water, terrain, roads, and boundaries. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:37.9540633Z Locked exact exported swatches, preserved vector detail, and faded pixel-based relief before regional zooms. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.0047862Z Locked the luminous white-blue reference atmosphere without adding surface fog. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.0555861Z Configured worldwide PMTiles manifest: __OCCUMED_PUBLIC_ORIGIN__/world-manifest.json +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.1655961Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.1656530Z > @occumed/map@0.4.0 check +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.1657252Z > npm run check:export && npm run check:runtime +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.1657666Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.2654178Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.2654813Z > @occumed/map@0.4.0 check:export +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.2655400Z > node scripts/check-export.mjs +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.2655641Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.3057780Z Original Occu-Med Terrain export is intact: 148 layers and 440 uploaded SVG files. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4119237Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4119793Z > @occumed/map@0.4.0 check:runtime +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4122635Z > node scripts/check-runtime.mjs && node scripts/validate-maplibre-style.mjs && node scripts/check-globe-parity.mjs && node scripts/check-cartography-parity.mjs && node scripts/check-viewer-quality.mjs && node scripts/check-photo-reference.mjs && node scripts/check-exact-exported-swatches.mjs && node scripts/check-render-clarity.mjs && node scripts/check-pmtiles-integration.mjs +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4124453Z +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4560505Z Occu-Med open basemap validation failed: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4563423Z - Rendered layers still request unavailable font stacks: Noto Sans Regular, Noto Sans Semibold +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4824361Z ##[error]Process completed with exit code 1. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4966872Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4968184Z ##[group]Run actions/upload-artifact@v4 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4968453Z with: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4969137Z name: occumed-final-fresno-world-render-57c62208e29d320f94be1feb438a547d33ff9c39 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4969724Z path: visual-validation/fresno-world-final +validate-fresno-world UNKNOWN STEP /tmp/fresno-world-server.log +validate-fresno-world UNKNOWN STEP +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4970127Z if-no-files-found: warn +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4970352Z retention-days: 30 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4970562Z compression-level: 6 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4970769Z overwrite: false +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4970983Z include-hidden-files: false +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.4971220Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6608586Z (node:3375) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6610342Z (Use `node --trace-deprecation ...` to show where the warning was created) +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6649496Z Multiple search paths detected. Calculating the least common ancestor of all paths +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6669667Z The least common ancestor is /. This will be the root directory of the artifact +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6690215Z ##[warning]No files were found with the provided path: visual-validation/fresno-world-final +validate-fresno-world UNKNOWN STEP /tmp/fresno-world-server.log. No artifacts will be uploaded. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6788380Z ##[group]Run if [ -f /tmp/fresno-world-server.pid ]; then +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6789126Z ^[[36;1mif [ -f /tmp/fresno-world-server.pid ]; then^[[0m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6789555Z ^[[36;1m kill "$(cat /tmp/fresno-world-server.pid)" 2>/dev/null || true^[[0m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6789915Z ^[[36;1mfi^[[0m +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6833309Z shell: /usr/bin/bash -e {0} +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.6833565Z ##[endgroup] +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.7073650Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.7074904Z Post job cleanup. +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.7936322Z [command]/usr/bin/git version +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.7981597Z git version 2.54.0 +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8026058Z Temporarily overriding HOME='/home/runner/work/_temp/0ccd47df-605a-455a-95a0-c9ef35d3bc0e' before making global git config changes +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8027802Z Adding repository directory to the temporary git global config as a safe directory +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8032806Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8073061Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8110455Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8367301Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8396730Z http.https://github.com/.extraheader +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8409478Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8445893Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8739804Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.8779114Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.9198033Z Cleaning up orphan processes +validate-fresno-world UNKNOWN STEP 2026-07-27T12:32:38.9429180Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/diagnostics/fresno-world-render/latest-jobs.json b/diagnostics/fresno-world-render/latest-jobs.json new file mode 100644 index 00000000..e952082c --- /dev/null +++ b/diagnostics/fresno-world-render/latest-jobs.json @@ -0,0 +1 @@ +{"total_count":1,"jobs":[{"id":89977656613,"run_id":30266292057,"workflow_name":"Validate Fresno Against Completed Worldwide PMTiles","head_branch":"feat/custom-planetiler-pmtiles-basemap","run_url":"https://api.github.com/repos/Occumed79/Map/actions/runs/30266292057","run_attempt":1,"node_id":"CR_kwDOTjbCms8AAAAU8xYVJQ","head_sha":"57c62208e29d320f94be1feb438a547d33ff9c39","url":"https://api.github.com/repos/Occumed79/Map/actions/jobs/89977656613","html_url":"https://github.com/Occumed79/Map/actions/runs/30266292057/job/89977656613","status":"completed","conclusion":"failure","created_at":"2026-07-27T12:31:59Z","started_at":"2026-07-27T12:32:02Z","completed_at":"2026-07-27T12:32:40Z","name":"validate-fresno-world","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2026-07-27T12:32:02Z","completed_at":"2026-07-27T12:32:03Z"},{"name":"Run actions/checkout@v4","status":"completed","conclusion":"success","number":2,"started_at":"2026-07-27T12:32:03Z","completed_at":"2026-07-27T12:32:04Z"},{"name":"Run actions/setup-node@v4","status":"completed","conclusion":"success","number":3,"started_at":"2026-07-27T12:32:04Z","completed_at":"2026-07-27T12:32:05Z"},{"name":"Install application and browser dependencies","status":"completed","conclusion":"success","number":4,"started_at":"2026-07-27T12:32:05Z","completed_at":"2026-07-27T12:32:36Z"},{"name":"Build production application with worldwide PMTiles routing","status":"completed","conclusion":"failure","number":5,"started_at":"2026-07-27T12:32:36Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Start production Node server","status":"completed","conclusion":"skipped","number":6,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Confirm completed manifest is served through the runtime","status":"completed","conclusion":"skipped","number":7,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Render Fresno and Sierra views from the actual worldwide release","status":"completed","conclusion":"skipped","number":8,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Commit final validation result","status":"completed","conclusion":"skipped","number":9,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Preserve browser evidence and server log","status":"completed","conclusion":"success","number":10,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Stop production Node server","status":"completed","conclusion":"success","number":11,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Post Run actions/setup-node@v4","status":"completed","conclusion":"skipped","number":21,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Post Run actions/checkout@v4","status":"completed","conclusion":"success","number":22,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"},{"name":"Complete job","status":"completed","conclusion":"success","number":23,"started_at":"2026-07-27T12:32:38Z","completed_at":"2026-07-27T12:32:38Z"}],"check_run_url":"https://api.github.com/repos/Occumed79/Map/check-runs/89977656613","labels":["ubuntu-latest"],"runner_id":1000010607,"runner_name":"GitHub Actions 1000010607","runner_group_id":0,"runner_group_name":"GitHub Actions"}]} \ No newline at end of file diff --git a/diagnostics/fresno-world-render/latest-run.json b/diagnostics/fresno-world-render/latest-run.json new file mode 100644 index 00000000..75a2901b --- /dev/null +++ b/diagnostics/fresno-world-render/latest-run.json @@ -0,0 +1 @@ +{"id":30266292057,"name":"Validate Fresno Against Completed Worldwide PMTiles","node_id":"WFR_kwLOTjbCms8AAAAHDAL3WQ","head_branch":"feat/custom-planetiler-pmtiles-basemap","head_sha":"57c62208e29d320f94be1feb438a547d33ff9c39","path":".github/workflows/revalidate-fresno-render.yml","display_title":"Trigger final Fresno worldwide render validation","run_number":150,"event":"push","status":"completed","conclusion":"failure","workflow_id":320725906,"check_suite_id":82014504524,"check_suite_node_id":"CS_kwDOTjbCms8AAAATGHIGTA","url":"https://api.github.com/repos/Occumed79/Map/actions/runs/30266292057","html_url":"https://github.com/Occumed79/Map/actions/runs/30266292057","pull_requests":[{"url":"https://api.github.com/repos/Occumed79/Map/pulls/23","id":4135491049,"number":23,"head":{"ref":"feat/custom-planetiler-pmtiles-basemap","sha":"27a7cb3027d782d845032c918420629149d9e5f2","repo":{"id":1312211610,"url":"https://api.github.com/repos/Occumed79/Map","name":"Map"}},"base":{"ref":"main","sha":"4ea0f1c750c2f86e972e52cc91aa19b31af18b8e","repo":{"id":1312211610,"url":"https://api.github.com/repos/Occumed79/Map","name":"Map"}}}],"created_at":"2026-07-27T12:31:58Z","updated_at":"2026-07-27T12:32:41Z","actor":{"login":"Occumed79","id":271060261,"node_id":"U_kgDOECgNJQ","avatar_url":"https://avatars.githubusercontent.com/u/271060261?v=4","gravatar_id":"","url":"https://api.github.com/users/Occumed79","html_url":"https://github.com/Occumed79","followers_url":"https://api.github.com/users/Occumed79/followers","following_url":"https://api.github.com/users/Occumed79/following{/other_user}","gists_url":"https://api.github.com/users/Occumed79/gists{/gist_id}","starred_url":"https://api.github.com/users/Occumed79/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Occumed79/subscriptions","organizations_url":"https://api.github.com/users/Occumed79/orgs","repos_url":"https://api.github.com/users/Occumed79/repos","events_url":"https://api.github.com/users/Occumed79/events{/privacy}","received_events_url":"https://api.github.com/users/Occumed79/received_events","type":"User","user_view_type":"public","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2026-07-27T12:31:58Z","triggering_actor":{"login":"Occumed79","id":271060261,"node_id":"U_kgDOECgNJQ","avatar_url":"https://avatars.githubusercontent.com/u/271060261?v=4","gravatar_id":"","url":"https://api.github.com/users/Occumed79","html_url":"https://github.com/Occumed79","followers_url":"https://api.github.com/users/Occumed79/followers","following_url":"https://api.github.com/users/Occumed79/following{/other_user}","gists_url":"https://api.github.com/users/Occumed79/gists{/gist_id}","starred_url":"https://api.github.com/users/Occumed79/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Occumed79/subscriptions","organizations_url":"https://api.github.com/users/Occumed79/orgs","repos_url":"https://api.github.com/users/Occumed79/repos","events_url":"https://api.github.com/users/Occumed79/events{/privacy}","received_events_url":"https://api.github.com/users/Occumed79/received_events","type":"User","user_view_type":"public","site_admin":false},"jobs_url":"https://api.github.com/repos/Occumed79/Map/actions/runs/30266292057/jobs","logs_url":"https://api.github.com/repos/Occumed79/Map/actions/runs/30266292057/logs","check_suite_url":"https://api.github.com/repos/Occumed79/Map/check-suites/82014504524","artifacts_url":"https://api.github.com/repos/Occumed79/Map/actions/runs/30266292057/artifacts","cancel_url":"https://api.github.com/repos/Occumed79/Map/actions/runs/30266292057/cancel","rerun_url":"https://api.github.com/repos/Occumed79/Map/actions/runs/30266292057/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/Occumed79/Map/actions/workflows/320725906","head_commit":{"id":"57c62208e29d320f94be1feb438a547d33ff9c39","tree_id":"0e0e4e067f2055cde84846d6621e95f8fab3af93","message":"Trigger final Fresno worldwide render validation","timestamp":"2026-07-27T12:31:56Z","author":{"name":"Occumed79","email":"Alex.Ayvazian@logan.edu"},"committer":{"name":"Occumed79","email":"Alex.Ayvazian@logan.edu"}},"repository":{"id":1312211610,"node_id":"R_kgDOTjbCmg","name":"Map","full_name":"Occumed79/Map","private":false,"owner":{"login":"Occumed79","id":271060261,"node_id":"U_kgDOECgNJQ","avatar_url":"https://avatars.githubusercontent.com/u/271060261?v=4","gravatar_id":"","url":"https://api.github.com/users/Occumed79","html_url":"https://github.com/Occumed79","followers_url":"https://api.github.com/users/Occumed79/followers","following_url":"https://api.github.com/users/Occumed79/following{/other_user}","gists_url":"https://api.github.com/users/Occumed79/gists{/gist_id}","starred_url":"https://api.github.com/users/Occumed79/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Occumed79/subscriptions","organizations_url":"https://api.github.com/users/Occumed79/orgs","repos_url":"https://api.github.com/users/Occumed79/repos","events_url":"https://api.github.com/users/Occumed79/events{/privacy}","received_events_url":"https://api.github.com/users/Occumed79/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Occumed79/Map","description":"Map Style","fork":false,"url":"https://api.github.com/repos/Occumed79/Map","forks_url":"https://api.github.com/repos/Occumed79/Map/forks","keys_url":"https://api.github.com/repos/Occumed79/Map/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Occumed79/Map/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Occumed79/Map/teams","hooks_url":"https://api.github.com/repos/Occumed79/Map/hooks","issue_events_url":"https://api.github.com/repos/Occumed79/Map/issues/events{/number}","events_url":"https://api.github.com/repos/Occumed79/Map/events","assignees_url":"https://api.github.com/repos/Occumed79/Map/assignees{/user}","branches_url":"https://api.github.com/repos/Occumed79/Map/branches{/branch}","tags_url":"https://api.github.com/repos/Occumed79/Map/tags","blobs_url":"https://api.github.com/repos/Occumed79/Map/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Occumed79/Map/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Occumed79/Map/git/refs{/sha}","trees_url":"https://api.github.com/repos/Occumed79/Map/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Occumed79/Map/statuses/{sha}","languages_url":"https://api.github.com/repos/Occumed79/Map/languages","stargazers_url":"https://api.github.com/repos/Occumed79/Map/stargazers","contributors_url":"https://api.github.com/repos/Occumed79/Map/contributors","subscribers_url":"https://api.github.com/repos/Occumed79/Map/subscribers","subscription_url":"https://api.github.com/repos/Occumed79/Map/subscription","commits_url":"https://api.github.com/repos/Occumed79/Map/commits{/sha}","git_commits_url":"https://api.github.com/repos/Occumed79/Map/git/commits{/sha}","comments_url":"https://api.github.com/repos/Occumed79/Map/comments{/number}","issue_comment_url":"https://api.github.com/repos/Occumed79/Map/issues/comments{/number}","contents_url":"https://api.github.com/repos/Occumed79/Map/contents/{+path}","compare_url":"https://api.github.com/repos/Occumed79/Map/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Occumed79/Map/merges","archive_url":"https://api.github.com/repos/Occumed79/Map/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Occumed79/Map/downloads","issues_url":"https://api.github.com/repos/Occumed79/Map/issues{/number}","pulls_url":"https://api.github.com/repos/Occumed79/Map/pulls{/number}","milestones_url":"https://api.github.com/repos/Occumed79/Map/milestones{/number}","notifications_url":"https://api.github.com/repos/Occumed79/Map/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Occumed79/Map/labels{/name}","releases_url":"https://api.github.com/repos/Occumed79/Map/releases{/id}","deployments_url":"https://api.github.com/repos/Occumed79/Map/deployments"},"head_repository":{"id":1312211610,"node_id":"R_kgDOTjbCmg","name":"Map","full_name":"Occumed79/Map","private":false,"owner":{"login":"Occumed79","id":271060261,"node_id":"U_kgDOECgNJQ","avatar_url":"https://avatars.githubusercontent.com/u/271060261?v=4","gravatar_id":"","url":"https://api.github.com/users/Occumed79","html_url":"https://github.com/Occumed79","followers_url":"https://api.github.com/users/Occumed79/followers","following_url":"https://api.github.com/users/Occumed79/following{/other_user}","gists_url":"https://api.github.com/users/Occumed79/gists{/gist_id}","starred_url":"https://api.github.com/users/Occumed79/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Occumed79/subscriptions","organizations_url":"https://api.github.com/users/Occumed79/orgs","repos_url":"https://api.github.com/users/Occumed79/repos","events_url":"https://api.github.com/users/Occumed79/events{/privacy}","received_events_url":"https://api.github.com/users/Occumed79/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Occumed79/Map","description":"Map Style","fork":false,"url":"https://api.github.com/repos/Occumed79/Map","forks_url":"https://api.github.com/repos/Occumed79/Map/forks","keys_url":"https://api.github.com/repos/Occumed79/Map/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Occumed79/Map/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Occumed79/Map/teams","hooks_url":"https://api.github.com/repos/Occumed79/Map/hooks","issue_events_url":"https://api.github.com/repos/Occumed79/Map/issues/events{/number}","events_url":"https://api.github.com/repos/Occumed79/Map/events","assignees_url":"https://api.github.com/repos/Occumed79/Map/assignees{/user}","branches_url":"https://api.github.com/repos/Occumed79/Map/branches{/branch}","tags_url":"https://api.github.com/repos/Occumed79/Map/tags","blobs_url":"https://api.github.com/repos/Occumed79/Map/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Occumed79/Map/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Occumed79/Map/git/refs{/sha}","trees_url":"https://api.github.com/repos/Occumed79/Map/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Occumed79/Map/statuses/{sha}","languages_url":"https://api.github.com/repos/Occumed79/Map/languages","stargazers_url":"https://api.github.com/repos/Occumed79/Map/stargazers","contributors_url":"https://api.github.com/repos/Occumed79/Map/contributors","subscribers_url":"https://api.github.com/repos/Occumed79/Map/subscribers","subscription_url":"https://api.github.com/repos/Occumed79/Map/subscription","commits_url":"https://api.github.com/repos/Occumed79/Map/commits{/sha}","git_commits_url":"https://api.github.com/repos/Occumed79/Map/git/commits{/sha}","comments_url":"https://api.github.com/repos/Occumed79/Map/comments{/number}","issue_comment_url":"https://api.github.com/repos/Occumed79/Map/issues/comments{/number}","contents_url":"https://api.github.com/repos/Occumed79/Map/contents/{+path}","compare_url":"https://api.github.com/repos/Occumed79/Map/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Occumed79/Map/merges","archive_url":"https://api.github.com/repos/Occumed79/Map/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Occumed79/Map/downloads","issues_url":"https://api.github.com/repos/Occumed79/Map/issues{/number}","pulls_url":"https://api.github.com/repos/Occumed79/Map/pulls{/number}","milestones_url":"https://api.github.com/repos/Occumed79/Map/milestones{/number}","notifications_url":"https://api.github.com/repos/Occumed79/Map/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Occumed79/Map/labels{/name}","releases_url":"https://api.github.com/repos/Occumed79/Map/releases{/id}","deployments_url":"https://api.github.com/repos/Occumed79/Map/deployments"}} \ No newline at end of file diff --git a/diagnostics/fresno-world-render/log-capture.trigger b/diagnostics/fresno-world-render/log-capture.trigger new file mode 100644 index 00000000..c143d60d --- /dev/null +++ b/diagnostics/fresno-world-render/log-capture.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-27T14:23:30Z +purpose=capture_latest_fresno_world_validation_failure diff --git a/diagnostics/world-audit-repair-state.json b/diagnostics/world-audit-repair-state.json new file mode 100644 index 00000000..96ab0a83 --- /dev/null +++ b/diagnostics/world-audit-repair-state.json @@ -0,0 +1,19 @@ +{ + "capturedAt": "2026-07-26T21:36:25.553Z", + "auditV2": { + "id": "30221381694", + "url": "https://github.com/Occumed79/Map/actions/runs/30221381694", + "status": "completed", + "conclusion": "failure", + "createdAt": "2026-07-26T21:35:07Z", + "updatedAt": "2026-07-26T21:36:18Z" + }, + "missingRepair": { + "id": "30221065995", + "url": "https://github.com/Occumed79/Map/actions/runs/30221065995", + "status": "completed", + "conclusion": "failure", + "createdAt": "2026-07-26T21:26:08Z", + "updatedAt": "2026-07-26T21:27:25Z" + } +} diff --git a/diagnostics/world-build-status.json b/diagnostics/world-build-status.json new file mode 100644 index 00000000..326ea7d9 --- /dev/null +++ b/diagnostics/world-build-status.json @@ -0,0 +1,131 @@ +{ + "version": 1, + "phase": "partial", + "updatedAt": "2026-07-27T06:21:40.869Z", + "repository": "Occumed79/Map", + "branch": "feat/custom-planetiler-pmtiles-basemap", + "runId": "30211467213", + "runAttempt": 1, + "runUrl": "https://github.com/Occumed79/Map/actions/runs/30211467213", + "headSha": "2519a01cec375d923278ebb51c80d38fe9031b15", + "releaseTag": "occumed-world-v1", + "bucketCount": 6, + "plannedRegionCount": 523, + "availableRegionCount": 420, + "missingRegionCount": 103, + "missingRegions": [ + "alps", + "argentina", + "austria", + "belgium", + "britain-and-ireland", + "central-fed-district", + "chubu", + "congo-democratic-republic", + "dach", + "denmark", + "far-eastern-fed-district", + "finland", + "great-britain", + "greece", + "ireland-and-northern-ireland", + "java", + "kanto", + "kitikmeot", + "kivalliq", + "libya", + "mali", + "mexico", + "navarra", + "nepal", + "new-zealand", + "niedersachsen", + "nigeria", + "noord-holland", + "norcal", + "nord-est", + "nord-norge", + "nord-ovest", + "nordeste", + "north-admreg", + "northwest-territories", + "northwestern-fed-district", + "ontario", + "ostlandet", + "philippines", + "portugal", + "qikiqtaaluk", + "quebec", + "rhone-alpes", + "sea", + "siberian-fed-district", + "socal", + "south-africa", + "south-africa-and-lesotho", + "southern-zone", + "sud", + "sudeste", + "sul", + "sweden", + "switzerland", + "tanzania", + "turkey", + "ukraine", + "ural-fed-district", + "us", + "us-midwest", + "us-northeast", + "us-pacific", + "us-south", + "us-west", + "us/florida", + "us/missouri", + "us/nebraska", + "us/new-hampshire", + "us/new-mexico", + "us/new-york", + "us/north-carolina", + "us/oregon", + "us/pennsylvania", + "us/puerto-rico", + "us/south-carolina", + "us/south-dakota", + "us/tennessee", + "us/texas", + "us/us-virgin-islands", + "us/vermont", + "us/virginia", + "us/washington", + "us/west-virginia", + "us/wisconsin", + "utrecht", + "uzbekistan", + "valencia", + "vanuatu", + "venezuela", + "victoria", + "vietnam", + "volga-fed-district", + "vysocina", + "wales", + "warwickshire", + "west-sussex", + "west-yorkshire", + "western-zone", + "wielkopolskie", + "worcestershire", + "xinjiang", + "zambia", + "zeeland" + ], + "manifestGeneratedAt": "2026-07-27T06:21:39.067Z", + "complete": false, + "bucketResults": { + "0": "failure", + "1": "failure", + "2": "failure", + "3": "failure", + "4": "failure", + "5": "failure" + } +} diff --git a/diagnostics/world-failure-snapshot.trigger b/diagnostics/world-failure-snapshot.trigger new file mode 100644 index 00000000..edbaf65f --- /dev/null +++ b/diagnostics/world-failure-snapshot.trigger @@ -0,0 +1,3 @@ +world_run_id=30214445296 +requested_at=2026-07-26T21:17:00Z +phase=classify-all-414-failed-shards diff --git a/diagnostics/world-first-pass-failures/89818513156.log b/diagnostics/world-first-pass-failures/89818513156.log new file mode 100644 index 00000000..c6d31581 --- /dev/null +++ b/diagnostics/world-first-pass-failures/89818513156.log @@ -0,0 +1,260 @@ +2026-07-26T17:21:29.4058239Z last tile: 12/2183/1428 (z12 85%) https://onthegomap.github.io/planetiler-demo/#12.5/47.72454/11.90918 +2026-07-26T17:21:39.4156392Z 0:19:22 INF [archive] - features: [ 73M 42% 143k/s ] 12G tiles: [ 1.3M 76/s ] 2.1G +2026-07-26T17:21:39.4157491Z cpus: 4 gc: 2% heap: 2.9G/5.3G direct: 971k postGC: 1.1G +2026-07-26T17:21:39.4158255Z read( 2%) -> (266/273) -> encode(97% 97% 97% 95%) -> (269/270) -> write( 0%) +2026-07-26T17:21:39.4159206Z last tile: 12/2205/1459 (z12 85%) https://onthegomap.github.io/planetiler-demo/#12.5/45.8594/13.84277 +2026-07-26T17:21:47.7888297Z 0:19:30 WAR [archive:encode] - {x=2109 y=1500 z=12} 1064kb uncompressed +2026-07-26T17:21:49.4272113Z 0:19:32 INF [archive] - features: [ 75M 44% 239k/s ] 12G tiles: [ 1.3M 155/s ] 2.1G +2026-07-26T17:21:49.4273390Z cpus: 4 gc: 3% heap: 2.2G/5.3G direct: 971k postGC: 994M +2026-07-26T17:21:49.4274121Z read( 4%) -> (264/273) -> encode(96% 95% 94% 92%) -> (269/270) -> write( 0%) +2026-07-26T17:21:49.4275076Z last tile: 12/2105/1485 (z12 85%) https://onthegomap.github.io/planetiler-demo/#12.5/44.24519/5.05371 +2026-07-26T17:21:53.8138281Z 0:19:36 WAR [archive:encode] - {x=2113 y=1470 z=12} 1197kb uncompressed +2026-07-26T17:21:59.4389052Z 0:19:42 INF [archive] - features: [ 77M 45% 218k/s ] 12G tiles: [ 1.3M 92/s ] 2.2G +2026-07-26T17:21:59.4390116Z cpus: 4 gc: 3% heap: 1.8G/5.3G direct: 971k postGC: 1G +2026-07-26T17:21:59.4390788Z read( 3%) -> (257/273) -> encode(96% 96% 97% 94%) -> (269/270) -> write( 0%) +2026-07-26T17:21:59.4391656Z last tile: 12/2133/1447 (z12 85%) https://onthegomap.github.io/planetiler-demo/#12.5/46.58906/7.51465 +2026-07-26T17:22:09.4466340Z 0:19:52 INF [archive] - features: [ 79M 46% 200k/s ] 12G tiles: [ 1.3M 98/s ] 2.2G +2026-07-26T17:22:09.4467407Z cpus: 4 gc: 3% heap: 2.3G/5.3G direct: 971k postGC: 1.3G +2026-07-26T17:22:09.4468154Z read( 3%) -> (266/273) -> encode(94% 97% 96% 96%) -> (269/270) -> write( 0%) +2026-07-26T17:22:09.4469286Z last tile: 12/2169/1436 (z12 85%) https://onthegomap.github.io/planetiler-demo/#12.5/47.2494/10.67871 +2026-07-26T17:22:15.1232977Z 0:19:57 INF [archive:write] - Finished z12 in 1m4s cpu:4m15s gc:2s avg:4, now starting z13 +2026-07-26T17:22:19.4552519Z 0:20:02 INF [archive] - features: [ 82M 47% 211k/s ] 12G tiles: [ 1.3M 110/s ] 2.3G +2026-07-26T17:22:19.4554108Z cpus: 4 gc: 3% heap: 2.1G/5.3G direct: 971k postGC: 795M +2026-07-26T17:22:19.4555081Z read( 3%) -> (266/273) -> encode(96% 95% 96% 93%) -> (269/270) -> write( 0%) +2026-07-26T17:22:19.4556154Z last tile: 13/4430/2887 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/46.8151/14.69971 +2026-07-26T17:22:26.7009465Z 0:20:09 WAR [archive:encode] - {x=4468 y=2840 z=13} 1195kb uncompressed +2026-07-26T17:22:29.4667677Z 0:20:12 INF [archive] - features: [ 85M 49% 350k/s ] 12G tiles: [ 1.3M 209/s ] 2.3G +2026-07-26T17:22:29.4669482Z cpus: 3.9 gc: 4% heap: 2.4G/5.3G direct: 971k postGC: 1.2G +2026-07-26T17:22:29.4670413Z read( 6%) -> (266/273) -> encode(95% 95% 94% 89%) -> (269/270) -> write( 1%) +2026-07-26T17:22:29.4671567Z last tile: 13/4431/2846 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/48.03402/14.74365 +2026-07-26T17:22:39.4752560Z 0:20:22 INF [archive] - features: [ 88M 51% 296k/s ] 12G tiles: [ 1.3M 277/s ] 2.4G +2026-07-26T17:22:39.4754118Z cpus: 4 gc: 3% heap: 1.1G/5.3G direct: 971k postGC: 1G +2026-07-26T17:22:39.4755054Z read( 5%) -> (264/273) -> encode(91% 96% 95% 95%) -> (269/270) -> write( 1%) +2026-07-26T17:22:39.4756350Z last tile: 13/4369/2856 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/47.73932/12.01904 +2026-07-26T17:22:49.4938117Z 0:20:32 INF [archive] - features: [ 90M 52% 208k/s ] 12G tiles: [ 1.3M 266/s ] 2.5G +2026-07-26T17:22:49.4939467Z cpus: 4 gc: 2% heap: 2.9G/5.3G direct: 971k postGC: 1.2G +2026-07-26T17:22:49.4940397Z read( 3%) -> (263/273) -> encode(95% 97% 96% 97%) -> (266/270) -> write( 1%) +2026-07-26T17:22:49.4941516Z last tile: 13/4406/2915 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/45.96642/13.64502 +2026-07-26T17:22:59.5055269Z 0:20:42 INF [archive] - features: [ 93M 54% 293k/s ] 12G tiles: [ 1.3M 303/s ] 2.5G +2026-07-26T17:22:59.5056546Z cpus: 4 gc: 4% heap: 1.5G/5.3G direct: 971k postGC: 961M +2026-07-26T17:22:59.5057608Z read( 5%) -> (265/273) -> encode(92% 95% 93% 95%) -> (269/270) -> write( 1%) +2026-07-26T17:22:59.5058934Z last tile: 13/4236/2964 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/44.44947/6.17432 +2026-07-26T17:23:02.1142952Z 0:20:44 WAR [archive:encode] - {x=4218 y=3000 z=13} 1179kb uncompressed +2026-07-26T17:23:09.5207632Z 0:20:52 INF [archive] - features: [ 98M 57% 455k/s ] 12G tiles: [ 1.3M 363/s ] 2.6G +2026-07-26T17:23:09.5208951Z cpus: 4 gc: 4% heap: 2.3G/5.3G direct: 971k postGC: 835M +2026-07-26T17:23:09.5210026Z read( 8%) -> (266/273) -> encode(92% 93% 93% 92%) -> (269/270) -> write( 1%) +2026-07-26T17:23:09.5211094Z last tile: 13/4227/2925 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/45.66013/5.77881 +2026-07-26T17:23:19.5388292Z 0:21:02 INF [archive] - features: [ 101M 58% 292k/s ] 12G tiles: [ 1.3M 286/s ] 2.7G +2026-07-26T17:23:19.5389577Z cpus: 4 gc: 3% heap: 2.2G/5.3G direct: 971k postGC: 1.2G +2026-07-26T17:23:19.5390940Z read( 5%) -> (265/273) -> encode(96% 95% 93% 96%) -> (269/270) -> write( 1%) +2026-07-26T17:23:19.5392340Z last tile: 13/4303/2889 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/46.75491/9.11865 +2026-07-26T17:23:29.5522553Z 0:21:12 INF [archive] - features: [ 104M 60% 346k/s ] 12G tiles: [ 1.3M 269/s ] 2.8G +2026-07-26T17:23:29.5524071Z cpus: 4 gc: 3% heap: 2.2G/5.3G direct: 971k postGC: 1G +2026-07-26T17:23:29.5524982Z read( 6%) -> (263/273) -> encode(95% 93% 94% 91%) -> (266/270) -> write( 1%) +2026-07-26T17:23:29.5526076Z last tile: 13/4320/2882 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/46.96526/9.86572 +2026-07-26T17:23:37.8456100Z 0:21:20 INF [archive:write] - Finished z13 in 1m23s cpu:5m29s gc:3s avg:4, now starting z14 +2026-07-26T17:23:39.5709516Z 0:21:22 INF [archive] - features: [ 107M 62% 300k/s ] 12G tiles: [ 1.3M 288/s ] 2.9G +2026-07-26T17:23:39.5710973Z cpus: 4 gc: 3% heap: 1.5G/5.3G direct: 971k postGC: 789M +2026-07-26T17:23:39.5711920Z read( 5%) -> (263/273) -> encode(95% 92% 95% 94%) -> (267/270) -> write( 1%) +2026-07-26T17:23:39.5713287Z last tile: 14/8861/5818 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/46.157/14.71069 +2026-07-26T17:23:49.5837206Z 0:21:32 INF [archive] - features: [ 110M 64% 329k/s ] 12G tiles: [ 1.3M 786/s ] 2.9G +2026-07-26T17:23:49.5838558Z cpus: 4 gc: 3% heap: 1.6G/5.3G direct: 971k postGC: 1.1G +2026-07-26T17:23:49.5839661Z read( 6%) -> (265/273) -> encode(91% 96% 96% 96%) -> (269/270) -> write( 1%) +2026-07-26T17:23:49.5840746Z last tile: 14/8932/5685 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/48.1441/16.27075 +2026-07-26T17:23:59.5954754Z 0:21:42 INF [archive] - features: [ 114M 66% 338k/s ] 12G tiles: [ 1.3M 935/s ] 3G +2026-07-26T17:23:59.5956097Z cpus: 4 gc: 4% heap: 1G/5.3G direct: 971k postGC: 1G +2026-07-26T17:23:59.5957069Z read( 6%) -> (266/273) -> encode(94% 91% 94% 91%) -> (269/270) -> write( 1%) +2026-07-26T17:23:59.5958162Z last tile: 14/8792/5706 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/47.83528/13.19458 +2026-07-26T17:24:09.6042200Z 0:21:52 INF [archive] - features: [ 117M 68% 294k/s ] 12G tiles: [ 1.3M 1.1k/s ] 3.1G +2026-07-26T17:24:09.6043778Z cpus: 3.9 gc: 3% heap: 1.2G/5.3G direct: 971k postGC: 852M +2026-07-26T17:24:09.6044675Z read( 5%) -> (263/273) -> encode(91% 93% 95% 95%) -> (269/270) -> write( 1%) +2026-07-26T17:24:09.6045731Z last tile: 14/8810/5774 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/46.82262/13.59009 +2026-07-26T17:24:19.6169820Z 0:22:02 INF [archive] - features: [ 120M 69% 282k/s ] 12G tiles: [ 1.3M 738/s ] 3.2G +2026-07-26T17:24:19.6171182Z cpus: 4 gc: 3% heap: 1.9G/5.3G direct: 971k postGC: 1.2G +2026-07-26T17:24:19.6172159Z read( 5%) -> (265/273) -> encode(96% 93% 95% 96%) -> (269/270) -> write( 1%) +2026-07-26T17:24:19.6173450Z last tile: 14/8555/5954 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/44.04812/7.98706 +2026-07-26T17:24:29.6257121Z 0:22:12 INF [archive] - features: [ 124M 72% 495k/s ] 12G tiles: [ 1.3M 1.3k/s ] 3.3G +2026-07-26T17:24:29.6258333Z cpus: 4 gc: 4% heap: 2.7G/5.3G direct: 971k postGC: 1.2G +2026-07-26T17:24:29.6259277Z read( 8%) -> (265/273) -> encode(95% 92% 93% 89%) -> (269/270) -> write( 2%) +2026-07-26T17:24:29.6260430Z last tile: 14/8423/5961 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/43.93746/5.08667 +2026-07-26T17:24:39.6450020Z 0:22:22 INF [archive] - features: [ 128M 75% 398k/s ] 12G tiles: [ 1.3M 909/s ] 3.4G +2026-07-26T17:24:39.6451517Z cpus: 4 gc: 4% heap: 2.5G/5.3G direct: 971k postGC: 1.1G +2026-07-26T17:24:39.6453219Z read( 7%) -> (261/273) -> encode(94% 88% 94% 94%) -> (269/270) -> write( 1%) +2026-07-26T17:24:39.6455304Z last tile: 14/8512/5824 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/46.06561/7.04224 +2026-07-26T17:24:49.6582069Z 0:22:32 INF [archive] - features: [ 132M 77% 336k/s ] 12G tiles: [ 1.4M 1.2k/s ] 3.5G +2026-07-26T17:24:49.6583239Z cpus: 4 gc: 3% heap: 1.4G/5.3G direct: 971k postGC: 1G +2026-07-26T17:24:49.6583912Z read( 6%) -> (264/273) -> encode(93% 94% 92% 95%) -> (269/270) -> write( 1%) +2026-07-26T17:24:49.6584796Z last tile: 14/8592/5841 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/45.80583/8.80005 +2026-07-26T17:24:59.6702117Z 0:22:42 INF [archive] - features: [ 135M 78% 337k/s ] 12G tiles: [ 1.4M 981/s ] 3.6G +2026-07-26T17:24:59.6703734Z cpus: 4 gc: 4% heap: 1G/5.3G direct: 971k postGC: 1G +2026-07-26T17:24:59.6704698Z read( 6%) -> (266/273) -> encode(93% 92% 95% 91%) -> (269/270) -> write( 1%) +2026-07-26T17:24:59.6706054Z last tile: 14/8689/5701 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/47.90898/10.9314 +2026-07-26T17:25:06.2575026Z 0:22:48 INF [archive:write] - Finished z14 in 1m28s cpu:5m51s gc:3s avg:4, now starting z15 +2026-07-26T17:25:09.6848575Z 0:22:52 INF [archive] - features: [ 138M 80% 304k/s ] 12G tiles: [ 1.4M 979/s ] 3.7G +2026-07-26T17:25:09.6849938Z cpus: 3.9 gc: 3% heap: 1.5G/5.3G direct: 971k postGC: 944M +2026-07-26T17:25:09.6851014Z read( 6%) -> (261/273) -> encode(94% 92% 93% 92%) -> (269/270) -> write( 1%) +2026-07-26T17:25:09.6852115Z last tile: 15/17694/11615 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/46.32038/14.39758 +2026-07-26T17:25:19.6978062Z 0:23:02 INF [archive] - features: [ 142M 83% 400k/s ] 12G tiles: [ 1.4M 3k/s ] 3.8G +2026-07-26T17:25:19.6979346Z cpus: 4 gc: 4% heap: 1.4G/5.3G direct: 971k postGC: 1G +2026-07-26T17:25:19.6980395Z read( 8%) -> (264/273) -> encode(90% 93% 93% 90%) -> (269/270) -> write( 2%) +2026-07-26T17:25:19.6981561Z last tile: 15/17858/11344 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/48.33799/16.19934 +2026-07-26T17:25:29.7107668Z 0:23:12 INF [archive] - features: [ 146M 84% 323k/s ] 12G tiles: [ 1.4M 3.7k/s ] 4G +2026-07-26T17:25:29.7109079Z cpus: 4 gc: 3% heap: 1.5G/5.3G direct: 971k postGC: 1G +2026-07-26T17:25:29.7109987Z read( 6%) -> (265/273) -> encode(91% 91% 93% 92%) -> (269/270) -> write( 2%) +2026-07-26T17:25:29.7111160Z last tile: 15/17621/11413 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/47.8316/13.59558 +2026-07-26T17:25:39.7294012Z 0:23:22 INF [archive] - features: [ 149M 86% 319k/s ] 12G tiles: [ 1.5M 4.3k/s ] 4.1G +2026-07-26T17:25:39.7295796Z cpus: 3.9 gc: 3% heap: 1.1G/5.3G direct: 971k postGC: 785M +2026-07-26T17:25:39.7297073Z read( 6%) -> (262/273) -> encode(93% 94% 91% 92%) -> (266/270) -> write( 2%) +2026-07-26T17:25:39.7298354Z last tile: 15/17636/11551 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/46.80382/13.76038 +2026-07-26T17:25:49.7393003Z 0:23:32 INF [archive] - features: [ 151M 88% 265k/s ] 12G tiles: [ 1.5M 2.2k/s ] 4.2G +2026-07-26T17:25:49.7394114Z cpus: 4 gc: 3% heap: 2.3G/5.3G direct: 971k postGC: 1.7G +2026-07-26T17:25:49.7394859Z read( 5%) -> (266/273) -> encode(94% 92% 94% 95%) -> (269/270) -> write( 1%) +2026-07-26T17:25:49.7395829Z last tile: 15/17033/11961 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/43.6321/7.13562 +2026-07-26T17:25:59.7584798Z 0:23:42 INF [archive] - features: [ 156M 91% 469k/s ] 12G tiles: [ 1.6M 5k/s ] 4.3G +2026-07-26T17:25:59.7586124Z cpus: 4 gc: 4% heap: 2.1G/5.3G direct: 971k postGC: 1.1G +2026-07-26T17:25:59.7586910Z read( 8%) -> (265/273) -> encode(91% 89% 91% 94%) -> (268/270) -> write( 3%) +2026-07-26T17:25:59.7588563Z last tile: 15/16837/11976 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/43.5127/4.9823 +2026-07-26T17:26:09.8048304Z 0:23:52 INF [archive] - features: [ 161M 94% 514k/s ] 12G tiles: [ 1.6M 3k/s ] 4.5G +2026-07-26T17:26:09.8049427Z cpus: 3.9 gc: 5% heap: 958M/5.3G direct: 971k postGC: 1G +2026-07-26T17:26:09.8050183Z read( 9%) -> (265/273) -> encode(89% 89% 88% 91%) -> (269/270) -> write( 2%) +2026-07-26T17:26:09.8051112Z last tile: 15/16903/11767 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/45.15493/5.7074 +2026-07-26T17:26:19.8187823Z 0:24:02 INF [archive] - features: [ 165M 95% 329k/s ] 12G tiles: [ 1.6M 3.8k/s ] 4.6G +2026-07-26T17:26:19.8188902Z cpus: 4 gc: 3% heap: 1.5G/5.3G direct: 971k postGC: 1.4G +2026-07-26T17:26:19.8189652Z read( 6%) -> (265/273) -> encode(92% 92% 92% 92%) -> (269/270) -> write( 2%) +2026-07-26T17:26:19.8190590Z last tile: 15/17110/11583 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/46.56264/7.98157 +2026-07-26T17:26:29.8354273Z 0:24:12 INF [archive] - features: [ 169M 98% 400k/s ] 12G tiles: [ 1.7M 3.7k/s ] 4.7G +2026-07-26T17:26:29.8355269Z cpus: 4 gc: 4% heap: 1.1G/5.3G direct: 971k postGC: 866M +2026-07-26T17:26:29.8355933Z read( 8%) -> (264/273) -> encode(90% 93% 93% 92%) -> (269/270) -> write( 2%) +2026-07-26T17:26:29.8356839Z last tile: 15/17394/11650 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/46.05417/11.10168 +2026-07-26T17:26:39.8487888Z 0:24:22 INF [archive] - features: [ 172M 100% 378k/s ] 12G tiles: [ 1.7M 3.9k/s ] 4.8G +2026-07-26T17:26:39.8489126Z cpus: 4 gc: 3% heap: 1.6G/5.3G direct: 971k postGC: 743M +2026-07-26T17:26:39.8489936Z read( -%) -> (7/273) -> encode(93% 95% 93% 94%) -> (10/270) -> write( 2%) +2026-07-26T17:26:39.8490947Z last tile: 15/17259/11447 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/47.58023/9.61853 +2026-07-26T17:26:40.0510006Z 0:24:22 INF [archive:write] - Finished z15 in 1m34s cpu:6m11s gc:3s avg:4 +2026-07-26T17:26:40.0549721Z 0:24:22 INF [archive:write] - Tile data was not written in order, sorting entries... +2026-07-26T17:26:40.0739679Z 0:24:22 INF [archive:write] - Done sorting. +2026-07-26T17:26:40.0740638Z 0:24:22 INF [archive:write] - Building directories with 4096 entries per leaf, attempt 1... +2026-07-26T17:26:40.3031915Z 0:24:22 INF [archive:write] - Built directories with 423 leaves, 1557B root directory +2026-07-26T17:26:40.3846348Z 0:24:23 INF [archive:write] - Writing metadata and leaf directories... +2026-07-26T17:26:40.3873573Z 0:24:23 INF [archive:write] - Writing header... +2026-07-26T17:26:40.3880708Z 0:24:23 INF [archive:write] - # addressed tiles: 1759063 +2026-07-26T17:26:40.3882191Z 0:24:23 INF [archive:write] - # of tile entries: 1731667 +2026-07-26T17:26:40.3893678Z 0:24:23 INF [archive:write] - # of tile contents: 1715447 +2026-07-26T17:26:40.3895308Z 0:24:23 INF [archive:write] - Root directory: 1.5kB +2026-07-26T17:26:40.3896411Z 0:24:23 INF [archive:write] - # leaves: 423 +2026-07-26T17:26:40.3897433Z 0:24:23 INF [archive:write] - Leaf directories: 3.2MB +2026-07-26T17:26:40.3898459Z 0:24:23 INF [archive:write] - Avg leaf size: 7.7kB +2026-07-26T17:26:40.3899449Z 0:24:23 INF [archive:write] - Total dir bytes: 3.2MB +2026-07-26T17:26:40.3900669Z 0:24:23 INF [archive:write] - Average bytes per addressed tile: 1.8624648463414897 +2026-07-26T17:26:40.3918861Z 0:24:23 INF [archive] - features: [ 172M 100% 132k/s ] 12G tiles: [ 1.7M 1k/s ] 4.9G +2026-07-26T17:26:40.3919860Z cpus: 2.4 gc: 0% heap: 2G/5.3G direct: 16k postGC: 743M +2026-07-26T17:26:40.3920563Z read( -%) -> (0/273) -> encode( -% -% -% -%) -> (0/270) -> write( -%) +2026-07-26T17:26:40.3921460Z last tile: 15/17404/11387 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/48.023/11.21155 +2026-07-26T17:26:40.3923184Z 0:24:23 DEB [archive] - Tile stats: +2026-07-26T17:26:40.4008086Z 0:24:23 DEB [archive] - Biggest tiles (gzipped) +2026-07-26T17:26:40.4012049Z 1. 6/34/22 (955k) https://onthegomap.github.io/planetiler-demo/#6.5/47.00577/14.0625 (water_name:966k) +2026-07-26T17:26:40.4013508Z 2. 6/33/22 (896k) https://onthegomap.github.io/planetiler-demo/#6.5/47.00577/8.4375 (water_name:1M) +2026-07-26T17:26:40.4014663Z 3. 11/1117/710 (744k) https://onthegomap.github.io/planetiler-demo/#11.5/48.16605/16.43555 (poi:984k) +2026-07-26T17:26:40.4015797Z 4. 7/66/45 (736k) https://onthegomap.github.io/planetiler-demo/#7.5/46.06461/7.03125 (water_name:611k) +2026-07-26T17:26:40.4016894Z 5. 7/69/44 (716k) https://onthegomap.github.io/planetiler-demo/#7.5/47.98134/15.46875 (water_name:479k) +2026-07-26T17:26:40.4017968Z 6. 8/139/89 (707k) https://onthegomap.github.io/planetiler-demo/#8.5/47.51505/16.17188 (landuse:288k) +2026-07-26T17:26:40.4019056Z 7. 7/67/45 (706k) https://onthegomap.github.io/planetiler-demo/#7.5/46.06461/9.84375 (water_name:535k) +2026-07-26T17:26:40.4020152Z 8. 8/132/91 (705k) https://onthegomap.github.io/planetiler-demo/#8.5/45.58113/6.32812 (water_name:311k) +2026-07-26T17:26:40.4021266Z 9. 8/136/89 (701k) https://onthegomap.github.io/planetiler-demo/#8.5/47.51505/11.95312 (water_name:300k) +2026-07-26T17:26:40.4022390Z 10. 8/138/90 (697k) https://onthegomap.github.io/planetiler-demo/#8.5/46.55671/14.76562 (landcover:264k) +2026-07-26T17:26:40.4052875Z 0:24:23 INF [archive] - Other tiles with large layers +2026-07-26T17:26:40.4054674Z 13/4218/3000 (669k) https://onthegomap.github.io/planetiler-demo/#13.5/43.30919/5.3833 (building:669k) +2026-07-26T17:26:40.4056406Z 10/557/360 (595k) https://onthegomap.github.io/planetiler-demo/#10.5/46.92012/15.99609 (landuse:595k) +2026-07-26T17:26:40.4058110Z 8/136/90 (232k) https://onthegomap.github.io/planetiler-demo/#8.5/46.55671/11.95312 (landcover:293k) +2026-07-26T17:26:40.4059661Z 11/1067/736 (539k) https://onthegomap.github.io/planetiler-demo/#11.5/45.02692/7.64648 (transportation:539k) +2026-07-26T17:26:40.4060804Z 12/2109/1500 (117k) https://onthegomap.github.io/planetiler-demo/#12.5/43.29319/5.40527 (transportation:509k) +2026-07-26T17:26:40.4196574Z 0:24:23 DEB [archive] - Max tile sizes +2026-07-26T17:26:40.4197396Z z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15 z16 all +2026-07-26T17:26:40.4198295Z boundary 245 285 624 7.9k 26k 31k 76k 48k 95k 44k 20k 9.9k 4.6k 2.1k 1.3k 1.1k 1k 95k +2026-07-26T17:26:40.4199169Z place 0 0 308 1.6k 2.2k 2.8k 2.2k 5.8k 2.6k 23k 46k 23k 11k 4.1k 1.9k 1.3k 942 46k +2026-07-26T17:26:40.4200450Z landcover 0 0 0 12k 55k  144k  413k  354k  293k  205k  170k  136k 90k 60k 37k 24k 15k  413k +2026-07-26T17:26:40.4202085Z transportation 0 0 0 0 16k 41k  153k  164k  272k  372k  433k  539k  509k  437k  182k 74k 32k  539k +2026-07-26T17:26:40.4204594Z water 0 0 0 0 3k 7.2k 17k 19k 20k 18k 14k 12k 11k 6.4k 10k 9k 5.8k 20k +2026-07-26T17:26:40.4208270Z park 0 0 0 0 0 37k 50k 52k 61k 34k 35k 25k 16k 16k 8.3k 7.4k 3k 61k +2026-07-26T17:26:40.4209853Z water_name 0 0 0 0 0  314k  1M  611k  362k  189k 74k 37k 18k 8.5k 4.4k 2.2k 1.3k  1M +2026-07-26T17:26:40.4211610Z landuse 0 0 0 0 0 0 78k  223k  288k  529k  595k  262k  155k  101k 46k 29k 12k  595k +2026-07-26T17:26:40.4213704Z waterway 0 0 0 0 0 0 34k 18k 12k 8.2k 60k 28k 14k 9k 4.7k 2.3k 1.4k 60k +2026-07-26T17:26:40.4214940Z transportation_name 0 0 0 0 0 0 0 8.5k 16k 13k 49k 28k  117k 47k 20k 8.5k 4.6k  117k +2026-07-26T17:26:40.4215897Z aerodrome_label 0 0 0 0 0 0 0 0 2.7k 901 577 511 511 260 260 260 216 2.7k +2026-07-26T17:26:40.4216669Z mountain_peak 0 0 0 0 0 0 0 0  232k  100k 30k 13k 5.7k 3.2k 2.6k 2.1k 1.2k  232k +2026-07-26T17:26:40.4217288Z aeroway 0 0 0 0 0 0 0 0 0 3.4k 6.2k 4.4k 5.7k 8.3k 9.5k 5.5k 4.7k 9.5k +2026-07-26T17:26:40.4218153Z poi 0 0 0 0 0 0 0 0 0 0 0  984k  876k  429k  193k 89k 67k  984k +2026-07-26T17:26:40.4219544Z building 0 0 0 0 0 0 0 0 0 0 0 0 0  669k  413k  179k 62k  669k +2026-07-26T17:26:40.4220355Z housenumber 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31k 31k +2026-07-26T17:26:40.4221024Z full tile 245 285 932 21k 103k 547k 1.7M 1.3M 1.2M 1M 931k 1.6M 1.5M 1.2M 551k 241k 114k 1.7M +2026-07-26T17:26:40.4221879Z gzipped 229 258 687 10k 50k 262k 955k 736k 707k 605k 560k 744k 668k 615k 273k 124k 52k 955k +2026-07-26T17:26:40.4223840Z 0:24:23 DEB [archive] - Max tile: 1.7M (gzipped: 955k) +2026-07-26T17:26:40.4225140Z 0:24:23 DEB [archive] - Avg tile: 343k (gzipped: 189k) using weighted average based on OSM traffic +2026-07-26T17:26:40.4226048Z 0:24:23 DEB [archive] - # tiles: 1,759,063 +2026-07-26T17:26:40.4226665Z 0:24:23 DEB [archive] - # features: 172,932,691 +2026-07-26T17:26:40.4227421Z 0:24:23 INF [archive] - Finished in 11m23s cpu:45m4s gc:24s avg:4 +2026-07-26T17:26:40.4228222Z 0:24:23 INF [archive] - read 1x(4% 29s wait:10m3s done:7s) +2026-07-26T17:26:40.4228727Z 0:24:23 INF [archive] - encode 4x(92% 10m26s done:2s) +2026-07-26T17:26:40.4229281Z 0:24:23 INF [archive] - write 1x(1% 9s wait:11m8s done:2s) +2026-07-26T17:26:40.4229751Z 0:24:23 INF [archive] - Finished in 24m22s cpu:1h30m23s gc:38s avg:3.7 +2026-07-26T17:26:40.4233736Z 0:24:23 INF [archive] - FINISHED! +2026-07-26T17:26:40.4234354Z 0:24:23 INF [archive] - +2026-07-26T17:26:40.4234971Z 0:24:23 INF [archive] - ---------------------------------------- +2026-07-26T17:26:40.4235614Z 0:24:23 INF [archive] - data errors: +2026-07-26T17:26:40.4242748Z 0:24:23 INF [archive] - render_snap_fix_input 2,582,416 +2026-07-26T17:26:40.4245557Z 0:24:23 INF [archive] - osm_boundary_missing_way 2,799 +2026-07-26T17:26:40.4246630Z 0:24:23 INF [archive] - merge_snap_fix_input 112 +2026-07-26T17:26:40.4247534Z 0:24:23 INF [archive] - osm_multipolygon_missing_way 98 +2026-07-26T17:26:40.4248798Z 0:24:23 INF [archive] - merge_snap_fix_input2 26 +2026-07-26T17:26:40.4249892Z 0:24:23 INF [archive] - feature_polygon_osm_invalid_multipolygon_empty_after_fix 21 +2026-07-26T17:26:40.4255942Z 0:24:23 INF [archive] - merge_snap_fix_input3 8 +2026-07-26T17:26:40.4258065Z 0:24:23 INF [archive] - osm_multipolygon_duplicate_member 7 +2026-07-26T17:26:40.4258789Z 0:24:23 INF [archive] - render_snap_fix_input2 6 +2026-07-26T17:26:40.4259431Z 0:24:23 INF [archive] - render_snap_fix_input3 2 +2026-07-26T17:26:40.4260268Z 0:24:23 INF [archive] - feature_centroid_osm_invalid_multipolygon_empty_after_fix 2 +2026-07-26T17:26:40.4260975Z 0:24:23 INF [archive] - osm_boundary_duplicate_member 1 +2026-07-26T17:26:40.4266288Z 0:24:23 INF [archive] - feature_polygon_osm_invalid_multipolygon_empty 1 +2026-07-26T17:26:40.4268029Z 0:24:23 INF [archive] - ---------------------------------------- +2026-07-26T17:26:40.4273228Z 0:24:23 INF [archive] - overall 24m22s cpu:1h30m23s gc:38s avg:3.7 +2026-07-26T17:26:40.4275242Z 0:24:23 INF [archive] - osm_pass1 37s cpu:2m13s avg:3.6 +2026-07-26T17:26:40.4278901Z 0:24:23 INF [archive] - read 1x(2% 0.9s wait:36s) +2026-07-26T17:26:40.4284695Z 0:24:23 INF [archive] - parse 4x(69% 25s wait:7s) +2026-07-26T17:26:40.4286021Z 0:24:23 INF [archive] - process 1x(58% 21s wait:12s) +2026-07-26T17:26:40.4287324Z 0:24:23 INF [archive] - osm_pass2 10m52s cpu:39m58s gc:8s avg:3.7 +2026-07-26T17:26:40.4290193Z 0:24:23 INF [archive] - read 1x(0% 0.9s wait:10m37s done:15s) +2026-07-26T17:26:40.4291398Z 0:24:23 INF [archive] - process 4x(87% 9m30s) +2026-07-26T17:26:40.4292471Z 0:24:23 INF [archive] - write 1x(7% 45s wait:10m5s) +2026-07-26T17:26:40.4294628Z 0:24:23 INF [archive] - sort 1m28s cpu:3m5s gc:6s avg:2.1 +2026-07-26T17:26:40.4296558Z 0:24:23 INF [archive] - worker 1x(41% 36s wait:35s) +2026-07-26T17:26:40.4297907Z 0:24:23 INF [archive] - archive 11m23s cpu:45m4s gc:24s avg:4 +2026-07-26T17:26:40.4303760Z 0:24:23 INF [archive] - read 1x(4% 29s wait:10m3s done:7s) +2026-07-26T17:26:40.4305264Z 0:24:23 INF [archive] - encode 4x(92% 10m26s done:2s) +2026-07-26T17:26:40.4306048Z 0:24:23 INF [archive] - write 1x(1% 9s wait:11m8s done:2s) +2026-07-26T17:26:40.4306635Z 0:24:23 INF [archive] - ---------------------------------------- +2026-07-26T17:26:40.4313284Z 0:24:23 INF [archive] - archive 4.9GB +2026-07-26T17:26:40.4318293Z 0:24:23 INF [archive] - features 12GB +2026-07-26T17:26:47.5640738Z -rw-r--r-- 1 root root 4.6G Jul 26 17:26 /home/runner/work/Map/Map/artifacts/occumed-alps.pmtiles +2026-07-26T17:26:47.5641924Z -rw-r--r-- 1 runner runner 87 Jul 26 17:26 /home/runner/work/Map/Map/artifacts/occumed-alps.pmtiles.sha256 +2026-07-26T17:26:47.5643424Z Created /home/runner/work/Map/Map/artifacts/occumed-alps.pmtiles +2026-07-26T17:26:47.5644114Z Build the app with: +2026-07-26T17:26:47.5644903Z OCCUMED_PMTILES_URL=__OCCUMED_PUBLIC_ORIGIN__/tiles/occumed-alps.pmtiles npm run build +2026-07-26T17:26:47.7579945Z Archive exceeds GitHub Release's safe per-file ceiling and must be subdivided: alps +2026-07-26T17:26:47.7580492Z archive_size_bytes=4902296065 +2026-07-26T17:26:47.7619755Z ##[error]Process completed with exit code 1. +2026-07-26T17:26:47.7861389Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +2026-07-26T17:26:47.7863205Z Post job cleanup. +2026-07-26T17:26:48.0212430Z [command]/usr/bin/git version +2026-07-26T17:26:48.0260095Z git version 2.54.0 +2026-07-26T17:26:48.0301232Z Temporarily overriding HOME='/home/runner/work/_temp/f0b02355-e703-4061-8ab4-17b5180fb2fd' before making global git config changes +2026-07-26T17:26:48.0303286Z Adding repository directory to the temporary git global config as a safe directory +2026-07-26T17:26:48.0307346Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +2026-07-26T17:26:48.0352215Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-26T17:26:48.0394352Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-26T17:26:48.0657044Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-07-26T17:26:48.0689551Z http.https://github.com/.extraheader +2026-07-26T17:26:48.0703640Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-07-26T17:26:48.0742206Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-07-26T17:26:48.1056330Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-07-26T17:26:48.1122606Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-07-26T17:26:48.1626512Z Cleaning up orphan processes +2026-07-26T17:26:48.2245241Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/diagnostics/world-first-pass-failures/89818513320.log b/diagnostics/world-first-pass-failures/89818513320.log new file mode 100644 index 00000000..c15dd4cd --- /dev/null +++ b/diagnostics/world-first-pass-failures/89818513320.log @@ -0,0 +1,260 @@ +2026-07-26T17:03:30.4768813Z cpus: 4 gc: 1% heap: 1.2G/5.3G direct: 216k postGC: 774M relInfo: 1.2M mpGeoms: 87M +2026-07-26T17:03:30.4770051Z read( 0%) -> (11/15) -> process(98% 91% 95% 97%) -> (2.9k/55k) -> write(10%) +2026-07-26T17:03:31.8942985Z 0:02:03 INF [osm_pass2:process] - Finished ways: 5,838,952 (56k/s) in 1m44s cpu:6m50s gc:1s avg:4 +2026-07-26T17:03:40.4986913Z 0:02:11 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 9.4k/s ] rels: [ 15k 17% 1.5k/s ] features: [ 50M 133k/s ] 4.9G blocks: [ 8k 100% 1/s ] +2026-07-26T17:03:40.4988610Z cpus: 3.9 gc: 2% heap: 1.5G/5.3G direct: 216k postGC: 809M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:03:40.4989838Z read( -%) -> (6/15) -> process(77% 75% 76% 74%) -> (2k/55k) -> write( 3%) +2026-07-26T17:03:50.5149027Z 0:02:21 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 0/s ] rels: [ 35k 40% 1.9k/s ] features: [ 51M 147k/s ] 4.9G blocks: [ 8k 100% <1/s ] +2026-07-26T17:03:50.5151071Z cpus: 4 gc: 1% heap: 1G/5.3G direct: 216k postGC: 809M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:03:50.5151991Z read( -%) -> (5/15) -> process(93% 94% 95% 96%) -> (1k/55k) -> write( 3%) +2026-07-26T17:04:00.4498226Z 0:02:31 WAR [osm_pass2:process] - Unrecognized geometry type: GeometryCollection +2026-07-26T17:04:00.5257262Z 0:02:31 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 0/s ] rels: [ 63k 72% 2.8k/s ] features: [ 53M 148k/s ] 4.9G blocks: [ 8k 100% <1/s ] +2026-07-26T17:04:00.5259324Z cpus: 3.8 gc: 1% heap: 1G/5.3G direct: 216k postGC: 784M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:04:00.5260674Z read( -%) -> (0/15) -> process(87% 87% 88% 87%) -> (1.4k/55k) -> write( 3%) +2026-07-26T17:04:10.5426753Z 0:02:41 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 0/s ] rels: [ 83k 96% 2k/s ] features: [ 54M 162k/s ] 4.9G blocks: [ 8.1k 100% <1/s ] +2026-07-26T17:04:10.5428882Z cpus: 3.9 gc: 1% heap: 1.6G/5.3G direct: 216k postGC: 782M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:04:10.5430092Z read( -%) -> (0/15) -> process(93% 94% 96% 96%) -> (1.7k/55k) -> write( 4%) +2026-07-26T17:04:11.7417028Z 0:02:43 INF [osm_pass2:process] - Finished relations: 87,807 (2.2k/s) in 40s cpu:2m36s avg:3.9 +2026-07-26T17:04:11.9758699Z 0:02:43 INF [osm_pass2] - nodes: [ 58M 100% 0/s ] 1.1G ways: [ 5.8M 100% 0/s ] rels: [ 87k 100% 2.6k/s ] features: [ 55M 328k/s ] 4.2G blocks: [ 8.1k 100% 1/s ] +2026-07-26T17:04:11.9766476Z cpus: 3.9 gc: 0% heap: 1.6G/5.3G direct: 16k postGC: 782M relInfo: 1.2M mpGeoms: 88M +2026-07-26T17:04:11.9767476Z read( -%) -> (0/15) -> process( -% -% -% -%) -> (0/55k) -> write( -%) +2026-07-26T17:04:11.9768324Z 0:02:43 DEB [osm_pass2] - Processed 8,102 blocks: +2026-07-26T17:04:11.9770158Z 0:02:43 DEB [osm_pass2] - nodes: 58,884,937 (7.4M/s) in 8s cpu:31s avg:4 +2026-07-26T17:04:11.9771788Z 0:02:43 DEB [osm_pass2] - ways: 5,838,952 (56k/s) in 1m44s cpu:6m50s gc:1s avg:4 +2026-07-26T17:04:11.9772917Z 0:02:43 DEB [osm_pass2] - relations: 87,807 (2.2k/s) in 40s cpu:2m36s avg:3.9 +2026-07-26T17:04:11.9776827Z 0:02:43 INF [osm_pass2] - Finished in 2m32s cpu:9m59s gc:2s avg:3.9 +2026-07-26T17:04:11.9785698Z 0:02:43 INF [osm_pass2] - read 1x(0% 0.2s wait:1m51s done:40s) +2026-07-26T17:04:11.9790601Z 0:02:43 INF [osm_pass2] - process 4x(90% 2m16s) +2026-07-26T17:04:11.9791713Z 0:02:43 INF [osm_pass2] - write 1x(10% 15s wait:2m17s) +2026-07-26T17:04:12.0537472Z 0:02:43 INF [osm_pass2] - Deleting node.db to make room for output file +2026-07-26T17:04:12.0544930Z 0:02:43 INF [sort] - +2026-07-26T17:04:12.0545930Z 0:02:43 INF [sort] - Starting... +2026-07-26T17:04:12.0575557Z 0:02:43 INF [sort] - Grouped 6 chunks into 5 +2026-07-26T17:04:22.0721044Z 0:02:53 INF [sort] - chunks: [ 1 / 5 20% ] 5G +2026-07-26T17:04:22.0723389Z cpus: 2.6 gc: 8% heap: 1.9G/5.3G direct: 16k postGC: 2G +2026-07-26T17:04:22.0724899Z -> (3/7) -> worker(43%) +2026-07-26T17:04:32.0812291Z 0:03:03 INF [sort] - chunks: [ 3 / 5 60% ] 4.2G +2026-07-26T17:04:32.0816044Z cpus: 2.6 gc: 8% heap: 1.8G/5.3G direct: 16k postGC: 1.8G +2026-07-26T17:04:32.0817414Z -> (1/7) -> worker(47%) +2026-07-26T17:04:34.8790629Z 0:03:06 INF [sort] - chunks: [ 5 / 5 100% ] 4.2G +2026-07-26T17:04:34.8792413Z cpus: 1.4 gc: 0% heap: 1.8G/5.3G direct: 16k postGC: 1.8G +2026-07-26T17:04:34.8793296Z -> (0/7) -> worker( -%) +2026-07-26T17:04:34.8794284Z 0:03:06 INF [sort] - Finished in 23s cpu:56s gc:2s avg:2.5 +2026-07-26T17:04:34.8797572Z 0:03:06 INF [sort] - worker 1x(47% 11s wait:10s) +2026-07-26T17:04:34.8798280Z 0:03:06 INF [sort] - read:3s write:6s sort:12s +2026-07-26T17:04:34.8827449Z 0:03:06 INF [archive] - +2026-07-26T17:04:34.8828038Z 0:03:06 INF [archive] - Starting... +2026-07-26T17:04:34.8942747Z 0:03:06 INF [archive] - Unable to load tile weights from /data/tile_weights.tsv.gz, falling back to top 100k +2026-07-26T17:04:35.8278077Z 0:03:07 INF [archive:write] - Starting z0 +2026-07-26T17:04:35.8329178Z 0:03:07 INF [archive:write] - Finished z0 in 0s cpu:0s avg:0, now starting z1 +2026-07-26T17:04:35.8340022Z 0:03:07 INF [archive:write] - Finished z1 in 0s cpu:0s avg:0, now starting z2 +2026-07-26T17:04:35.8350062Z 0:03:07 INF [archive:write] - Finished z2 in 0s cpu:0s avg:0, now starting z3 +2026-07-26T17:04:40.9171075Z 0:03:12 INF [archive:write] - Finished z3 in 5s cpu:20s avg:4, now starting z4 +2026-07-26T17:04:44.9442645Z 0:03:16 INF [archive:write] - Finished z4 in 4s cpu:16s avg:3.9, now starting z5 +2026-07-26T17:04:45.1189012Z 0:03:16 INF [archive] - features: [ 538k 1% 53k/s ] 4.2G tiles: [ 17 1/s ] 384k +2026-07-26T17:04:45.1190691Z cpus: 4 gc: 7% heap: 1.1G/5.3G direct: 128k postGC: 629M +2026-07-26T17:04:45.1191644Z read( 4%) -> (258/273) -> encode(60% 64% 61% 62%) -> (269/270) -> write( 0%) +2026-07-26T17:04:45.1192743Z last tile: 5/10/18 (z5 47%) https://onthegomap.github.io/planetiler-demo/#5.5/-26.9476/-61.875 +2026-07-26T17:04:46.3841460Z 0:03:17 INF [archive:write] - Finished z5 in 1s cpu:6s avg:4, now starting z6 +2026-07-26T17:04:50.2955607Z 0:03:21 INF [archive:write] - Finished z6 in 4s cpu:16s avg:4, now starting z7 +2026-07-26T17:04:55.1315754Z 0:03:26 INF [archive] - features: [ 1.4M 3% 90k/s ] 4.2G tiles: [ 78 6/s ] 2.8M +2026-07-26T17:04:55.1316688Z cpus: 4 gc: 4% heap: 843M/5.3G direct: 274k postGC: 589M +2026-07-26T17:04:55.1317577Z read( 0%) -> (205/273) -> encode(78% 76% 77% 75%) -> (269/270) -> write( 0%) +2026-07-26T17:04:55.1318409Z last tile: 7/44/76 (z7 47%) https://onthegomap.github.io/planetiler-demo/#7.5/-33.12965/-54.84375 +2026-07-26T17:04:59.3416995Z 0:03:30 INF [archive:write] - Finished z7 in 9s cpu:36s avg:4, now starting z8 +2026-07-26T17:04:59.3657697Z 0:03:30 INF [archive:write] - Finished z8 in 0s cpu:0.1s avg:3.4, now starting z9 +2026-07-26T17:05:04.5025574Z 0:03:35 INF [archive:write] - Finished z9 in 5s cpu:20s avg:4, now starting z10 +2026-07-26T17:05:05.1471694Z 0:03:36 INF [archive] - features: [ 2.8M 5% 143k/s ] 4.2G tiles: [ 1.9k 183/s ] 31M +2026-07-26T17:05:05.1472977Z cpus: 4 gc: 3% heap: 804M/5.3G direct: 477k postGC: 542M +2026-07-26T17:05:05.1473866Z read( 3%) -> (263/273) -> encode(89% 88% 89% 90%) -> (269/270) -> write( 0%) +2026-07-26T17:05:05.1474956Z last tile: 10/318/649 (z10 46%) https://onthegomap.github.io/planetiler-demo/#10.5/-43.45278/-68.02734 +2026-07-26T17:05:11.0525207Z 0:03:42 INF [archive:write] - Finished z10 in 7s cpu:26s avg:4, now starting z11 +2026-07-26T17:05:15.1614260Z 0:03:46 INF [archive] - features: [ 4.9M 9% 210k/s ] 4.2G tiles: [ 11k 916/s ] 81M +2026-07-26T17:05:15.1615413Z cpus: 4 gc: 3% heap: 664M/5.3G direct: 477k postGC: 531M +2026-07-26T17:05:15.1616250Z read( 3%) -> (266/273) -> encode(88% 90% 88% 90%) -> (269/270) -> write( 1%) +2026-07-26T17:05:15.1617238Z last tile: 11/651/1170 (z11 47%) https://onthegomap.github.io/planetiler-demo/#11.5/-24.92627/-65.47852 +2026-07-26T17:05:17.7607829Z 0:03:49 WAR [archive:encode] - {x=691 y=1234 z=11} 1537kb uncompressed +2026-07-26T17:05:20.2455638Z 0:03:51 INF [archive:write] - Finished z11 in 9s cpu:36s avg:4, now starting z12 +2026-07-26T17:05:25.1809539Z 0:03:56 INF [archive] - features: [ 7.8M 14% 282k/s ] 4.2G tiles: [ 36k 2.4k/s ] 158M +2026-07-26T17:05:25.1810931Z cpus: 4 gc: 3% heap: 599M/5.3G direct: 719k postGC: 562M +2026-07-26T17:05:25.1811743Z read( 4%) -> (264/273) -> encode(90% 92% 90% 90%) -> (269/270) -> write( 2%) +2026-07-26T17:05:25.1812764Z last tile: 12/1385/2345 (z12 47%) https://onthegomap.github.io/planetiler-demo/#12.5/-25.28443/-58.22754 +2026-07-26T17:05:32.8594887Z 0:04:04 INF [archive:write] - Finished z12 in 13s cpu:50s avg:4, now starting z13 +2026-07-26T17:05:35.2006567Z 0:04:06 INF [archive] - features: [ 11M 20% 340k/s ] 4.2G tiles: [ 110k 7.4k/s ] 264M +2026-07-26T17:05:35.2007704Z cpus: 4 gc: 4% heap: 769M/5.3G direct: 719k postGC: 683M +2026-07-26T17:05:35.2008489Z read( 5%) -> (265/273) -> encode(87% 90% 89% 88%) -> (269/270) -> write( 3%) +2026-07-26T17:05:35.2009466Z last tile: 13/2589/5586 (z13 47%) https://onthegomap.github.io/planetiler-demo/#13.5/-54.6357/-66.20361 +2026-07-26T17:05:45.2162029Z 0:04:16 INF [archive] - features: [ 14M 27% 370k/s ] 4.2G tiles: [ 186k 7.5k/s ] 376M +2026-07-26T17:05:45.2163424Z cpus: 4 gc: 4% heap: 1.5G/5.3G direct: 719k postGC: 600M +2026-07-26T17:05:45.2166600Z read( 4%) -> (266/273) -> encode(91% 91% 89% 88%) -> (269/270) -> write( 3%) +2026-07-26T17:05:45.2168042Z last tile: 13/2768/4939 (z13 47%) https://onthegomap.github.io/planetiler-demo/#13.5/-34.72355/-58.3374 +2026-07-26T17:05:49.5957342Z 0:04:20 WAR [archive:encode] - {x=2536 y=4852 z=13} 1040kb uncompressed +2026-07-26T17:05:49.7845512Z 0:04:21 INF [archive:write] - Finished z13 in 17s cpu:1m7s avg:4, now starting z14 +2026-07-26T17:05:55.2420512Z 0:04:26 INF [archive] - features: [ 17M 32% 267k/s ] 4.2G tiles: [ 388k 20k/s ] 495M +2026-07-26T17:05:55.2422119Z cpus: 4 gc: 4% heap: 671M/5.3G direct: 719k postGC: 534M +2026-07-26T17:05:55.2423190Z read( 4%) -> (266/273) -> encode(88% 88% 91% 87%) -> (269/270) -> write( 5%) +2026-07-26T17:05:55.2424330Z last tile: 14/5682/9515 (z14 47%) https://onthegomap.github.io/planetiler-demo/#14.5/-27.90706/-55.14038 +2026-07-26T17:06:05.2546879Z 0:04:36 INF [archive] - features: [ 20M 38% 330k/s ] 4.2G tiles: [ 643k 25k/s ] 633M +2026-07-26T17:06:05.2551216Z cpus: 4 gc: 4% heap: 807M/5.3G direct: 719k postGC: 608M +2026-07-26T17:06:05.2552641Z read( 4%) -> (266/273) -> encode(89% 90% 88% 86%) -> (269/270) -> write( 7%) +2026-07-26T17:06:05.2553872Z last tile: 14/5441/9743 (z14 47%) https://onthegomap.github.io/planetiler-demo/#14.5/-32.24068/-60.43579 +2026-07-26T17:06:12.6471382Z 0:04:43 INF [archive:write] - Finished z14 in 23s cpu:1m31s avg:4, now starting z15 +2026-07-26T17:06:15.2743965Z 0:04:46 INF [archive] - features: [ 24M 44% 355k/s ] 4.2G tiles: [ 1M 40k/s ] 790M +2026-07-26T17:06:15.2746200Z cpus: 4 gc: 4% heap: 1.1G/5.3G direct: 719k postGC: 586M +2026-07-26T17:06:15.2747615Z read( 3%) -> (264/273) -> encode(89% 90% 91% 92%) -> (269/270) -> write(10%) +2026-07-26T17:06:15.2748894Z last tile: 15/10239/21083 (z15 46%) https://onthegomap.github.io/planetiler-demo/#15.5/-45.79434/-67.50549 +2026-07-26T17:06:25.2883024Z 0:04:56 INF [archive] - features: [ 26M 49% 246k/s ] 4.2G tiles: [ 1.5M 50k/s ] 932M +2026-07-26T17:06:25.2884225Z cpus: 4 gc: 4% heap: 973M/5.3G direct: 719k postGC: 817M +2026-07-26T17:06:25.2884982Z read( 3%) -> (265/273) -> encode(91% 88% 90% 92%) -> (269/270) -> write(11%) +2026-07-26T17:06:25.2885956Z last tile: 15/10552/18879 (z15 47%) https://onthegomap.github.io/planetiler-demo/#15.5/-26.42631/-64.06677 +2026-07-26T17:06:35.3035951Z 0:05:06 INF [archive] - features: [ 30M 55% 322k/s ] 4.2G tiles: [ 2.1M 60k/s ] 1G +2026-07-26T17:06:35.3037379Z cpus: 4 gc: 5% heap: 1.1G/5.3G direct: 719k postGC: 670M +2026-07-26T17:06:35.3038334Z read( 5%) -> (266/273) -> encode(86% 89% 88% 88%) -> (269/270) -> write(12%) +2026-07-26T17:06:35.3039448Z last tile: 15/10919/19634 (z15 47%) https://onthegomap.github.io/planetiler-demo/#15.5/-33.60089/-60.03479 +2026-07-26T17:06:45.3323089Z 0:05:16 INF [archive] - features: [ 33M 61% 329k/s ] 4.2G tiles: [ 2.6M 52k/s ] 1.2G +2026-07-26T17:06:45.3325083Z cpus: 4 gc: 4% heap: 958M/5.3G direct: 719k postGC: 641M +2026-07-26T17:06:45.3326463Z read( 3%) -> (262/273) -> encode(87% 87% 90% 93%) -> (268/270) -> write(11%) +2026-07-26T17:06:45.3327739Z last tile: 15/10152/19830 (z15 47%) https://onthegomap.github.io/planetiler-demo/#15.5/-35.37561/-68.4613 +2026-07-26T17:06:47.5763263Z 0:05:18 INF [archive:write] - Finished z15 in 35s cpu:2m19s gc:2s avg:4, now starting z16 +2026-07-26T17:06:55.3501352Z 0:05:26 INF [archive] - features: [ 36M 66% 300k/s ] 4.2G tiles: [ 3.7M 107k/s ] 1.4G +2026-07-26T17:06:55.3513001Z cpus: 4 gc: 4% heap: 1.2G/5.3G direct: 719k postGC: 746M +2026-07-26T17:06:55.3513847Z read( 3%) -> (254/273) -> encode(91% 88% 84% 90%) -> (269/270) -> write(19%) +2026-07-26T17:06:55.3514883Z last tile: 16/20963/41388 (z16 46%) https://onthegomap.github.io/planetiler-demo/#16.5/-42.73289/-64.84406 +2026-07-26T17:07:05.3681584Z 0:05:36 INF [archive] - features: [ 39M 71% 279k/s ] 4.2G tiles: [ 4.6M 86k/s ] 1.5G +2026-07-26T17:07:05.3683757Z cpus: 4 gc: 4% heap: 1.2G/5.3G direct: 719k postGC: 884M +2026-07-26T17:07:05.3684990Z read( 4%) -> (266/273) -> encode(93% 88% 87% 86%) -> (269/270) -> write(15%) +2026-07-26T17:07:05.3686256Z last tile: 16/22078/37947 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-27.34981/-58.71918 +2026-07-26T17:07:15.3773881Z 0:05:46 INF [archive] - features: [ 42M 77% 324k/s ] 4.2G tiles: [ 5.8M 122k/s ] 1.7G +2026-07-26T17:07:15.3776239Z cpus: 4 gc: 5% heap: 1.7G/5.3G direct: 719k postGC: 817M +2026-07-26T17:07:15.3777388Z read( 4%) -> (265/273) -> encode(88% 89% 90% 84%) -> (269/270) -> write(18%) +2026-07-26T17:07:15.3778755Z last tile: 16/21076/38065 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-27.92405/-64.22333 +2026-07-26T17:07:25.3963008Z 0:05:56 INF [archive] - features: [ 45M 83% 338k/s ] 4.2G tiles: [ 6.9M 115k/s ] 1.8G +2026-07-26T17:07:25.3965222Z cpus: 4 gc: 5% heap: 1.6G/5.3G direct: 719k postGC: 825M +2026-07-26T17:07:25.3966368Z read( 5%) -> (263/273) -> encode(85% 87% 83% 91%) -> (269/270) -> write(17%) +2026-07-26T17:07:25.3967741Z last tile: 16/21307/39015 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-32.43329/-62.95441 +2026-07-26T17:07:35.4127365Z 0:06:06 INF [archive] - features: [ 50M 91% 425k/s ] 4.2G tiles: [ 7.5M 58k/s ] 2G +2026-07-26T17:07:35.4130933Z cpus: 4 gc: 5% heap: 1.7G/5.3G direct: 719k postGC: 911M +2026-07-26T17:07:35.4132624Z read( 5%) -> (263/273) -> encode(85% 84% 88% 88%) -> (268/270) -> write(12%) +2026-07-26T17:07:35.4134676Z last tile: 16/21688/39577 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-35.00075/-60.86151 +2026-07-26T17:07:45.4340159Z 0:06:16 INF [archive] - features: [ 53M 96% 306k/s ] 4.2G tiles: [ 8.5M 100k/s ] 2.2G +2026-07-26T17:07:45.4341722Z cpus: 4 gc: 5% heap: 817M/5.3G direct: 719k postGC: 672M +2026-07-26T17:07:45.4342499Z read( 4%) -> (266/273) -> encode(86% 88% 86% 84%) -> (269/270) -> write(18%) +2026-07-26T17:07:45.4343500Z last tile: 16/19890/40344 (z16 47%) https://onthegomap.github.io/planetiler-demo/#16.5/-38.37827/-70.73822 +2026-07-26T17:07:51.5754817Z 0:06:22 INF [archive:write] - Finished z16 in 1m4s cpu:4m14s gc:3s avg:4 +2026-07-26T17:07:51.5785373Z 0:06:22 INF [archive:write] - Building directories with 4096 entries per leaf, attempt 1... +2026-07-26T17:07:52.7899168Z 0:06:24 INF [archive:write] - Built directories with 1600 leaves, 6503B root directory +2026-07-26T17:07:52.8723266Z 0:06:24 INF [archive:write] - Writing metadata and leaf directories... +2026-07-26T17:07:52.8784736Z 0:06:24 INF [archive:write] - Writing header... +2026-07-26T17:07:52.8788716Z 0:06:24 INF [archive:write] - # addressed tiles: 9310569 +2026-07-26T17:07:52.8794173Z 0:06:24 INF [archive:write] - # of tile entries: 6550288 +2026-07-26T17:07:52.8795594Z 0:06:24 INF [archive:write] - # of tile contents: 6088634 +2026-07-26T17:07:52.8796449Z 0:06:24 INF [archive:write] - Root directory: 6.5kB +2026-07-26T17:07:52.8797102Z 0:06:24 INF [archive:write] - # leaves: 1600 +2026-07-26T17:07:52.8797717Z 0:06:24 INF [archive:write] - Leaf directories: 12MB +2026-07-26T17:07:52.8798199Z 0:06:24 INF [archive:write] - Avg leaf size: 8kB +2026-07-26T17:07:52.8798649Z 0:06:24 INF [archive:write] - Total dir bytes: 12MB +2026-07-26T17:07:52.8799384Z 0:06:24 INF [archive:write] - Average bytes per addressed tile: 1.3805561185358275 +2026-07-26T17:07:52.8832059Z 0:06:24 INF [archive] - features: [ 55M 100% 278k/s ] 4.2G tiles: [ 9.3M 97k/s ] 2.3G +2026-07-26T17:07:52.8833906Z cpus: 3.5 gc: 3% heap: 679M/5.3G direct: 16k postGC: 711M +2026-07-26T17:07:52.8834449Z read( -%) -> (0/273) -> encode( -% -% -% -%) -> (0/270) -> write( -%) +2026-07-26T17:07:52.8835084Z last tile: 16/21386/36849 (z16 48%) https://onthegomap.github.io/planetiler-demo/#16.5/-21.86915/-62.52045 +2026-07-26T17:07:52.8835654Z 0:06:24 DEB [archive] - Tile stats: +2026-07-26T17:07:52.8908477Z 0:06:24 DEB [archive] - Biggest tiles (gzipped) +2026-07-26T17:07:52.8909814Z 1. 11/691/1234 (702k) https://onthegomap.github.io/planetiler-demo/#11.5/-34.66933/-58.44727 (transportation:811k) +2026-07-26T17:07:52.8911674Z 2. 13/2536/4852 (542k) https://onthegomap.github.io/planetiler-demo/#13.5/-31.52236/-68.53271 (building:760k) +2026-07-26T17:07:52.8913185Z 3. 13/2536/4853 (469k) https://onthegomap.github.io/planetiler-demo/#13.5/-31.55981/-68.53271 (building:688k) +2026-07-26T17:07:52.8914688Z 4. 9/172/308 (461k) https://onthegomap.github.io/planetiler-demo/#9.5/-34.59654/-58.71094 (transportation:580k) +2026-07-26T17:07:52.8916183Z 5. 11/691/1233 (448k) https://onthegomap.github.io/planetiler-demo/#11.5/-34.52463/-58.44727 (transportation:448k) +2026-07-26T17:07:52.8917686Z 6. 13/2535/4852 (439k) https://onthegomap.github.io/planetiler-demo/#13.5/-31.52236/-68.57666 (building:601k) +2026-07-26T17:07:52.8919134Z 7. 13/2717/4916 (419k) https://onthegomap.github.io/planetiler-demo/#13.5/-33.88866/-60.57861 (building:761k) +2026-07-26T17:07:52.8921029Z 8. 11/690/1234 (398k) https://onthegomap.github.io/planetiler-demo/#11.5/-34.66933/-58.62305 (transportation:573k) +2026-07-26T17:07:52.8922575Z 9. 10/345/617 (396k) https://onthegomap.github.io/planetiler-demo/#10.5/-34.74149/-58.53516 (transportation:446k) +2026-07-26T17:07:52.8924182Z 10. 12/1383/2468 (392k) https://onthegomap.github.io/planetiler-demo/#12.5/-34.6332/-58.40332 (poi:385k) +2026-07-26T17:07:52.8951588Z 0:06:24 INF [archive] - Other tiles with large layers +2026-07-26T17:07:52.8952836Z 8/85/153 (233k) https://onthegomap.github.io/planetiler-demo/#8.5/-33.72235/-59.76562 (landuse:233k) +2026-07-26T17:07:52.8954216Z 6/21/38 (130k) https://onthegomap.github.io/planetiler-demo/#6.5/-34.27503/-59.0625 (water_name:130k) +2026-07-26T17:07:52.9111136Z 0:06:24 DEB [archive] - Max tile sizes +2026-07-26T17:07:52.9112106Z z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15 z16 all +2026-07-26T17:07:52.9113265Z boundary 828 1.8k 6.2k 18k 21k 18k 33k 16k 17k 7.5k 4.4k 2.8k 2.7k 1.5k 1.3k 852 696 33k +2026-07-26T17:07:52.9114452Z place 0 0 119 927 1k 2.9k 2.3k 10k 10k 9.5k 35k 23k 20k 11k 3.7k 1.6k 1k 35k +2026-07-26T17:07:52.9115581Z landcover 0 0 0 23k 48k 55k 45k 55k 78k 69k 60k 66k 28k 25k 19k 18k 9.7k 78k +2026-07-26T17:07:52.9117581Z transportation 0 0 0 0 63k 58k 79k 65k  265k  580k  446k  811k  333k  169k 68k 29k 15k  811k +2026-07-26T17:07:52.9119652Z water 0 0 0 0 18k 36k 50k 74k 69k 67k 59k 39k 22k 18k 11k 6k 2.6k 74k +2026-07-26T17:07:52.9121418Z park 0 0 0 0 0 22k 12k 16k 11k 16k 35k 34k 25k 13k 5.6k 3.7k 2.2k 35k +2026-07-26T17:07:52.9122864Z water_name 0 0 0 0 0 49k  130k 67k 60k 35k 24k 14k 9.8k 8.9k 5.4k 3.4k 2.3k  130k +2026-07-26T17:07:52.9124548Z landuse 0 0 0 0 0 0 88k  225k  233k  199k  207k  199k  129k 56k 36k 15k 7.6k  233k +2026-07-26T17:07:52.9125914Z waterway 0 0 0 0 0 0 31k 17k 14k 11k 30k 19k 14k 7.5k 5.3k 2.9k 1.5k 31k +2026-07-26T17:07:52.9127083Z transportation_name 0 0 0 0 0 0 0 4.4k 16k 15k 62k 33k 95k 33k 16k 5.7k 2.7k 95k +2026-07-26T17:07:52.9128247Z aerodrome_label 0 0 0 0 0 0 0 0 2.1k 1k 467 351 306 302 302 302 210 2.1k +2026-07-26T17:07:52.9129576Z mountain_peak 0 0 0 0 0 0 0 0 25k 10k 4.8k 2.2k 1.3k 634 374 297 235 25k +2026-07-26T17:07:52.9131190Z aeroway 0 0 0 0 0 0 0 0 0 3.1k 3.2k 2.6k 3k 2.7k 2.2k 1.7k 1.2k 3.2k +2026-07-26T17:07:52.9132874Z poi 0 0 0 0 0 0 0 0 0 0 0  508k  385k  183k 64k 31k 18k  508k +2026-07-26T17:07:52.9134677Z building 0 0 0 0 0 0 0 0 0 0 0 0 0  761k  585k  232k 80k  761k +2026-07-26T17:07:52.9136069Z housenumber 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23k 23k +2026-07-26T17:07:52.9137430Z full tile 828 1.8k 6.3k 42k 153k 222k 447k 472k 551k 918k 804k 1.5M 852k 1M 687k 251k 104k 1.5M +2026-07-26T17:07:52.9138861Z gzipped 598 1.1k 3.5k 23k 82k 124k 257k 276k 286k 461k 396k 702k 392k 542k 355k 135k 55k 702k +2026-07-26T17:07:52.9140567Z 0:06:24 DEB [archive] - Max tile: 1.5M (gzipped: 702k) +2026-07-26T17:07:52.9142003Z 0:06:24 DEB [archive] - Avg tile: 144k (gzipped: 75k) using weighted average based on OSM traffic +2026-07-26T17:07:52.9143335Z 0:06:24 DEB [archive] - # tiles: 9,310,569 +2026-07-26T17:07:52.9144316Z 0:06:24 DEB [archive] - # features: 55,359,217 +2026-07-26T17:07:52.9145459Z 0:06:24 INF [archive] - Finished in 3m18s cpu:13m2s gc:9s avg:3.9 +2026-07-26T17:07:52.9146709Z 0:06:24 INF [archive] - read 1x(4% 7s wait:3m4s done:3s) +2026-07-26T17:07:52.9147824Z 0:06:24 INF [archive] - encode 4x(86% 2m50s done:2s) +2026-07-26T17:07:52.9148941Z 0:06:24 INF [archive] - write 1x(9% 17s wait:2m44s done:2s) +2026-07-26T17:07:52.9152378Z 0:06:24 INF [archive] - Finished in 6m23s cpu:24m35s gc:12s avg:3.8 +2026-07-26T17:07:52.9155398Z 0:06:24 INF [archive] - FINISHED! +2026-07-26T17:07:52.9161937Z 0:06:24 INF [archive] - +2026-07-26T17:07:52.9169121Z 0:06:24 INF [archive] - ---------------------------------------- +2026-07-26T17:07:52.9176101Z 0:06:24 INF [archive] - data errors: +2026-07-26T17:07:52.9182910Z 0:06:24 INF [archive] - render_snap_fix_input 1,001,868 +2026-07-26T17:07:52.9184238Z 0:06:24 INF [archive] - osm_boundary_missing_way 874 +2026-07-26T17:07:52.9190271Z 0:06:24 INF [archive] - osm_multipolygon_missing_way 500 +2026-07-26T17:07:52.9191893Z 0:06:24 INF [archive] - feature_polygon_osm_invalid_multipolygon_empty_after_fix 83 +2026-07-26T17:07:52.9193210Z 0:06:24 INF [archive] - merge_snap_fix_input2 28 +2026-07-26T17:07:52.9194084Z 0:06:24 INF [archive] - merge_snap_fix_input3 17 +2026-07-26T17:07:52.9194958Z 0:06:24 INF [archive] - merge_snap_fix_input 15 +2026-07-26T17:07:52.9201360Z 0:06:24 INF [archive] - osm_boundary_duplicate_member 10 +2026-07-26T17:07:52.9202915Z 0:06:24 INF [archive] - ---------------------------------------- +2026-07-26T17:07:52.9204186Z 0:06:24 INF [archive] - overall 6m23s cpu:24m35s gc:12s avg:3.8 +2026-07-26T17:07:52.9209832Z 0:06:24 INF [archive] - osm_pass1 10s cpu:35s avg:3.6 +2026-07-26T17:07:52.9211379Z 0:06:24 INF [archive] - read 1x(3% 0.3s wait:9s) +2026-07-26T17:07:52.9217258Z 0:06:24 INF [archive] - parse 4x(59% 6s wait:2s) +2026-07-26T17:07:52.9218618Z 0:06:24 INF [archive] - process 1x(58% 6s wait:3s) +2026-07-26T17:07:52.9219841Z 0:06:24 INF [archive] - osm_pass2 2m32s cpu:9m59s gc:2s avg:3.9 +2026-07-26T17:07:52.9225809Z 0:06:24 INF [archive] - read 1x(0% 0.2s wait:1m51s done:40s) +2026-07-26T17:07:52.9227328Z 0:06:24 INF [archive] - process 4x(90% 2m16s) +2026-07-26T17:07:52.9233336Z 0:06:24 INF [archive] - write 1x(10% 15s wait:2m17s) +2026-07-26T17:07:52.9234803Z 0:06:24 INF [archive] - sort 23s cpu:56s gc:2s avg:2.5 +2026-07-26T17:07:52.9240829Z 0:06:24 INF [archive] - worker 1x(47% 11s wait:10s) +2026-07-26T17:07:52.9242113Z 0:06:24 INF [archive] - archive 3m18s cpu:13m2s gc:9s avg:3.9 +2026-07-26T17:07:52.9248055Z 0:06:24 INF [archive] - read 1x(4% 7s wait:3m4s done:3s) +2026-07-26T17:07:52.9249759Z 0:06:24 INF [archive] - encode 4x(86% 2m50s done:2s) +2026-07-26T17:07:52.9256087Z 0:06:24 INF [archive] - write 1x(9% 17s wait:2m44s done:2s) +2026-07-26T17:07:52.9257891Z 0:06:24 INF [archive] - ---------------------------------------- +2026-07-26T17:07:52.9264333Z 0:06:24 INF [archive] - archive 2.3GB +2026-07-26T17:07:52.9276066Z 0:06:24 INF [archive] - features 4.2GB +2026-07-26T17:07:54.9714367Z -rw-r--r-- 1 root root 2.2G Jul 26 17:07 /home/runner/work/Map/Map/artifacts/occumed-argentina.pmtiles +2026-07-26T17:07:54.9715427Z -rw-r--r-- 1 runner runner 92 Jul 26 17:07 /home/runner/work/Map/Map/artifacts/occumed-argentina.pmtiles.sha256 +2026-07-26T17:07:54.9716170Z Created /home/runner/work/Map/Map/artifacts/occumed-argentina.pmtiles +2026-07-26T17:07:54.9717001Z Build the app with: +2026-07-26T17:07:54.9717821Z OCCUMED_PMTILES_URL=__OCCUMED_PUBLIC_ORIGIN__/tiles/occumed-argentina.pmtiles npm run build +2026-07-26T17:07:55.0419311Z Archive exceeds GitHub Release's safe per-file ceiling and must be subdivided: argentina +2026-07-26T17:07:55.0420461Z archive_size_bytes=2333853061 +2026-07-26T17:07:55.0493252Z ##[error]Process completed with exit code 1. +2026-07-26T17:07:55.0648210Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +2026-07-26T17:07:55.0649767Z Post job cleanup. +2026-07-26T17:07:55.1540775Z [command]/usr/bin/git version +2026-07-26T17:07:55.1587232Z git version 2.54.0 +2026-07-26T17:07:55.1628906Z Temporarily overriding HOME='/home/runner/work/_temp/a54dc32f-ecb0-433a-8a89-5ef41c872dcd' before making global git config changes +2026-07-26T17:07:55.1630674Z Adding repository directory to the temporary git global config as a safe directory +2026-07-26T17:07:55.1634811Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +2026-07-26T17:07:55.1679602Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-26T17:07:55.1722412Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-26T17:07:55.2014507Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-07-26T17:07:55.2047683Z http.https://github.com/.extraheader +2026-07-26T17:07:55.2061244Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-07-26T17:07:55.2103144Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-07-26T17:07:55.2397447Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-07-26T17:07:55.2438005Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-07-26T17:07:55.2870629Z Cleaning up orphan processes +2026-07-26T17:07:55.3247090Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/diagnostics/world-first-pass-failures/89818513351.log b/diagnostics/world-first-pass-failures/89818513351.log new file mode 100644 index 00000000..0077fc94 --- /dev/null +++ b/diagnostics/world-first-pass-failures/89818513351.log @@ -0,0 +1,260 @@ +2026-07-26T17:36:27.7095839Z cpus: 4 gc: 5% heap: 1.6G/5.3G direct: 35k postGC: 648M +2026-07-26T17:36:27.7097086Z read( 5%) -> (266/273) -> encode(85% 85% 86% 86%) -> (269/270) -> write(11%) +2026-07-26T17:36:27.7098358Z last tile: 16/39913/21766 (z16 85%) https://onthegomap.github.io/planetiler-demo/#16.5/51.59584/39.2514 +2026-07-26T17:36:37.7237246Z 0:07:47 INF [archive] - features: [ 18M 20% 300k/s ] 6.8G tiles: [ 2.6M 55k/s ] 880M +2026-07-26T17:36:37.7238432Z cpus: 4 gc: 4% heap: 1.5G/5.3G direct: 35k postGC: 622M +2026-07-26T17:36:37.7239227Z read( 3%) -> (266/273) -> encode(86% 91% 89% 85%) -> (269/270) -> write(13%) +2026-07-26T17:36:37.7240215Z last tile: 16/38484/20550 (z16 85%) https://onthegomap.github.io/planetiler-demo/#16.5/55.55816/31.40167 +2026-07-26T17:36:47.7330529Z 0:07:57 INF [archive] - features: [ 21M 23% 262k/s ] 6.8G tiles: [ 3.4M 75k/s ] 1G +2026-07-26T17:36:47.7332103Z cpus: 3.9 gc: 5% heap: 1.6G/5.3G direct: 35k postGC: 647M +2026-07-26T17:36:47.7333249Z read( 5%) -> (266/273) -> encode(88% 81% 85% 80%) -> (269/270) -> write(14%) +2026-07-26T17:36:47.7334611Z last tile: 16/39342/20133 (z16 86%) https://onthegomap.github.io/planetiler-demo/#16.5/56.83245/36.11481 +2026-07-26T17:36:57.7538341Z 0:08:07 INF [archive] - features: [ 25M 27% 436k/s ] 6.8G tiles: [ 3.8M 41k/s ] 1.2G +2026-07-26T17:36:57.7541026Z cpus: 4 gc: 5% heap: 928M/5.3G direct: 35k postGC: 722M +2026-07-26T17:36:57.7542193Z read( 4%) -> (263/273) -> encode(88% 92% 93% 84%) -> (269/270) -> write(11%) +2026-07-26T17:36:57.7543611Z last tile: 16/39599/19837 (z16 86%) https://onthegomap.github.io/planetiler-demo/#16.5/57.71148/37.52655 +2026-07-26T17:37:07.7748405Z 0:08:17 INF [archive] - features: [ 29M 31% 311k/s ] 6.8G tiles: [ 4.5M 67k/s ] 1.3G +2026-07-26T17:37:07.7750294Z cpus: 4 gc: 5% heap: 1.7G/5.3G direct: 35k postGC: 639M +2026-07-26T17:37:07.7751522Z read( 4%) -> (266/273) -> encode(89% 87% 90% 88%) -> (269/270) -> write(13%) +2026-07-26T17:37:07.7752864Z last tile: 16/40461/20252 (z16 86%) https://onthegomap.github.io/planetiler-demo/#16.5/56.47311/42.26166 +2026-07-26T17:37:17.8027742Z 0:08:27 INF [archive] - features: [ 31M 33% 207k/s ] 6.8G tiles: [ 5.1M 65k/s ] 1.4G +2026-07-26T17:37:17.8029317Z cpus: 4 gc: 9% heap: 2.7G/5.3G direct: 35k postGC: 1.5G +2026-07-26T17:37:17.8030216Z read( 8%) -> (263/273) -> encode(79% 78% 75% 76%) -> (269/270) -> write( 7%) +2026-07-26T17:37:17.8031356Z last tile: 16/41408/19463 (z16 86%) https://onthegomap.github.io/planetiler-demo/#16.5/58.7924/47.46368 +2026-07-26T17:37:20.3369844Z 0:08:29 INF [archive:write] - Finished z16 in 1m42s cpu:6m45s gc:5s avg:4, now starting z3 +2026-07-26T17:37:20.3426667Z 0:08:29 INF [archive:write] - Finished z3 in 0s cpu:0s avg:3.8, now starting z4 +2026-07-26T17:37:22.2957735Z 0:08:31 INF [archive:write] - Finished z4 in 2s cpu:8s avg:4, now starting z5 +2026-07-26T17:37:25.3587261Z 0:08:34 WAR [archive:encode] - {x=38 y=21 z=6} 1024kb uncompressed +2026-07-26T17:37:25.5781210Z 0:08:34 INF [archive:write] - Finished z5 in 3s cpu:13s avg:4, now starting z6 +2026-07-26T17:37:25.8163469Z 0:08:35 WAR [archive:encode] - {x=38 y=20 z=6} 1224kb uncompressed +2026-07-26T17:37:27.8157238Z 0:08:37 INF [archive] - features: [ 32M 34% 102k/s ] 6.8G tiles: [ 5.1M 1/s ] 1.4G +2026-07-26T17:37:27.8158578Z cpus: 4 gc: 7% heap: 1.6G/5.3G direct: 745k postGC: 1.3G +2026-07-26T17:37:27.8159667Z read( 0%) -> (263/273) -> encode(84% 85% 84% 80%) -> (269/270) -> write( 0%) +2026-07-26T17:37:27.8160787Z last tile: 6/38/18 (z6 86%) https://onthegomap.github.io/planetiler-demo/#6.5/60.21007/36.5625 +2026-07-26T17:37:30.2087113Z 0:08:39 INF [archive:write] - Finished z6 in 5s cpu:18s avg:4, now starting z7 +2026-07-26T17:37:32.7335565Z 0:08:42 WAR [archive:encode] - {x=77 y=42 z=7} 1086kb uncompressed +2026-07-26T17:37:37.8380259Z 0:08:47 INF [archive] - features: [ 33M 35% 112k/s ] 6.8G tiles: [ 5.1M 3/s ] 1.4G +2026-07-26T17:37:37.8381607Z cpus: 4 gc: 4% heap: 1.7G/5.3G direct: 745k postGC: 941M +2026-07-26T17:37:37.8382673Z read( 0%) -> (251/273) -> encode(91% 89% 90% 91%) -> (269/270) -> write( 0%) +2026-07-26T17:37:37.8383772Z last tile: 7/78/38 (z7 86%) https://onthegomap.github.io/planetiler-demo/#7.5/58.07013/40.78125 +2026-07-26T17:37:37.9780595Z 0:08:47 INF [archive:write] - Finished z7 in 8s cpu:31s avg:4, now starting z8 +2026-07-26T17:37:39.5626264Z 0:08:48 WAR [archive:encode] - {x=154 y=80 z=8} 1184kb uncompressed +2026-07-26T17:37:47.4938524Z 0:08:56 INF [archive:write] - Finished z8 in 10s cpu:38s avg:4, now starting z9 +2026-07-26T17:37:47.8533120Z 0:08:57 INF [archive] - features: [ 34M 37% 134k/s ] 6.8G tiles: [ 5.1M 17/s ] 1.4G +2026-07-26T17:37:47.8535375Z cpus: 4 gc: 3% heap: 1.6G/5.3G direct: 745k postGC: 708M +2026-07-26T17:37:47.8536620Z read( 1%) -> (264/273) -> encode(93% 92% 87% 90%) -> (269/270) -> write( 0%) +2026-07-26T17:37:47.8538018Z last tile: 9/317/164 (z9 85%) https://onthegomap.github.io/planetiler-demo/#9.5/53.95557/43.24219 +2026-07-26T17:37:50.2949317Z 0:08:59 WAR [archive:encode] - {x=309 y=160 z=9} 1359kb uncompressed +2026-07-26T17:37:56.4632404Z 0:09:05 WAR [archive:encode] - {x=309 y=159 z=9} 1071kb uncompressed +2026-07-26T17:37:57.8666186Z 0:09:07 INF [archive] - features: [ 36M 38% 143k/s ] 6.8G tiles: [ 5.1M 29/s ] 1.4G +2026-07-26T17:37:57.8667782Z cpus: 4 gc: 3% heap: 1.2G/5.3G direct: 745k postGC: 716M +2026-07-26T17:37:57.8668894Z read( 2%) -> (266/273) -> encode(93% 90% 90% 91%) -> (269/270) -> write( 0%) +2026-07-26T17:37:57.8670208Z last tile: 9/312/154 (z9 86%) https://onthegomap.github.io/planetiler-demo/#9.5/57.89101/39.72656 +2026-07-26T17:38:00.2372057Z 0:09:09 INF [archive:write] - Finished z9 in 13s cpu:51s avg:4, now starting z10 +2026-07-26T17:38:07.8797156Z 0:09:17 INF [archive] - features: [ 37M 40% 159k/s ] 6.8G tiles: [ 5.1M 78/s ] 1.5G +2026-07-26T17:38:07.8798576Z cpus: 4 gc: 3% heap: 1.3G/5.3G direct: 745k postGC: 726M +2026-07-26T17:38:07.8799898Z read( 3%) -> (266/273) -> encode(89% 93% 91% 91%) -> (269/270) -> write( 0%) +2026-07-26T17:38:07.8801165Z last tile: 10/615/344 (z10 85%) https://onthegomap.github.io/planetiler-demo/#10.5/50.62494/36.38672 +2026-07-26T17:38:17.4524331Z 0:09:26 INF [archive:write] - Finished z10 in 17s cpu:1m8s avg:4, now starting z11 +2026-07-26T17:38:17.8926249Z 0:09:27 INF [archive] - features: [ 38M 41% 118k/s ] 6.8G tiles: [ 5.1M 117/s ] 1.5G +2026-07-26T17:38:17.8927862Z cpus: 4 gc: 2% heap: 695M/5.3G direct: 745k postGC: 737M +2026-07-26T17:38:17.8929053Z read( 2%) -> (266/273) -> encode(90% 91% 92% 93%) -> (269/270) -> write( 0%) +2026-07-26T17:38:17.8930275Z last tile: 11/1253/673 (z11 84%) https://onthegomap.github.io/planetiler-demo/#11.5/52.32188/40.3418 +2026-07-26T17:38:21.9080100Z 0:09:31 WAR [archive:encode] - {x=1238 y=640 z=11} 1157kb uncompressed +2026-07-26T17:38:22.0521212Z 0:09:31 WAR [archive:encode] - {x=1237 y=640 z=11} 1099kb uncompressed +2026-07-26T17:38:27.9119013Z 0:09:37 INF [archive] - features: [ 40M 43% 196k/s ] 6.8G tiles: [ 5.1M 265/s ] 1.5G +2026-07-26T17:38:27.9120329Z cpus: 4 gc: 3% heap: 859M/5.3G direct: 745k postGC: 772M +2026-07-26T17:38:27.9121103Z read( 3%) -> (266/273) -> encode(89% 92% 92% 90%) -> (269/270) -> write( 1%) +2026-07-26T17:38:27.9122256Z last tile: 11/1204/656 (z11 85%) https://onthegomap.github.io/planetiler-demo/#11.5/54.11091/31.72852 +2026-07-26T17:38:37.9210545Z 0:09:47 INF [archive] - features: [ 42M 45% 130k/s ] 6.8G tiles: [ 5.1M 222/s ] 1.6G +2026-07-26T17:38:37.9211618Z cpus: 4 gc: 2% heap: 810M/5.3G direct: 745k postGC: 734M +2026-07-26T17:38:37.9212384Z read( 2%) -> (266/273) -> encode(93% 90% 91% 93%) -> (269/270) -> write( 0%) +2026-07-26T17:38:37.9213343Z last tile: 11/1269/625 (z11 86%) https://onthegomap.github.io/planetiler-demo/#11.5/57.18387/43.1543 +2026-07-26T17:38:38.7723336Z 0:09:48 INF [archive:write] - Finished z11 in 21s cpu:1m25s avg:4, now starting z12 +2026-07-26T17:38:44.5804502Z 0:09:53 WAR [archive:encode] - {x=2476 y=1280 z=12} 1058kb uncompressed +2026-07-26T17:38:47.9321881Z 0:09:57 INF [archive] - features: [ 44M 47% 250k/s ] 6.8G tiles: [ 5.1M 853/s ] 1.6G +2026-07-26T17:38:47.9323008Z cpus: 4 gc: 3% heap: 877M/5.3G direct: 745k postGC: 839M +2026-07-26T17:38:47.9323774Z read( 4%) -> (263/273) -> encode(91% 92% 92% 90%) -> (269/270) -> write( 1%) +2026-07-26T17:38:47.9324753Z last tile: 12/2461/1324 (z12 85%) https://onthegomap.github.io/planetiler-demo/#12.5/53.51418/36.34277 +2026-07-26T17:38:57.9448674Z 0:10:07 INF [archive] - features: [ 46M 49% 208k/s ] 6.8G tiles: [ 5.2M 890/s ] 1.7G +2026-07-26T17:38:57.9450087Z cpus: 4 gc: 2% heap: 2G/5.3G direct: 745k postGC: 815M +2026-07-26T17:38:57.9455690Z read( 3%) -> (266/273) -> encode(93% 94% 93% 93%) -> (269/270) -> write( 1%) +2026-07-26T17:38:57.9457400Z last tile: 12/2483/1267 (z12 86%) https://onthegomap.github.io/planetiler-demo/#12.5/56.38958/38.27637 +2026-07-26T17:39:04.3973064Z 0:10:13 INF [archive:write] - Finished z12 in 26s cpu:1m42s avg:4, now starting z13 +2026-07-26T17:39:07.9767021Z 0:10:17 INF [archive] - features: [ 49M 52% 241k/s ] 6.8G tiles: [ 5.2M 1.9k/s ] 1.8G +2026-07-26T17:39:07.9768389Z cpus: 4 gc: 3% heap: 892M/5.3G direct: 745k postGC: 2G +2026-07-26T17:39:07.9769524Z read( 3%) -> (266/273) -> encode(93% 92% 92% 92%) -> (269/270) -> write( 1%) +2026-07-26T17:39:07.9770637Z last tile: 13/4996/2649 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/53.50112/39.57275 +2026-07-26T17:39:17.9952939Z 0:10:27 INF [archive] - features: [ 53M 57% 472k/s ] 6.8G tiles: [ 5.2M 2.1k/s ] 1.9G +2026-07-26T17:39:17.9954205Z cpus: 4 gc: 4% heap: 1G/5.3G direct: 745k postGC: 875M +2026-07-26T17:39:17.9955202Z read( 6%) -> (266/273) -> encode(90% 89% 91% 89%) -> (269/270) -> write( 2%) +2026-07-26T17:39:17.9956316Z last tile: 13/4909/2744 (z13 85%) https://onthegomap.github.io/planetiler-demo/#13.5/50.94458/35.74951 +2026-07-26T17:39:28.0084490Z 0:10:37 INF [archive] - features: [ 57M 60% 311k/s ] 6.8G tiles: [ 5.2M 2.8k/s ] 2G +2026-07-26T17:39:28.0085837Z cpus: 4 gc: 3% heap: 1G/5.3G direct: 745k postGC: 875M +2026-07-26T17:39:28.0087117Z read( 4%) -> (265/273) -> encode(91% 92% 93% 94%) -> (269/270) -> write( 2%) +2026-07-26T17:39:28.0088372Z last tile: 13/4931/2496 (z13 86%) https://onthegomap.github.io/planetiler-demo/#13.5/57.31466/36.71631 +2026-07-26T17:39:37.5706207Z 0:10:46 INF [archive:write] - Finished z13 in 33s cpu:2m12s gc:1s avg:4, now starting z14 +2026-07-26T17:39:38.0449430Z 0:10:47 INF [archive] - features: [ 60M 64% 374k/s ] 6.8G tiles: [ 5.3M 3.3k/s ] 2.1G +2026-07-26T17:39:38.0450887Z cpus: 4 gc: 4% heap: 1.6G/5.3G direct: 745k postGC: 1.6G +2026-07-26T17:39:38.0452122Z read( 5%) -> (265/273) -> encode(92% 91% 92% 88%) -> (269/270) -> write( 2%) +2026-07-26T17:39:38.0453455Z last tile: 14/10039/5532 (z14 84%) https://onthegomap.github.io/planetiler-demo/#14.5/50.33845/40.59448 +2026-07-26T17:39:48.0617711Z 0:10:57 INF [archive] - features: [ 65M 69% 463k/s ] 6.8G tiles: [ 5.3M 8.4k/s ] 2.3G +2026-07-26T17:39:48.0618961Z cpus: 4 gc: 4% heap: 1.3G/5.3G direct: 745k postGC: 946M +2026-07-26T17:39:48.0619735Z read( 6%) -> (266/273) -> encode(90% 86% 90% 91%) -> (269/270) -> write( 4%) +2026-07-26T17:39:48.0620718Z last tile: 14/9892/5125 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/55.70854/37.3645 +2026-07-26T17:39:58.0746936Z 0:11:07 INF [archive] - features: [ 69M 73% 392k/s ] 6.8G tiles: [ 5.4M 6.8k/s ] 2.4G +2026-07-26T17:39:58.0748101Z cpus: 4 gc: 4% heap: 1.3G/5.3G direct: 745k postGC: 823M +2026-07-26T17:39:58.0748877Z read( 5%) -> (264/273) -> encode(90% 88% 90% 90%) -> (267/270) -> write( 3%) +2026-07-26T17:39:58.0749854Z last tile: 14/9859/5516 (z14 85%) https://onthegomap.github.io/planetiler-demo/#14.5/50.5623/36.6394 +2026-07-26T17:40:08.0870144Z 0:11:17 INF [archive] - features: [ 73M 77% 379k/s ] 6.8G tiles: [ 5.5M 9.7k/s ] 2.5G +2026-07-26T17:40:08.0871467Z cpus: 4 gc: 4% heap: 1.1G/5.3G direct: 745k postGC: 1G +2026-07-26T17:40:08.0872365Z read( 5%) -> (266/273) -> encode(89% 90% 91% 88%) -> (269/270) -> write( 4%) +2026-07-26T17:40:08.0873452Z last tile: 14/9926/5101 (z14 86%) https://onthegomap.github.io/planetiler-demo/#14.5/56.00452/38.11157 +2026-07-26T17:40:16.2063768Z 0:11:25 INF [archive:write] - Finished z14 in 39s cpu:2m33s gc:2s avg:4, now starting z15 +2026-07-26T17:40:18.0965510Z 0:11:27 INF [archive] - features: [ 76M 81% 333k/s ] 6.8G tiles: [ 5.7M 15k/s ] 2.7G +2026-07-26T17:40:18.0967749Z cpus: 4 gc: 4% heap: 1.9G/5.3G direct: 745k postGC: 865M +2026-07-26T17:40:18.0968751Z read( 4%) -> (266/273) -> encode(89% 91% 91% 92%) -> (269/270) -> write( 5%) +2026-07-26T17:40:18.0969891Z last tile: 15/19968/10938 (z15 84%) https://onthegomap.github.io/planetiler-demo/#15.5/51.21721/39.38049 +2026-07-26T17:40:28.1137456Z 0:11:37 INF [archive] - features: [ 79M 85% 344k/s ] 6.8G tiles: [ 5.9M 26k/s ] 2.8G +2026-07-26T17:40:28.1139173Z cpus: 4 gc: 4% heap: 1.4G/5.3G direct: 745k postGC: 1.1G +2026-07-26T17:40:28.1140316Z read( 5%) -> (266/273) -> encode(88% 88% 88% 86%) -> (269/270) -> write( 8%) +2026-07-26T17:40:28.1141593Z last tile: 15/19935/10403 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/54.75316/39.01794 +2026-07-26T17:40:38.1308014Z 0:11:47 INF [archive] - features: [ 84M 89% 456k/s ] 6.8G tiles: [ 6.1M 19k/s ] 3G +2026-07-26T17:40:38.1309494Z cpus: 4 gc: 4% heap: 1.8G/5.3G direct: 745k postGC: 917M +2026-07-26T17:40:38.1310480Z read( 6%) -> (264/273) -> encode(89% 89% 88% 90%) -> (268/270) -> write( 6%) +2026-07-26T17:40:38.1311610Z last tile: 15/19644/10968 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/51.0103/35.82092 +2026-07-26T17:40:48.1399109Z 0:11:57 INF [archive] - features: [ 87M 93% 316k/s ] 6.8G tiles: [ 6.3M 21k/s ] 3.1G +2026-07-26T17:40:48.1400247Z cpus: 4 gc: 4% heap: 1.3G/5.3G direct: 745k postGC: 873M +2026-07-26T17:40:48.1401030Z read( 3%) -> (264/273) -> encode(92% 88% 91% 89%) -> (269/270) -> write( 6%) +2026-07-26T17:40:48.1402024Z last tile: 15/19221/10267 (z15 85%) https://onthegomap.github.io/planetiler-demo/#15.5/55.60628/31.17371 +2026-07-26T17:40:58.1688574Z 0:12:07 INF [archive] - features: [ 91M 97% 390k/s ] 6.8G tiles: [ 6.6M 25k/s ] 3.3G +2026-07-26T17:40:58.1690287Z cpus: 4 gc: 4% heap: 969M/5.3G direct: 745k postGC: 1G +2026-07-26T17:40:58.1691463Z read( 6%) -> (266/273) -> encode(89% 87% 87% 84%) -> (269/270) -> write( 7%) +2026-07-26T17:40:58.1693037Z last tile: 15/19910/10137 (z15 86%) https://onthegomap.github.io/planetiler-demo/#15.5/56.40478/38.74329 +2026-07-26T17:41:07.9485938Z 0:12:17 INF [archive:write] - Finished z15 in 52s cpu:3m25s gc:2s avg:4 +2026-07-26T17:41:07.9510502Z 0:12:17 INF [archive:write] - Tile data was not written in order, sorting entries... +2026-07-26T17:41:07.9850997Z 0:12:17 INF [archive:write] - Done sorting. +2026-07-26T17:41:07.9851839Z 0:12:17 INF [archive:write] - Building directories with 4096 entries per leaf, attempt 1... +2026-07-26T17:41:08.1721121Z 0:12:17 INF [archive] - features: [ 94M 100% 289k/s ] 6.8G tiles: [ 7M 38k/s ] 3.4G +2026-07-26T17:41:08.1721854Z cpus: 3.9 gc: 3% heap: 1.8G/5.3G direct: 745k postGC: 829M +2026-07-26T17:41:08.1722390Z read( -%) -> (0/273) -> encode( -% -% -% -%) -> (0/270) -> write(11%) +2026-07-26T17:41:08.1723037Z last tile: 15/20704/9731 (z15 86%) https://onthegomap.github.io/planetiler-demo/#15.5/58.79382/47.46643 +2026-07-26T17:41:08.8736646Z 0:12:18 INF [archive:write] - Built directories with 1433 leaves, 5399B root directory +2026-07-26T17:41:08.9404921Z 0:12:18 INF [archive:write] - Writing metadata and leaf directories... +2026-07-26T17:41:08.9465858Z 0:12:18 INF [archive:write] - Writing header... +2026-07-26T17:41:08.9472952Z 0:12:18 INF [archive:write] - # addressed tiles: 7032110 +2026-07-26T17:41:08.9480998Z 0:12:18 INF [archive:write] - # of tile entries: 5866744 +2026-07-26T17:41:08.9482218Z 0:12:18 INF [archive:write] - # of tile contents: 5475439 +2026-07-26T17:41:08.9483337Z 0:12:18 INF [archive:write] - Root directory: 5.3kB +2026-07-26T17:41:08.9484158Z 0:12:18 INF [archive:write] - # leaves: 1433 +2026-07-26T17:41:08.9485503Z 0:12:18 INF [archive:write] - Leaf directories: 11MB +2026-07-26T17:41:08.9486280Z 0:12:18 INF [archive:write] - Avg leaf size: 8.1kB +2026-07-26T17:41:08.9487347Z 0:12:18 INF [archive:write] - Total dir bytes: 11MB +2026-07-26T17:41:08.9488232Z 0:12:18 INF [archive:write] - Average bytes per addressed tile: 1.6618053471859797 +2026-07-26T17:41:08.9522548Z 0:12:18 INF [archive] - features: [ 94M 100% 0/s ] 6.8G tiles: [ 7M 0/s ] 3.4G +2026-07-26T17:41:08.9524921Z cpus: 1.3 gc: 6% heap: 815M/5.3G direct: 16k postGC: 854M +2026-07-26T17:41:08.9526144Z read( -%) -> (0/273) -> encode( -% -% -% -%) -> (0/270) -> write( -%) +2026-07-26T17:41:08.9527811Z last tile: 15/20704/9731 (z15 86%) https://onthegomap.github.io/planetiler-demo/#15.5/58.79382/47.46643 +2026-07-26T17:41:08.9536673Z 0:12:18 DEB [archive] - Tile stats: +2026-07-26T17:41:08.9600425Z 0:12:18 DEB [archive] - Biggest tiles (gzipped) +2026-07-26T17:41:08.9601330Z 1. 6/38/20 (729k) https://onthegomap.github.io/planetiler-demo/#6.5/54.12968/36.5625 (landuse:400k) +2026-07-26T17:41:08.9602396Z 2. 7/77/42 (702k) https://onthegomap.github.io/planetiler-demo/#7.5/51.60962/37.96875 (landuse:772k) +2026-07-26T17:41:08.9603536Z 3. 9/309/160 (695k) https://onthegomap.github.io/planetiler-demo/#9.5/55.57784/37.61719 (transportation:718k) +2026-07-26T17:41:08.9604706Z 4. 8/154/80 (650k) https://onthegomap.github.io/planetiler-demo/#8.5/55.37709/37.26562 (landuse:439k) +2026-07-26T17:41:08.9605797Z 5. 6/38/21 (616k) https://onthegomap.github.io/planetiler-demo/#6.5/50.70264/36.5625 (landuse:742k) +2026-07-26T17:41:08.9607180Z 6. 7/77/40 (596k) https://onthegomap.github.io/planetiler-demo/#7.5/54.9695/37.96875 (landuse:378k) +2026-07-26T17:41:08.9608291Z 7. 7/78/42 (583k) https://onthegomap.github.io/planetiler-demo/#7.5/51.60962/40.78125 (landuse:588k) +2026-07-26T17:41:08.9609378Z 8. 8/154/79 (569k) https://onthegomap.github.io/planetiler-demo/#8.5/56.16803/37.26562 (landuse:401k) +2026-07-26T17:41:08.9610537Z 9. 9/309/159 (567k) https://onthegomap.github.io/planetiler-demo/#9.5/55.9733/37.61719 (transportation:491k) +2026-07-26T17:41:08.9611692Z 10. 6/38/19 (555k) https://onthegomap.github.io/planetiler-demo/#6.5/57.29516/36.5625 (water_name:286k) +2026-07-26T17:41:08.9631278Z 0:12:18 INF [archive] - Other tiles with large layers +2026-07-26T17:41:08.9632289Z 13/4822/2685 (304k) https://onthegomap.github.io/planetiler-demo/#13.5/52.54963/31.92627 (building:304k) +2026-07-26T17:41:08.9633151Z 11/1238/640 (634k) https://onthegomap.github.io/planetiler-demo/#11.5/55.72708/37.70508 (poi:634k) +2026-07-26T17:41:08.9772963Z 0:12:18 DEB [archive] - Max tile sizes +2026-07-26T17:41:08.9774049Z z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15 z16 all +2026-07-26T17:41:08.9776672Z boundary 16k 22k 28k 84k 35k 37k 35k 21k 14k 10k 5.3k 2.5k 1.2k 957 84k +2026-07-26T17:41:08.9780223Z landcover 39k 98k  228k  285k  209k  148k 84k 50k 33k 22k 21k 19k 10k 5.5k  285k +2026-07-26T17:41:08.9781580Z place 1.6k 1.1k 3.1k 2.1k 7.5k 4.1k 10k 10k 3.6k 1.7k 987 903 427 314 10k +2026-07-26T17:41:08.9784739Z transportation 0 32k 57k  123k  132k  430k  718k  466k  360k  468k  386k  120k 46k 19k  718k +2026-07-26T17:41:08.9786060Z water 0 9.1k 23k 42k 43k 34k 30k 23k 26k 30k 24k 17k 9k 5.8k 43k +2026-07-26T17:41:08.9787145Z park 0 0 42k 52k 30k 32k 45k 30k 28k 16k 12k 10k 5.5k 1.8k 52k +2026-07-26T17:41:08.9788176Z water_name 0 0  211k  344k  194k  109k 68k 29k 14k 6.2k 3k 2k 1.3k 840  344k +2026-07-26T17:41:08.9790213Z landuse 0 0 0  742k  772k  439k  395k  193k  102k 65k 39k 17k 12k 5.5k  772k +2026-07-26T17:41:08.9791952Z waterway 0 0 0 47k 20k 10k 5.7k 15k 12k 4.6k 2.5k 1.3k 864 677 47k +2026-07-26T17:41:08.9792890Z transportation_name 0 0 0 0 8.5k 21k 21k 64k 33k 47k 17k 6.4k 3.4k 1.5k 64k +2026-07-26T17:41:08.9793812Z aerodrome_label 0 0 0 0 0 1.3k 634 394 262 236 236 212 212 212 1.3k +2026-07-26T17:41:08.9795921Z mountain_peak 0 0 0 0 0 4.5k 3.7k 3.1k 1.5k 1.2k 906 906 906 582 4.5k +2026-07-26T17:41:08.9796963Z aeroway 0 0 0 0 0 0 7.4k 8.2k 13k 14k 14k 13k 7.8k 4.4k 14k +2026-07-26T17:41:08.9798153Z poi 0 0 0 0 0 0 0 0  634k  468k  214k 64k 20k 13k  634k +2026-07-26T17:41:08.9800385Z building 0 0 0 0 0 0 0 0 0 0  304k  171k 69k 30k  304k +2026-07-26T17:41:08.9801349Z housenumber 0 0 0 0 0 0 0 0 0 0 0 0 0 13k 13k +2026-07-26T17:41:08.9802249Z full tile 57k 133k 489k 1.2M 1.1M 1.2M 1.3M 858k 1.1M 1M 823k 252k 82k 36k 1.3M +2026-07-26T17:41:08.9805943Z gzipped 30k 74k 243k 729k 702k 650k 695k 426k 527k 481k 397k 130k 45k 18k 729k +2026-07-26T17:41:08.9807364Z 0:12:18 DEB [archive] - Max tile: 1.3M (gzipped: 729k) +2026-07-26T17:41:08.9808381Z 0:12:18 DEB [archive] - Avg tile: 304k (gzipped: 167k) using weighted average based on OSM traffic +2026-07-26T17:41:08.9809297Z 0:12:18 DEB [archive] - # tiles: 7,032,110 +2026-07-26T17:41:08.9809970Z 0:12:18 DEB [archive] - # features: 94,483,060 +2026-07-26T17:41:08.9811712Z 0:12:18 INF [archive] - Finished in 5m32s cpu:21m54s gc:14s avg:4 +2026-07-26T17:41:08.9812554Z 0:12:18 INF [archive] - read 1x(4% 13s wait:5m8s done:6s) +2026-07-26T17:41:08.9814564Z 0:12:18 INF [archive] - encode 4x(87% 4m50s done:2s) +2026-07-26T17:41:08.9816340Z 0:12:18 INF [archive] - write 1x(5% 17s wait:4m59s done:1s) +2026-07-26T17:41:08.9817642Z 0:12:18 INF [archive] - Finished in 12m17s cpu:47m28s gc:22s avg:3.9 +2026-07-26T17:41:08.9818353Z 0:12:18 INF [archive] - FINISHED! +2026-07-26T17:41:08.9821365Z 0:12:18 INF [archive] - +2026-07-26T17:41:08.9821957Z 0:12:18 INF [archive] - ---------------------------------------- +2026-07-26T17:41:08.9822596Z 0:12:18 INF [archive] - data errors: +2026-07-26T17:41:08.9827745Z 0:12:18 INF [archive] - render_snap_fix_input 2,868,933 +2026-07-26T17:41:08.9831543Z 0:12:18 INF [archive] - osm_multipolygon_missing_way 343 +2026-07-26T17:41:08.9833951Z 0:12:18 INF [archive] - osm_boundary_missing_way 151 +2026-07-26T17:41:08.9834957Z 0:12:18 INF [archive] - merge_snap_fix_input 43 +2026-07-26T17:41:08.9835642Z 0:12:18 INF [archive] - merge_snap_fix_input2 14 +2026-07-26T17:41:08.9844928Z 0:12:18 INF [archive] - feature_polygon_osm_invalid_multipolygon_empty_after_fix 12 +2026-07-26T17:41:08.9846082Z 0:12:18 INF [archive] - render_snap_fix_input2 8 +2026-07-26T17:41:08.9849869Z 0:12:18 INF [archive] - merge_snap_fix_input3 7 +2026-07-26T17:41:08.9851291Z 0:12:18 INF [archive] - render_snap_fix_input3 3 +2026-07-26T17:41:08.9853141Z 0:12:18 INF [archive] - osm_multipolygon_duplicate_member 3 +2026-07-26T17:41:08.9854148Z 0:12:18 INF [archive] - feature_centroid_osm_invalid_multipolygon_empty_after_fix 1 +2026-07-26T17:41:08.9857094Z 0:12:18 INF [archive] - ---------------------------------------- +2026-07-26T17:41:08.9866114Z 0:12:18 INF [archive] - overall 12m17s cpu:47m28s gc:22s avg:3.9 +2026-07-26T17:41:08.9867505Z 0:12:18 INF [archive] - osm_pass1 17s cpu:1m2s avg:3.7 +2026-07-26T17:41:08.9871788Z 0:12:18 INF [archive] - read 1x(2% 0.4s wait:16s) +2026-07-26T17:41:08.9874194Z 0:12:18 INF [archive] - parse 4x(65% 11s wait:3s) +2026-07-26T17:41:08.9876564Z 0:12:18 INF [archive] - process 1x(56% 9s wait:5s) +2026-07-26T17:41:08.9878505Z 0:12:18 INF [archive] - osm_pass2 5m47s cpu:22m52s gc:5s avg:3.9 +2026-07-26T17:41:08.9883225Z 0:12:18 INF [archive] - read 1x(0% 0.4s wait:5m33s done:14s) +2026-07-26T17:41:08.9885547Z 0:12:18 INF [archive] - process 4x(92% 5m21s) +2026-07-26T17:41:08.9888720Z 0:12:18 INF [archive] - write 1x(8% 28s wait:5m19s) +2026-07-26T17:41:08.9891562Z 0:12:18 INF [archive] - sort 40s cpu:1m38s gc:3s avg:2.4 +2026-07-26T17:41:08.9894645Z 0:12:18 INF [archive] - worker 1x(46% 19s wait:18s) +2026-07-26T17:41:08.9897757Z 0:12:18 INF [archive] - archive 5m32s cpu:21m54s gc:14s avg:4 +2026-07-26T17:41:08.9902623Z 0:12:18 INF [archive] - read 1x(4% 13s wait:5m8s done:6s) +2026-07-26T17:41:08.9905237Z 0:12:18 INF [archive] - encode 4x(87% 4m50s done:2s) +2026-07-26T17:41:08.9907683Z 0:12:18 INF [archive] - write 1x(5% 17s wait:4m59s done:1s) +2026-07-26T17:41:08.9909739Z 0:12:18 INF [archive] - ---------------------------------------- +2026-07-26T17:41:08.9915089Z 0:12:18 INF [archive] - archive 3.4GB +2026-07-26T17:41:08.9920546Z 0:12:18 INF [archive] - features 6.8GB +2026-07-26T17:41:12.3748029Z -rw-r--r-- 1 root root 3.3G Jul 26 17:41 /home/runner/work/Map/Map/artifacts/occumed-central-fed-district.pmtiles +2026-07-26T17:41:12.3750111Z -rw-r--r-- 1 runner runner 103 Jul 26 17:41 /home/runner/work/Map/Map/artifacts/occumed-central-fed-district.pmtiles.sha256 +2026-07-26T17:41:12.3752376Z Created /home/runner/work/Map/Map/artifacts/occumed-central-fed-district.pmtiles +2026-07-26T17:41:12.3752978Z Build the app with: +2026-07-26T17:41:12.3753604Z OCCUMED_PMTILES_URL=__OCCUMED_PUBLIC_ORIGIN__/tiles/occumed-central-fed-district.pmtiles npm run build +2026-07-26T17:41:12.5185272Z Archive exceeds GitHub Release's safe per-file ceiling and must be subdivided: central-fed-district +2026-07-26T17:41:12.5186379Z archive_size_bytes=3481109959 +2026-07-26T17:41:12.5200676Z ##[error]Process completed with exit code 1. +2026-07-26T17:41:12.5363316Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ +2026-07-26T17:41:12.5364918Z Post job cleanup. +2026-07-26T17:41:12.6376154Z [command]/usr/bin/git version +2026-07-26T17:41:12.6435893Z git version 2.54.0 +2026-07-26T17:41:12.6488529Z Temporarily overriding HOME='/home/runner/work/_temp/3e1b84cb-548a-4b0d-ae78-909bc24f48d6' before making global git config changes +2026-07-26T17:41:12.6490023Z Adding repository directory to the temporary git global config as a safe directory +2026-07-26T17:41:12.6495575Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/Map/Map +2026-07-26T17:41:12.6548340Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-26T17:41:12.6598985Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-26T17:41:12.6938079Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-07-26T17:41:12.6979411Z http.https://github.com/.extraheader +2026-07-26T17:41:12.6993820Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-07-26T17:41:12.7030698Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-07-26T17:41:12.7349634Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-07-26T17:41:12.7417371Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-07-26T17:41:12.8038293Z Cleaning up orphan processes +2026-07-26T17:41:12.8410735Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/diagnostics/world-first-pass-failures/summary.json b/diagnostics/world-first-pass-failures/summary.json new file mode 100644 index 00000000..fd796919 --- /dev/null +++ b/diagnostics/world-first-pass-failures/summary.json @@ -0,0 +1,27 @@ +{ + "capturedAt": "2026-07-26T17:53:13.237Z", + "runId": "30211467213", + "totalJobsObserved": 525, + "completedSuccessCount": 99, + "failedCount": 4, + "inProgressCount": 6, + "queuedCount": 415, + "failures": [ + { + "id": 89818513156, + "name": "build-bucket-5 (alps, alps, Alps, europe, https://download.geofabrik.de/europe/alps-latest.osm.pb..." + }, + { + "id": 89818513320, + "name": "build-bucket-3 (argentina, argentina, Argentina, south-america, https://download.geofabrik.de/sou..." + }, + { + "id": 89818513351, + "name": "build-bucket-0 (central-fed-district, central-fed-district, Central Federal District, central-fed..." + }, + { + "id": 89818513388, + "name": "build-bucket-3 (britain-and-ireland, britain-and-ireland, Britain and Ireland, europe, https://do..." + } + ] +} diff --git a/diagnostics/world-instant-status.json b/diagnostics/world-instant-status.json new file mode 100644 index 00000000..d4e74c8a --- /dev/null +++ b/diagnostics/world-instant-status.json @@ -0,0 +1,26 @@ +{ + "capturedAt": "2026-07-26T22:08:03.6015850Z", + "repair": { + "id": "30222171809", + "url": "https://github.com/Occumed79/Map/actions/runs/30222171809", + "status": "queued", + "conclusion": null, + "headSha": "ff609ccf225ea66f93ca9b4cb94f240e022a8b65", + "createdAt": "2026-07-26T21:58:28Z", + "updatedAt": "2026-07-26T22:01:37Z" + }, + "planStatus": "completed", + "planConclusion": "success", + "totalBuildJobsObserved": 414, + "successfulBuildJobs": 2, + "failedBuildJobs": 0, + "inProgressBuildJobs": 7, + "queuedBuildJobs": 405, + "cancelledBuildJobs": 0, + "manifestStatus": null, + "manifestConclusion": null, + "totalReleaseAssetCount": 329, + "totalReleasePmtilesCount": 317, + "remainingReleaseCapacity": 671, + "failures": [] +} diff --git a/diagnostics/world-instant-status.trigger b/diagnostics/world-instant-status.trigger new file mode 100644 index 00000000..1d4af7ef --- /dev/null +++ b/diagnostics/world-instant-status.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-26T22:09:00Z +purpose=confirm_missing_only_repair_and_release_growth diff --git a/diagnostics/world-inventory-repair-state.json b/diagnostics/world-inventory-repair-state.json new file mode 100644 index 00000000..131e3da0 --- /dev/null +++ b/diagnostics/world-inventory-repair-state.json @@ -0,0 +1,19 @@ +{ + "capturedAt": "2026-07-26T21:40:13.180Z", + "inventory": { + "id": "30221460199", + "url": "https://github.com/Occumed79/Map/actions/runs/30221460199", + "status": "completed", + "conclusion": "success", + "createdAt": "2026-07-26T21:37:24Z", + "updatedAt": "2026-07-26T21:38:34Z" + }, + "missingRepair": { + "id": "30221065995", + "url": "https://github.com/Occumed79/Map/actions/runs/30221065995", + "status": "completed", + "conclusion": "failure", + "createdAt": "2026-07-26T21:26:08Z", + "updatedAt": "2026-07-26T21:27:25Z" + } +} diff --git a/diagnostics/world-missing-repair-status.json b/diagnostics/world-missing-repair-status.json new file mode 100644 index 00000000..e21f3baa --- /dev/null +++ b/diagnostics/world-missing-repair-status.json @@ -0,0 +1,20 @@ +{ + "capturedAt": "2026-07-27T02:00:38.873Z", + "runId": "30231080611", + "runUrl": "https://github.com/Occumed79/Map/actions/runs/30231080611", + "headSha": "c456df1169dc3546549be9246faa3b92e0f94593", + "status": "pending", + "conclusion": null, + "planStatus": null, + "planConclusion": null, + "totalBuildJobsObserved": 0, + "successfulBuildJobs": 0, + "failedBuildJobs": 0, + "inProgressBuildJobs": 0, + "queuedBuildJobs": 0, + "cancelledBuildJobs": 0, + "skippedBuildJobs": 0, + "manifestStatus": null, + "manifestConclusion": null, + "failures": [] +} diff --git a/diagnostics/world-release-audit-v2.trigger b/diagnostics/world-release-audit-v2.trigger new file mode 100644 index 00000000..a084e998 --- /dev/null +++ b/diagnostics/world-release-audit-v2.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-27T12:00:00Z +purpose=verify_pinned_zero_missing_manifest_and_release_metadata diff --git a/diagnostics/world-release-audit.trigger b/diagnostics/world-release-audit.trigger new file mode 100644 index 00000000..c3e0aca1 --- /dev/null +++ b/diagnostics/world-release-audit.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-26T21:31:00Z +purpose=cancel_blind_repair_and_audit_every_published_canonical_pmtiles_asset diff --git a/diagnostics/world-release-audit/final-verification.json b/diagnostics/world-release-audit/final-verification.json new file mode 100644 index 00000000..22a85a77 --- /dev/null +++ b/diagnostics/world-release-audit/final-verification.json @@ -0,0 +1,25 @@ +{ + "capturedAt": "2026-07-27T12:03:31.589Z", + "releaseTag": "occumed-world-v1", + "pinnedCanonicalShardCount": 754, + "releaseAssetCount": 755, + "publishedCanonicalCount": 754, + "missingCanonicalCount": 0, + "zeroSizeCanonicalCount": 0, + "extraPmtilesAssetCount": 0, + "manifestMissingRegionCount": 0, + "manifestPlannedRegionCount": 754, + "manifestAvailableRegionCount": 754, + "manifestRegionCount": 754, + "absentFromManifest": [], + "unexpectedInManifest": [], + "missingManifestIds": [], + "unexpectedManifestIds": [], + "regionMismatches": [], + "structuralErrors": [], + "missing": [], + "zeroSize": [], + "extraPmtilesAssets": [], + "binaryRangeAndRenderValidation": "deferred_to_fresno_runtime_browser_validation", + "passed": true +} diff --git a/diagnostics/world-release-cleanup-status.json b/diagnostics/world-release-cleanup-status.json new file mode 100644 index 00000000..8ec54644 --- /dev/null +++ b/diagnostics/world-release-cleanup-status.json @@ -0,0 +1,11 @@ +{ + "capturedAt": "2026-07-26T21:57:19.948Z", + "cleanup": { + "id": "30222072282", + "url": "https://github.com/Occumed79/Map/actions/runs/30222072282", + "status": "in_progress", + "conclusion": null, + "createdAt": "2026-07-26T21:55:30Z", + "updatedAt": "2026-07-26T21:56:25Z" + } +} diff --git a/diagnostics/world-release-cleanup.trigger b/diagnostics/world-release-cleanup.trigger new file mode 100644 index 00000000..a7786b41 --- /dev/null +++ b/diagnostics/world-release-cleanup.trigger @@ -0,0 +1,3 @@ +requested_at=2026-07-26T21:55:00Z +purpose=retain_only_canonical_nonzero_pmtiles_before_missing_only_repair +canonical_shards=724 diff --git a/diagnostics/world-release-cleanup/missing-only-plan.json b/diagnostics/world-release-cleanup/missing-only-plan.json new file mode 100644 index 00000000..98d9eee4 --- /dev/null +++ b/diagnostics/world-release-cleanup/missing-only-plan.json @@ -0,0 +1,6643 @@ +{ + "include": [ + { + "id": "argentina--r1-c1", + "slug": "argentina--r1-c1", + "name": "Argentina 1.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/argentina-latest.osm.pbf", + "extract_bbox": "-73.61453,-55.68296,-63.624935,-38.704355", + "source_region_id": "argentina", + "source_size_bytes": 425376127, + "west": -73.61453, + "south": -55.68296, + "east": -63.624935, + "north": -38.704355, + "asset_name": "occumed-argentina--r1-c1.pmtiles", + "metadata_name": "occumed-argentina--r1-c1.json" + }, + { + "id": "argentina--r1-c2", + "slug": "argentina--r1-c2", + "name": "Argentina 1.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/argentina-latest.osm.pbf", + "extract_bbox": "-63.624935,-55.68296,-53.63534,-38.704355", + "source_region_id": "argentina", + "source_size_bytes": 425376127, + "west": -63.624935, + "south": -55.68296, + "east": -53.63534, + "north": -38.704355, + "asset_name": "occumed-argentina--r1-c2.pmtiles", + "metadata_name": "occumed-argentina--r1-c2.json" + }, + { + "id": "argentina--r2-c1", + "slug": "argentina--r2-c1", + "name": "Argentina 2.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/argentina-latest.osm.pbf", + "extract_bbox": "-73.61453,-38.704355,-63.624935,-21.72575", + "source_region_id": "argentina", + "source_size_bytes": 425376127, + "west": -73.61453, + "south": -38.704355, + "east": -63.624935, + "north": -21.72575, + "asset_name": "occumed-argentina--r2-c1.pmtiles", + "metadata_name": "occumed-argentina--r2-c1.json" + }, + { + "id": "argentina--r2-c2", + "slug": "argentina--r2-c2", + "name": "Argentina 2.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/argentina-latest.osm.pbf", + "extract_bbox": "-63.624935,-38.704355,-53.63534,-21.72575", + "source_region_id": "argentina", + "source_size_bytes": 425376127, + "west": -63.624935, + "south": -38.704355, + "east": -53.63534, + "north": -21.72575, + "asset_name": "occumed-argentina--r2-c2.pmtiles", + "metadata_name": "occumed-argentina--r2-c2.json" + }, + { + "id": "austria--r1-c1", + "slug": "austria--r1-c1", + "name": "Austria 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "9.52678,46.36979,12.072547,47.69691", + "source_region_id": "austria", + "source_size_bytes": 805236446, + "west": 9.52678, + "south": 46.36979, + "east": 12.072547, + "north": 47.69691, + "asset_name": "occumed-austria--r1-c1.pmtiles", + "metadata_name": "occumed-austria--r1-c1.json" + }, + { + "id": "austria--r1-c2", + "slug": "austria--r1-c2", + "name": "Austria 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "12.072547,46.36979,14.618313,47.69691", + "source_region_id": "austria", + "source_size_bytes": 805236446, + "west": 12.072547, + "south": 46.36979, + "east": 14.618313, + "north": 47.69691, + "asset_name": "occumed-austria--r1-c2.pmtiles", + "metadata_name": "occumed-austria--r1-c2.json" + }, + { + "id": "austria--r1-c3", + "slug": "austria--r1-c3", + "name": "Austria 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "14.618313,46.36979,17.16408,47.69691", + "source_region_id": "austria", + "source_size_bytes": 805236446, + "west": 14.618313, + "south": 46.36979, + "east": 17.16408, + "north": 47.69691, + "asset_name": "occumed-austria--r1-c3.pmtiles", + "metadata_name": "occumed-austria--r1-c3.json" + }, + { + "id": "austria--r2-c1", + "slug": "austria--r2-c1", + "name": "Austria 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "9.52678,47.69691,12.072547,49.02403", + "source_region_id": "austria", + "source_size_bytes": 805236446, + "west": 9.52678, + "south": 47.69691, + "east": 12.072547, + "north": 49.02403, + "asset_name": "occumed-austria--r2-c1.pmtiles", + "metadata_name": "occumed-austria--r2-c1.json" + }, + { + "id": "austria--r2-c2", + "slug": "austria--r2-c2", + "name": "Austria 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "12.072547,47.69691,14.618313,49.02403", + "source_region_id": "austria", + "source_size_bytes": 805236446, + "west": 12.072547, + "south": 47.69691, + "east": 14.618313, + "north": 49.02403, + "asset_name": "occumed-austria--r2-c2.pmtiles", + "metadata_name": "occumed-austria--r2-c2.json" + }, + { + "id": "austria--r2-c3", + "slug": "austria--r2-c3", + "name": "Austria 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "14.618313,47.69691,17.16408,49.02403", + "source_region_id": "austria", + "source_size_bytes": 805236446, + "west": 14.618313, + "south": 47.69691, + "east": 17.16408, + "north": 49.02403, + "asset_name": "occumed-austria--r2-c3.pmtiles", + "metadata_name": "occumed-austria--r2-c3.json" + }, + { + "id": "belgium--r1-c1", + "slug": "belgium--r1-c1", + "name": "Belgium 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "2.340725,49.49489,3.697238,50.54664", + "source_region_id": "belgium", + "source_size_bytes": 690237666, + "west": 2.340725, + "south": 49.49489, + "east": 3.697238, + "north": 50.54664, + "asset_name": "occumed-belgium--r1-c1.pmtiles", + "metadata_name": "occumed-belgium--r1-c1.json" + }, + { + "id": "belgium--r1-c2", + "slug": "belgium--r1-c2", + "name": "Belgium 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "3.697238,49.49489,5.053752,50.54664", + "source_region_id": "belgium", + "source_size_bytes": 690237666, + "west": 3.697238, + "south": 49.49489, + "east": 5.053752, + "north": 50.54664, + "asset_name": "occumed-belgium--r1-c2.pmtiles", + "metadata_name": "occumed-belgium--r1-c2.json" + }, + { + "id": "belgium--r1-c3", + "slug": "belgium--r1-c3", + "name": "Belgium 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "5.053752,49.49489,6.410265,50.54664", + "source_region_id": "belgium", + "source_size_bytes": 690237666, + "west": 5.053752, + "south": 49.49489, + "east": 6.410265, + "north": 50.54664, + "asset_name": "occumed-belgium--r1-c3.pmtiles", + "metadata_name": "occumed-belgium--r1-c3.json" + }, + { + "id": "belgium--r2-c1", + "slug": "belgium--r2-c1", + "name": "Belgium 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "2.340725,50.54664,3.697238,51.59839", + "source_region_id": "belgium", + "source_size_bytes": 690237666, + "west": 2.340725, + "south": 50.54664, + "east": 3.697238, + "north": 51.59839, + "asset_name": "occumed-belgium--r2-c1.pmtiles", + "metadata_name": "occumed-belgium--r2-c1.json" + }, + { + "id": "belgium--r2-c2", + "slug": "belgium--r2-c2", + "name": "Belgium 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "3.697238,50.54664,5.053752,51.59839", + "source_region_id": "belgium", + "source_size_bytes": 690237666, + "west": 3.697238, + "south": 50.54664, + "east": 5.053752, + "north": 51.59839, + "asset_name": "occumed-belgium--r2-c2.pmtiles", + "metadata_name": "occumed-belgium--r2-c2.json" + }, + { + "id": "belgium--r2-c3", + "slug": "belgium--r2-c3", + "name": "Belgium 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "5.053752,50.54664,6.410265,51.59839", + "source_region_id": "belgium", + "source_size_bytes": 690237666, + "west": 5.053752, + "south": 50.54664, + "east": 6.410265, + "north": 51.59839, + "asset_name": "occumed-belgium--r2-c3.pmtiles", + "metadata_name": "occumed-belgium--r2-c3.json" + }, + { + "id": "central-fed-district--r1-c2", + "slug": "central-fed-district--r1-c2", + "name": "Central Federal District 1.2", + "continent": "central-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/central-fed-district-latest.osm.pbf", + "extract_bbox": "39.184995,49.50446,47.67023,54.57888", + "source_region_id": "central-fed-district", + "source_size_bytes": 870284469, + "west": 39.184995, + "south": 49.50446, + "east": 47.67023, + "north": 54.57888, + "asset_name": "occumed-central-fed-district--r1-c2.pmtiles", + "metadata_name": "occumed-central-fed-district--r1-c2.json" + }, + { + "id": "central-fed-district--r2-c1", + "slug": "central-fed-district--r2-c1", + "name": "Central Federal District 2.1", + "continent": "central-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/central-fed-district-latest.osm.pbf", + "extract_bbox": "30.69976,54.57888,39.184995,59.6533", + "source_region_id": "central-fed-district", + "source_size_bytes": 870284469, + "west": 30.69976, + "south": 54.57888, + "east": 39.184995, + "north": 59.6533, + "asset_name": "occumed-central-fed-district--r2-c1.pmtiles", + "metadata_name": "occumed-central-fed-district--r2-c1.json" + }, + { + "id": "central-fed-district--r2-c2", + "slug": "central-fed-district--r2-c2", + "name": "Central Federal District 2.2", + "continent": "central-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/central-fed-district-latest.osm.pbf", + "extract_bbox": "39.184995,54.57888,47.67023,59.6533", + "source_region_id": "central-fed-district", + "source_size_bytes": 870284469, + "west": 39.184995, + "south": 54.57888, + "east": 47.67023, + "north": 59.6533, + "asset_name": "occumed-central-fed-district--r2-c2.pmtiles", + "metadata_name": "occumed-central-fed-district--r2-c2.json" + }, + { + "id": "chubu--r1-c1", + "slug": "chubu--r1-c1", + "name": "Chūbu region 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chubu-latest.osm.pbf", + "extract_bbox": "135.4393,34.26649,137.67415,36.58683", + "source_region_id": "chubu", + "source_size_bytes": 506491717, + "west": 135.4393, + "south": 34.26649, + "east": 137.67415, + "north": 36.58683, + "asset_name": "occumed-chubu--r1-c1.pmtiles", + "metadata_name": "occumed-chubu--r1-c1.json" + }, + { + "id": "chubu--r1-c2", + "slug": "chubu--r1-c2", + "name": "Chūbu region 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chubu-latest.osm.pbf", + "extract_bbox": "137.67415,34.26649,139.909,36.58683", + "source_region_id": "chubu", + "source_size_bytes": 506491717, + "west": 137.67415, + "south": 34.26649, + "east": 139.909, + "north": 36.58683, + "asset_name": "occumed-chubu--r1-c2.pmtiles", + "metadata_name": "occumed-chubu--r1-c2.json" + }, + { + "id": "chubu--r2-c1", + "slug": "chubu--r2-c1", + "name": "Chūbu region 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chubu-latest.osm.pbf", + "extract_bbox": "135.4393,36.58683,137.67415,38.90717", + "source_region_id": "chubu", + "source_size_bytes": 506491717, + "west": 135.4393, + "south": 36.58683, + "east": 137.67415, + "north": 38.90717, + "asset_name": "occumed-chubu--r2-c1.pmtiles", + "metadata_name": "occumed-chubu--r2-c1.json" + }, + { + "id": "chubu--r2-c2", + "slug": "chubu--r2-c2", + "name": "Chūbu region 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chubu-latest.osm.pbf", + "extract_bbox": "137.67415,36.58683,139.909,38.90717", + "source_region_id": "chubu", + "source_size_bytes": 506491717, + "west": 137.67415, + "south": 36.58683, + "east": 139.909, + "north": 38.90717, + "asset_name": "occumed-chubu--r2-c2.pmtiles", + "metadata_name": "occumed-chubu--r2-c2.json" + }, + { + "id": "congo-democratic-republic--r1-c1", + "slug": "congo-democratic-republic--r1-c1", + "name": "Congo (Democratic Republic/Kinshasa) 1.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "11.88343,-13.5006,18.367517,-4.049602", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414219798, + "west": 11.88343, + "south": -13.5006, + "east": 18.367517, + "north": -4.049602, + "asset_name": "occumed-congo-democratic-republic--r1-c1.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r1-c1.json" + }, + { + "id": "congo-democratic-republic--r1-c2", + "slug": "congo-democratic-republic--r1-c2", + "name": "Congo (Democratic Republic/Kinshasa) 1.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "18.367517,-13.5006,24.851603,-4.049602", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414219798, + "west": 18.367517, + "south": -13.5006, + "east": 24.851603, + "north": -4.049602, + "asset_name": "occumed-congo-democratic-republic--r1-c2.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r1-c2.json" + }, + { + "id": "congo-democratic-republic--r1-c3", + "slug": "congo-democratic-republic--r1-c3", + "name": "Congo (Democratic Republic/Kinshasa) 1.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "24.851603,-13.5006,31.33569,-4.049602", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414219798, + "west": 24.851603, + "south": -13.5006, + "east": 31.33569, + "north": -4.049602, + "asset_name": "occumed-congo-democratic-republic--r1-c3.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r1-c3.json" + }, + { + "id": "congo-democratic-republic--r2-c1", + "slug": "congo-democratic-republic--r2-c1", + "name": "Congo (Democratic Republic/Kinshasa) 2.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "11.88343,-4.049602,18.367517,5.401396", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414219798, + "west": 11.88343, + "south": -4.049602, + "east": 18.367517, + "north": 5.401396, + "asset_name": "occumed-congo-democratic-republic--r2-c1.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r2-c1.json" + }, + { + "id": "congo-democratic-republic--r2-c2", + "slug": "congo-democratic-republic--r2-c2", + "name": "Congo (Democratic Republic/Kinshasa) 2.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "18.367517,-4.049602,24.851603,5.401396", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414219798, + "west": 18.367517, + "south": -4.049602, + "east": 24.851603, + "north": 5.401396, + "asset_name": "occumed-congo-democratic-republic--r2-c2.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r2-c2.json" + }, + { + "id": "congo-democratic-republic--r2-c3", + "slug": "congo-democratic-republic--r2-c3", + "name": "Congo (Democratic Republic/Kinshasa) 2.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "24.851603,-4.049602,31.33569,5.401396", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414219798, + "west": 24.851603, + "south": -4.049602, + "east": 31.33569, + "north": 5.401396, + "asset_name": "occumed-congo-democratic-republic--r2-c3.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r2-c3.json" + }, + { + "id": "denmark--r1-c1", + "slug": "denmark--r1-c1", + "name": "Denmark 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "7.7011,54.44065,10.35223,56.25152", + "source_region_id": "denmark", + "source_size_bytes": 491669127, + "west": 7.7011, + "south": 54.44065, + "east": 10.35223, + "north": 56.25152, + "asset_name": "occumed-denmark--r1-c1.pmtiles", + "metadata_name": "occumed-denmark--r1-c1.json" + }, + { + "id": "denmark--r1-c2", + "slug": "denmark--r1-c2", + "name": "Denmark 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "10.35223,54.44065,13.00336,56.25152", + "source_region_id": "denmark", + "source_size_bytes": 491669127, + "west": 10.35223, + "south": 54.44065, + "east": 13.00336, + "north": 56.25152, + "asset_name": "occumed-denmark--r1-c2.pmtiles", + "metadata_name": "occumed-denmark--r1-c2.json" + }, + { + "id": "denmark--r1-c3", + "slug": "denmark--r1-c3", + "name": "Denmark 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "13.00336,54.44065,15.65449,56.25152", + "source_region_id": "denmark", + "source_size_bytes": 491669127, + "west": 13.00336, + "south": 54.44065, + "east": 15.65449, + "north": 56.25152, + "asset_name": "occumed-denmark--r1-c3.pmtiles", + "metadata_name": "occumed-denmark--r1-c3.json" + }, + { + "id": "denmark--r2-c1", + "slug": "denmark--r2-c1", + "name": "Denmark 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "7.7011,56.25152,10.35223,58.06239", + "source_region_id": "denmark", + "source_size_bytes": 491669127, + "west": 7.7011, + "south": 56.25152, + "east": 10.35223, + "north": 58.06239, + "asset_name": "occumed-denmark--r2-c1.pmtiles", + "metadata_name": "occumed-denmark--r2-c1.json" + }, + { + "id": "denmark--r2-c2", + "slug": "denmark--r2-c2", + "name": "Denmark 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "10.35223,56.25152,13.00336,58.06239", + "source_region_id": "denmark", + "source_size_bytes": 491669127, + "west": 10.35223, + "south": 56.25152, + "east": 13.00336, + "north": 58.06239, + "asset_name": "occumed-denmark--r2-c2.pmtiles", + "metadata_name": "occumed-denmark--r2-c2.json" + }, + { + "id": "denmark--r2-c3", + "slug": "denmark--r2-c3", + "name": "Denmark 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "13.00336,56.25152,15.65449,58.06239", + "source_region_id": "denmark", + "source_size_bytes": 491669127, + "west": 13.00336, + "south": 56.25152, + "east": 15.65449, + "north": 58.06239, + "asset_name": "occumed-denmark--r2-c3.pmtiles", + "metadata_name": "occumed-denmark--r2-c3.json" + }, + { + "id": "enfield", + "slug": "enfield", + "name": "Enfield", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/london/enfield-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "enfield", + "source_size_bytes": 2941, + "west": -0.185433, + "south": 51.60542, + "east": -0.008839, + "north": 51.69193, + "asset_name": "occumed-enfield.pmtiles", + "metadata_name": "occumed-enfield.json" + }, + { + "id": "far-eastern-fed-district", + "slug": "far-eastern-fed-district", + "name": "Far Eastern Federal District", + "continent": "far-eastern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/far-eastern-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "far-eastern-fed-district", + "source_size_bytes": 382069908, + "west": 105.4219, + "south": 37.34659, + "east": -168.6841, + "north": 82.00023, + "asset_name": "occumed-far-eastern-fed-district.pmtiles", + "metadata_name": "occumed-far-eastern-fed-district.json" + }, + { + "id": "finland--r1-c1", + "slug": "finland--r1-c1", + "name": "Finland 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/finland-latest.osm.pbf", + "extract_bbox": "19.02427,59.28783,25.320085,64.69371", + "source_region_id": "finland", + "source_size_bytes": 736162911, + "west": 19.02427, + "south": 59.28783, + "east": 25.320085, + "north": 64.69371, + "asset_name": "occumed-finland--r1-c1.pmtiles", + "metadata_name": "occumed-finland--r1-c1.json" + }, + { + "id": "finland--r1-c2", + "slug": "finland--r1-c2", + "name": "Finland 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/finland-latest.osm.pbf", + "extract_bbox": "25.320085,59.28783,31.6159,64.69371", + "source_region_id": "finland", + "source_size_bytes": 736162911, + "west": 25.320085, + "south": 59.28783, + "east": 31.6159, + "north": 64.69371, + "asset_name": "occumed-finland--r1-c2.pmtiles", + "metadata_name": "occumed-finland--r1-c2.json" + }, + { + "id": "finland--r2-c1", + "slug": "finland--r2-c1", + "name": "Finland 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/finland-latest.osm.pbf", + "extract_bbox": "19.02427,64.69371,25.320085,70.09959", + "source_region_id": "finland", + "source_size_bytes": 736162911, + "west": 19.02427, + "south": 64.69371, + "east": 25.320085, + "north": 70.09959, + "asset_name": "occumed-finland--r2-c1.pmtiles", + "metadata_name": "occumed-finland--r2-c1.json" + }, + { + "id": "finland--r2-c2", + "slug": "finland--r2-c2", + "name": "Finland 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/finland-latest.osm.pbf", + "extract_bbox": "25.320085,64.69371,31.6159,70.09959", + "source_region_id": "finland", + "source_size_bytes": 736162911, + "west": 25.320085, + "south": 64.69371, + "east": 31.6159, + "north": 70.09959, + "asset_name": "occumed-finland--r2-c2.pmtiles", + "metadata_name": "occumed-finland--r2-c2.json" + }, + { + "id": "iceland", + "slug": "iceland", + "name": "Iceland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/iceland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "iceland", + "source_size_bytes": 64447355, + "west": -25.7, + "south": 62.84553, + "east": -12.41708, + "north": 67.50085, + "asset_name": "occumed-iceland.pmtiles", + "metadata_name": "occumed-iceland.json" + }, + { + "id": "ireland-and-northern-ireland--r1-c1", + "slug": "ireland-and-northern-ireland--r1-c1", + "name": "Ireland and Northern Ireland 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf", + "extract_bbox": "-14.40224,49.60002,-9.730753,53.232775", + "source_region_id": "ireland-and-northern-ireland", + "source_size_bytes": 408051669, + "west": -14.40224, + "south": 49.60002, + "east": -9.730753, + "north": 53.232775, + "asset_name": "occumed-ireland-and-northern-ireland--r1-c1.pmtiles", + "metadata_name": "occumed-ireland-and-northern-ireland--r1-c1.json" + }, + { + "id": "ireland-and-northern-ireland--r1-c2", + "slug": "ireland-and-northern-ireland--r1-c2", + "name": "Ireland and Northern Ireland 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf", + "extract_bbox": "-9.730753,49.60002,-5.059265,53.232775", + "source_region_id": "ireland-and-northern-ireland", + "source_size_bytes": 408051669, + "west": -9.730753, + "south": 49.60002, + "east": -5.059265, + "north": 53.232775, + "asset_name": "occumed-ireland-and-northern-ireland--r1-c2.pmtiles", + "metadata_name": "occumed-ireland-and-northern-ireland--r1-c2.json" + }, + { + "id": "ireland-and-northern-ireland--r2-c1", + "slug": "ireland-and-northern-ireland--r2-c1", + "name": "Ireland and Northern Ireland 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf", + "extract_bbox": "-14.40224,53.232775,-9.730753,56.86553", + "source_region_id": "ireland-and-northern-ireland", + "source_size_bytes": 408051669, + "west": -14.40224, + "south": 53.232775, + "east": -9.730753, + "north": 56.86553, + "asset_name": "occumed-ireland-and-northern-ireland--r2-c1.pmtiles", + "metadata_name": "occumed-ireland-and-northern-ireland--r2-c1.json" + }, + { + "id": "ireland-and-northern-ireland--r2-c2", + "slug": "ireland-and-northern-ireland--r2-c2", + "name": "Ireland and Northern Ireland 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf", + "extract_bbox": "-9.730753,53.232775,-5.059265,56.86553", + "source_region_id": "ireland-and-northern-ireland", + "source_size_bytes": 408051669, + "west": -9.730753, + "south": 53.232775, + "east": -5.059265, + "north": 56.86553, + "asset_name": "occumed-ireland-and-northern-ireland--r2-c2.pmtiles", + "metadata_name": "occumed-ireland-and-northern-ireland--r2-c2.json" + }, + { + "id": "java--r1-c1", + "slug": "java--r1-c1", + "name": "Java 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "104.1394,-9.541155,108.286733,-6.746545", + "source_region_id": "java", + "source_size_bytes": 894838274, + "west": 104.1394, + "south": -9.541155, + "east": 108.286733, + "north": -6.746545, + "asset_name": "occumed-java--r1-c1.pmtiles", + "metadata_name": "occumed-java--r1-c1.json" + }, + { + "id": "java--r1-c2", + "slug": "java--r1-c2", + "name": "Java 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "108.286733,-9.541155,112.434067,-6.746545", + "source_region_id": "java", + "source_size_bytes": 894838274, + "west": 108.286733, + "south": -9.541155, + "east": 112.434067, + "north": -6.746545, + "asset_name": "occumed-java--r1-c2.pmtiles", + "metadata_name": "occumed-java--r1-c2.json" + }, + { + "id": "java--r1-c3", + "slug": "java--r1-c3", + "name": "Java 1.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "112.434067,-9.541155,116.5814,-6.746545", + "source_region_id": "java", + "source_size_bytes": 894838274, + "west": 112.434067, + "south": -9.541155, + "east": 116.5814, + "north": -6.746545, + "asset_name": "occumed-java--r1-c3.pmtiles", + "metadata_name": "occumed-java--r1-c3.json" + }, + { + "id": "java--r2-c1", + "slug": "java--r2-c1", + "name": "Java 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "104.1394,-6.746545,108.286733,-3.951935", + "source_region_id": "java", + "source_size_bytes": 894838274, + "west": 104.1394, + "south": -6.746545, + "east": 108.286733, + "north": -3.951935, + "asset_name": "occumed-java--r2-c1.pmtiles", + "metadata_name": "occumed-java--r2-c1.json" + }, + { + "id": "java--r2-c2", + "slug": "java--r2-c2", + "name": "Java 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "108.286733,-6.746545,112.434067,-3.951935", + "source_region_id": "java", + "source_size_bytes": 894838274, + "west": 108.286733, + "south": -6.746545, + "east": 112.434067, + "north": -3.951935, + "asset_name": "occumed-java--r2-c2.pmtiles", + "metadata_name": "occumed-java--r2-c2.json" + }, + { + "id": "java--r2-c3", + "slug": "java--r2-c3", + "name": "Java 2.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "112.434067,-6.746545,116.5814,-3.951935", + "source_region_id": "java", + "source_size_bytes": 894838274, + "west": 112.434067, + "south": -6.746545, + "east": 116.5814, + "north": -3.951935, + "asset_name": "occumed-java--r2-c3.pmtiles", + "metadata_name": "occumed-java--r2-c3.json" + }, + { + "id": "kanto--r1-c1", + "slug": "kanto--r1-c1", + "name": "Kantō region 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "134.5757,20.08228,141.207433,28.62108", + "source_region_id": "kanto", + "source_size_bytes": 479744061, + "west": 134.5757, + "south": 20.08228, + "east": 141.207433, + "north": 28.62108, + "asset_name": "occumed-kanto--r1-c1.pmtiles", + "metadata_name": "occumed-kanto--r1-c1.json" + }, + { + "id": "kanto--r1-c2", + "slug": "kanto--r1-c2", + "name": "Kantō region 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "141.207433,20.08228,147.839167,28.62108", + "source_region_id": "kanto", + "source_size_bytes": 479744061, + "west": 141.207433, + "south": 20.08228, + "east": 147.839167, + "north": 28.62108, + "asset_name": "occumed-kanto--r1-c2.pmtiles", + "metadata_name": "occumed-kanto--r1-c2.json" + }, + { + "id": "kanto--r1-c3", + "slug": "kanto--r1-c3", + "name": "Kantō region 1.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "147.839167,20.08228,154.4709,28.62108", + "source_region_id": "kanto", + "source_size_bytes": 479744061, + "west": 147.839167, + "south": 20.08228, + "east": 154.4709, + "north": 28.62108, + "asset_name": "occumed-kanto--r1-c3.pmtiles", + "metadata_name": "occumed-kanto--r1-c3.json" + }, + { + "id": "kanto--r2-c1", + "slug": "kanto--r2-c1", + "name": "Kantō region 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "134.5757,28.62108,141.207433,37.15988", + "source_region_id": "kanto", + "source_size_bytes": 479744061, + "west": 134.5757, + "south": 28.62108, + "east": 141.207433, + "north": 37.15988, + "asset_name": "occumed-kanto--r2-c1.pmtiles", + "metadata_name": "occumed-kanto--r2-c1.json" + }, + { + "id": "kanto--r2-c2", + "slug": "kanto--r2-c2", + "name": "Kantō region 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "141.207433,28.62108,147.839167,37.15988", + "source_region_id": "kanto", + "source_size_bytes": 479744061, + "west": 141.207433, + "south": 28.62108, + "east": 147.839167, + "north": 37.15988, + "asset_name": "occumed-kanto--r2-c2.pmtiles", + "metadata_name": "occumed-kanto--r2-c2.json" + }, + { + "id": "kanto--r2-c3", + "slug": "kanto--r2-c3", + "name": "Kantō region 2.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "147.839167,28.62108,154.4709,37.15988", + "source_region_id": "kanto", + "source_size_bytes": 479744061, + "west": 147.839167, + "south": 28.62108, + "east": 154.4709, + "north": 37.15988, + "asset_name": "occumed-kanto--r2-c3.pmtiles", + "metadata_name": "occumed-kanto--r2-c3.json" + }, + { + "id": "kitikmeot--r1-c1", + "slug": "kitikmeot--r1-c1", + "name": "Kitikmeot Region 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-120.737,64.51803,-110.152817,69.228825", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -120.737, + "south": 64.51803, + "east": -110.152817, + "north": 69.228825, + "asset_name": "occumed-kitikmeot--r1-c1.pmtiles", + "metadata_name": "occumed-kitikmeot--r1-c1.json" + }, + { + "id": "kitikmeot--r1-c2", + "slug": "kitikmeot--r1-c2", + "name": "Kitikmeot Region 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-110.152817,64.51803,-99.568633,69.228825", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -110.152817, + "south": 64.51803, + "east": -99.568633, + "north": 69.228825, + "asset_name": "occumed-kitikmeot--r1-c2.pmtiles", + "metadata_name": "occumed-kitikmeot--r1-c2.json" + }, + { + "id": "kitikmeot--r1-c3", + "slug": "kitikmeot--r1-c3", + "name": "Kitikmeot Region 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-99.568633,64.51803,-88.98445,69.228825", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -99.568633, + "south": 64.51803, + "east": -88.98445, + "north": 69.228825, + "asset_name": "occumed-kitikmeot--r1-c3.pmtiles", + "metadata_name": "occumed-kitikmeot--r1-c3.json" + }, + { + "id": "kitikmeot--r2-c1", + "slug": "kitikmeot--r2-c1", + "name": "Kitikmeot Region 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-120.737,69.228825,-110.152817,73.93962", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -120.737, + "south": 69.228825, + "east": -110.152817, + "north": 73.93962, + "asset_name": "occumed-kitikmeot--r2-c1.pmtiles", + "metadata_name": "occumed-kitikmeot--r2-c1.json" + }, + { + "id": "kitikmeot--r2-c2", + "slug": "kitikmeot--r2-c2", + "name": "Kitikmeot Region 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-110.152817,69.228825,-99.568633,73.93962", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -110.152817, + "south": 69.228825, + "east": -99.568633, + "north": 73.93962, + "asset_name": "occumed-kitikmeot--r2-c2.pmtiles", + "metadata_name": "occumed-kitikmeot--r2-c2.json" + }, + { + "id": "kitikmeot--r2-c3", + "slug": "kitikmeot--r2-c3", + "name": "Kitikmeot Region 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-99.568633,69.228825,-88.98445,73.93962", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -99.568633, + "south": 69.228825, + "east": -88.98445, + "north": 73.93962, + "asset_name": "occumed-kitikmeot--r2-c3.pmtiles", + "metadata_name": "occumed-kitikmeot--r2-c3.json" + }, + { + "id": "kivalliq--r1-c1", + "slug": "kivalliq--r1-c1", + "name": "Kivalliq Region 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-105.0092,56.95134,-96.679447,61.97584", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -105.0092, + "south": 56.95134, + "east": -96.679447, + "north": 61.97584, + "asset_name": "occumed-kivalliq--r1-c1.pmtiles", + "metadata_name": "occumed-kivalliq--r1-c1.json" + }, + { + "id": "kivalliq--r1-c2", + "slug": "kivalliq--r1-c2", + "name": "Kivalliq Region 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-96.679447,56.95134,-88.349693,61.97584", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -96.679447, + "south": 56.95134, + "east": -88.349693, + "north": 61.97584, + "asset_name": "occumed-kivalliq--r1-c2.pmtiles", + "metadata_name": "occumed-kivalliq--r1-c2.json" + }, + { + "id": "kivalliq--r1-c3", + "slug": "kivalliq--r1-c3", + "name": "Kivalliq Region 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-88.349693,56.95134,-80.01994,61.97584", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -88.349693, + "south": 56.95134, + "east": -80.01994, + "north": 61.97584, + "asset_name": "occumed-kivalliq--r1-c3.pmtiles", + "metadata_name": "occumed-kivalliq--r1-c3.json" + }, + { + "id": "kivalliq--r2-c1", + "slug": "kivalliq--r2-c1", + "name": "Kivalliq Region 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-105.0092,61.97584,-96.679447,67.00034", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -105.0092, + "south": 61.97584, + "east": -96.679447, + "north": 67.00034, + "asset_name": "occumed-kivalliq--r2-c1.pmtiles", + "metadata_name": "occumed-kivalliq--r2-c1.json" + }, + { + "id": "kivalliq--r2-c2", + "slug": "kivalliq--r2-c2", + "name": "Kivalliq Region 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-96.679447,61.97584,-88.349693,67.00034", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -96.679447, + "south": 61.97584, + "east": -88.349693, + "north": 67.00034, + "asset_name": "occumed-kivalliq--r2-c2.pmtiles", + "metadata_name": "occumed-kivalliq--r2-c2.json" + }, + { + "id": "kivalliq--r2-c3", + "slug": "kivalliq--r2-c3", + "name": "Kivalliq Region 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-88.349693,61.97584,-80.01994,67.00034", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -88.349693, + "south": 61.97584, + "east": -80.01994, + "north": 67.00034, + "asset_name": "occumed-kivalliq--r2-c3.pmtiles", + "metadata_name": "occumed-kivalliq--r2-c3.json" + }, + { + "id": "mexico--r1-c1", + "slug": "mexico--r1-c1", + "name": "Mexico 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-132.4952,9.456709,-116.82709,21.08869", + "source_region_id": "mexico", + "source_size_bytes": 638616143, + "west": -132.4952, + "south": 9.456709, + "east": -116.82709, + "north": 21.08869, + "asset_name": "occumed-mexico--r1-c1.pmtiles", + "metadata_name": "occumed-mexico--r1-c1.json" + }, + { + "id": "mexico--r1-c2", + "slug": "mexico--r1-c2", + "name": "Mexico 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-116.82709,9.456709,-101.15898,21.08869", + "source_region_id": "mexico", + "source_size_bytes": 638616143, + "west": -116.82709, + "south": 9.456709, + "east": -101.15898, + "north": 21.08869, + "asset_name": "occumed-mexico--r1-c2.pmtiles", + "metadata_name": "occumed-mexico--r1-c2.json" + }, + { + "id": "mexico--r1-c3", + "slug": "mexico--r1-c3", + "name": "Mexico 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-101.15898,9.456709,-85.49087,21.08869", + "source_region_id": "mexico", + "source_size_bytes": 638616143, + "west": -101.15898, + "south": 9.456709, + "east": -85.49087, + "north": 21.08869, + "asset_name": "occumed-mexico--r1-c3.pmtiles", + "metadata_name": "occumed-mexico--r1-c3.json" + }, + { + "id": "mexico--r2-c1", + "slug": "mexico--r2-c1", + "name": "Mexico 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-132.4952,21.08869,-116.82709,32.72067", + "source_region_id": "mexico", + "source_size_bytes": 638616143, + "west": -132.4952, + "south": 21.08869, + "east": -116.82709, + "north": 32.72067, + "asset_name": "occumed-mexico--r2-c1.pmtiles", + "metadata_name": "occumed-mexico--r2-c1.json" + }, + { + "id": "mexico--r2-c2", + "slug": "mexico--r2-c2", + "name": "Mexico 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-116.82709,21.08869,-101.15898,32.72067", + "source_region_id": "mexico", + "source_size_bytes": 638616143, + "west": -116.82709, + "south": 21.08869, + "east": -101.15898, + "north": 32.72067, + "asset_name": "occumed-mexico--r2-c2.pmtiles", + "metadata_name": "occumed-mexico--r2-c2.json" + }, + { + "id": "mexico--r2-c3", + "slug": "mexico--r2-c3", + "name": "Mexico 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-101.15898,21.08869,-85.49087,32.72067", + "source_region_id": "mexico", + "source_size_bytes": 638616143, + "west": -101.15898, + "south": 21.08869, + "east": -85.49087, + "north": 32.72067, + "asset_name": "occumed-mexico--r2-c3.pmtiles", + "metadata_name": "occumed-mexico--r2-c3.json" + }, + { + "id": "nepal--r1-c1", + "slug": "nepal--r1-c1", + "name": "Nepal 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "80.04913,26.3445,82.773463,28.41136", + "source_region_id": "nepal", + "source_size_bytes": 411652616, + "west": 80.04913, + "south": 26.3445, + "east": 82.773463, + "north": 28.41136, + "asset_name": "occumed-nepal--r1-c1.pmtiles", + "metadata_name": "occumed-nepal--r1-c1.json" + }, + { + "id": "nepal--r1-c2", + "slug": "nepal--r1-c2", + "name": "Nepal 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "82.773463,26.3445,85.497797,28.41136", + "source_region_id": "nepal", + "source_size_bytes": 411652616, + "west": 82.773463, + "south": 26.3445, + "east": 85.497797, + "north": 28.41136, + "asset_name": "occumed-nepal--r1-c2.pmtiles", + "metadata_name": "occumed-nepal--r1-c2.json" + }, + { + "id": "nepal--r1-c3", + "slug": "nepal--r1-c3", + "name": "Nepal 1.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "85.497797,26.3445,88.22213,28.41136", + "source_region_id": "nepal", + "source_size_bytes": 411652616, + "west": 85.497797, + "south": 26.3445, + "east": 88.22213, + "north": 28.41136, + "asset_name": "occumed-nepal--r1-c3.pmtiles", + "metadata_name": "occumed-nepal--r1-c3.json" + }, + { + "id": "nepal--r2-c1", + "slug": "nepal--r2-c1", + "name": "Nepal 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "80.04913,28.41136,82.773463,30.47822", + "source_region_id": "nepal", + "source_size_bytes": 411652616, + "west": 80.04913, + "south": 28.41136, + "east": 82.773463, + "north": 30.47822, + "asset_name": "occumed-nepal--r2-c1.pmtiles", + "metadata_name": "occumed-nepal--r2-c1.json" + }, + { + "id": "nepal--r2-c2", + "slug": "nepal--r2-c2", + "name": "Nepal 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "82.773463,28.41136,85.497797,30.47822", + "source_region_id": "nepal", + "source_size_bytes": 411652616, + "west": 82.773463, + "south": 28.41136, + "east": 85.497797, + "north": 30.47822, + "asset_name": "occumed-nepal--r2-c2.pmtiles", + "metadata_name": "occumed-nepal--r2-c2.json" + }, + { + "id": "nepal--r2-c3", + "slug": "nepal--r2-c3", + "name": "Nepal 2.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "85.497797,28.41136,88.22213,30.47822", + "source_region_id": "nepal", + "source_size_bytes": 411652616, + "west": 85.497797, + "south": 28.41136, + "east": 88.22213, + "north": 30.47822, + "asset_name": "occumed-nepal--r2-c3.pmtiles", + "metadata_name": "occumed-nepal--r2-c3.json" + }, + { + "id": "new-zealand--r1-c1", + "slug": "new-zealand--r1-c1", + "name": "New Zealand 1.1", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "162.096,-56.75268,174.25555,-42.62034", + "source_region_id": "new-zealand", + "source_size_bytes": 400359190, + "west": 162.096, + "south": -56.75268, + "east": 174.25555, + "north": -42.62034, + "asset_name": "occumed-new-zealand--r1-c1.pmtiles", + "metadata_name": "occumed-new-zealand--r1-c1.json" + }, + { + "id": "new-zealand--r1-c2-s1", + "slug": "new-zealand--r1-c2-s1", + "name": "New Zealand 1.2-s1", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "174.25555,-56.75268,180,-42.62034", + "source_region_id": "new-zealand", + "source_size_bytes": 400359190, + "west": 174.25555, + "south": -56.75268, + "east": 180, + "north": -42.62034, + "asset_name": "occumed-new-zealand--r1-c2-s1.pmtiles", + "metadata_name": "occumed-new-zealand--r1-c2-s1.json" + }, + { + "id": "new-zealand--r1-c2-s2", + "slug": "new-zealand--r1-c2-s2", + "name": "New Zealand 1.2-s2", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "-180,-56.75268,-173.5849,-42.62034", + "source_region_id": "new-zealand", + "source_size_bytes": 400359190, + "west": -180, + "south": -56.75268, + "east": -173.5849, + "north": -42.62034, + "asset_name": "occumed-new-zealand--r1-c2-s2.pmtiles", + "metadata_name": "occumed-new-zealand--r1-c2-s2.json" + }, + { + "id": "new-zealand--r2-c1", + "slug": "new-zealand--r2-c1", + "name": "New Zealand 2.1", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "162.096,-42.62034,174.25555,-28.488", + "source_region_id": "new-zealand", + "source_size_bytes": 400359190, + "west": 162.096, + "south": -42.62034, + "east": 174.25555, + "north": -28.488, + "asset_name": "occumed-new-zealand--r2-c1.pmtiles", + "metadata_name": "occumed-new-zealand--r2-c1.json" + }, + { + "id": "new-zealand--r2-c2-s1", + "slug": "new-zealand--r2-c2-s1", + "name": "New Zealand 2.2-s1", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "174.25555,-42.62034,180,-28.488", + "source_region_id": "new-zealand", + "source_size_bytes": 400359190, + "west": 174.25555, + "south": -42.62034, + "east": 180, + "north": -28.488, + "asset_name": "occumed-new-zealand--r2-c2-s1.pmtiles", + "metadata_name": "occumed-new-zealand--r2-c2-s1.json" + }, + { + "id": "new-zealand--r2-c2-s2", + "slug": "new-zealand--r2-c2-s2", + "name": "New Zealand 2.2-s2", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "-180,-42.62034,-173.5849,-28.488", + "source_region_id": "new-zealand", + "source_size_bytes": 400359190, + "west": -180, + "south": -42.62034, + "east": -173.5849, + "north": -28.488, + "asset_name": "occumed-new-zealand--r2-c2-s2.pmtiles", + "metadata_name": "occumed-new-zealand--r2-c2-s2.json" + }, + { + "id": "niedersachsen--r1-c1", + "slug": "niedersachsen--r1-c1", + "name": "Niedersachsen (mit Bremen) 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "6.295338,51.29348,8.065995,52.766515", + "source_region_id": "niedersachsen", + "source_size_bytes": 500671381, + "west": 6.295338, + "south": 51.29348, + "east": 8.065995, + "north": 52.766515, + "asset_name": "occumed-niedersachsen--r1-c1.pmtiles", + "metadata_name": "occumed-niedersachsen--r1-c1.json" + }, + { + "id": "niedersachsen--r1-c2", + "slug": "niedersachsen--r1-c2", + "name": "Niedersachsen (mit Bremen) 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "8.065995,51.29348,9.836653,52.766515", + "source_region_id": "niedersachsen", + "source_size_bytes": 500671381, + "west": 8.065995, + "south": 51.29348, + "east": 9.836653, + "north": 52.766515, + "asset_name": "occumed-niedersachsen--r1-c2.pmtiles", + "metadata_name": "occumed-niedersachsen--r1-c2.json" + }, + { + "id": "niedersachsen--r1-c3", + "slug": "niedersachsen--r1-c3", + "name": "Niedersachsen (mit Bremen) 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "9.836653,51.29348,11.60731,52.766515", + "source_region_id": "niedersachsen", + "source_size_bytes": 500671381, + "west": 9.836653, + "south": 51.29348, + "east": 11.60731, + "north": 52.766515, + "asset_name": "occumed-niedersachsen--r1-c3.pmtiles", + "metadata_name": "occumed-niedersachsen--r1-c3.json" + }, + { + "id": "niedersachsen--r2-c1", + "slug": "niedersachsen--r2-c1", + "name": "Niedersachsen (mit Bremen) 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "6.295338,52.766515,8.065995,54.23955", + "source_region_id": "niedersachsen", + "source_size_bytes": 500671381, + "west": 6.295338, + "south": 52.766515, + "east": 8.065995, + "north": 54.23955, + "asset_name": "occumed-niedersachsen--r2-c1.pmtiles", + "metadata_name": "occumed-niedersachsen--r2-c1.json" + }, + { + "id": "niedersachsen--r2-c2", + "slug": "niedersachsen--r2-c2", + "name": "Niedersachsen (mit Bremen) 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "8.065995,52.766515,9.836653,54.23955", + "source_region_id": "niedersachsen", + "source_size_bytes": 500671381, + "west": 8.065995, + "south": 52.766515, + "east": 9.836653, + "north": 54.23955, + "asset_name": "occumed-niedersachsen--r2-c2.pmtiles", + "metadata_name": "occumed-niedersachsen--r2-c2.json" + }, + { + "id": "niedersachsen--r2-c3", + "slug": "niedersachsen--r2-c3", + "name": "Niedersachsen (mit Bremen) 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "9.836653,52.766515,11.60731,54.23955", + "source_region_id": "niedersachsen", + "source_size_bytes": 500671381, + "west": 9.836653, + "south": 52.766515, + "east": 11.60731, + "north": 54.23955, + "asset_name": "occumed-niedersachsen--r2-c3.pmtiles", + "metadata_name": "occumed-niedersachsen--r2-c3.json" + }, + { + "id": "nigeria--r1-c1", + "slug": "nigeria--r1-c1", + "name": "Nigeria 1.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "2.664528,2.674022,6.669875,8.286381", + "source_region_id": "nigeria", + "source_size_bytes": 711264616, + "west": 2.664528, + "south": 2.674022, + "east": 6.669875, + "north": 8.286381, + "asset_name": "occumed-nigeria--r1-c1.pmtiles", + "metadata_name": "occumed-nigeria--r1-c1.json" + }, + { + "id": "nigeria--r1-c2", + "slug": "nigeria--r1-c2", + "name": "Nigeria 1.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "6.669875,2.674022,10.675223,8.286381", + "source_region_id": "nigeria", + "source_size_bytes": 711264616, + "west": 6.669875, + "south": 2.674022, + "east": 10.675223, + "north": 8.286381, + "asset_name": "occumed-nigeria--r1-c2.pmtiles", + "metadata_name": "occumed-nigeria--r1-c2.json" + }, + { + "id": "nigeria--r1-c3", + "slug": "nigeria--r1-c3", + "name": "Nigeria 1.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "10.675223,2.674022,14.68057,8.286381", + "source_region_id": "nigeria", + "source_size_bytes": 711264616, + "west": 10.675223, + "south": 2.674022, + "east": 14.68057, + "north": 8.286381, + "asset_name": "occumed-nigeria--r1-c3.pmtiles", + "metadata_name": "occumed-nigeria--r1-c3.json" + }, + { + "id": "nigeria--r2-c1", + "slug": "nigeria--r2-c1", + "name": "Nigeria 2.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "2.664528,8.286381,6.669875,13.89874", + "source_region_id": "nigeria", + "source_size_bytes": 711264616, + "west": 2.664528, + "south": 8.286381, + "east": 6.669875, + "north": 13.89874, + "asset_name": "occumed-nigeria--r2-c1.pmtiles", + "metadata_name": "occumed-nigeria--r2-c1.json" + }, + { + "id": "nigeria--r2-c2", + "slug": "nigeria--r2-c2", + "name": "Nigeria 2.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "6.669875,8.286381,10.675223,13.89874", + "source_region_id": "nigeria", + "source_size_bytes": 711264616, + "west": 6.669875, + "south": 8.286381, + "east": 10.675223, + "north": 13.89874, + "asset_name": "occumed-nigeria--r2-c2.pmtiles", + "metadata_name": "occumed-nigeria--r2-c2.json" + }, + { + "id": "nigeria--r2-c3", + "slug": "nigeria--r2-c3", + "name": "Nigeria 2.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "10.675223,8.286381,14.68057,13.89874", + "source_region_id": "nigeria", + "source_size_bytes": 711264616, + "west": 10.675223, + "south": 8.286381, + "east": 14.68057, + "north": 13.89874, + "asset_name": "occumed-nigeria--r2-c3.pmtiles", + "metadata_name": "occumed-nigeria--r2-c3.json" + }, + { + "id": "norcal--r1-c1", + "slug": "norcal--r1-c1", + "name": "Northern California 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-125.8935,35.78528,-122.477933,38.90073", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -125.8935, + "south": 35.78528, + "east": -122.477933, + "north": 38.90073, + "asset_name": "occumed-norcal--r1-c1.pmtiles", + "metadata_name": "occumed-norcal--r1-c1.json" + }, + { + "id": "norcal--r1-c2", + "slug": "norcal--r1-c2", + "name": "Northern California 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-122.477933,35.78528,-119.062367,38.90073", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -122.477933, + "south": 35.78528, + "east": -119.062367, + "north": 38.90073, + "asset_name": "occumed-norcal--r1-c2.pmtiles", + "metadata_name": "occumed-norcal--r1-c2.json" + }, + { + "id": "norcal--r1-c3", + "slug": "norcal--r1-c3", + "name": "Northern California 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-119.062367,35.78528,-115.6468,38.90073", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -119.062367, + "south": 35.78528, + "east": -115.6468, + "north": 38.90073, + "asset_name": "occumed-norcal--r1-c3.pmtiles", + "metadata_name": "occumed-norcal--r1-c3.json" + }, + { + "id": "norcal--r2-c1", + "slug": "norcal--r2-c1", + "name": "Northern California 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-125.8935,38.90073,-122.477933,42.01618", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -125.8935, + "south": 38.90073, + "east": -122.477933, + "north": 42.01618, + "asset_name": "occumed-norcal--r2-c1.pmtiles", + "metadata_name": "occumed-norcal--r2-c1.json" + }, + { + "id": "norcal--r2-c2", + "slug": "norcal--r2-c2", + "name": "Northern California 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-122.477933,38.90073,-119.062367,42.01618", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -122.477933, + "south": 38.90073, + "east": -119.062367, + "north": 42.01618, + "asset_name": "occumed-norcal--r2-c2.pmtiles", + "metadata_name": "occumed-norcal--r2-c2.json" + }, + { + "id": "norcal--r2-c3", + "slug": "norcal--r2-c3", + "name": "Northern California 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-119.062367,38.90073,-115.6468,42.01618", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -119.062367, + "south": 38.90073, + "east": -115.6468, + "north": 42.01618, + "asset_name": "occumed-norcal--r2-c3.pmtiles", + "metadata_name": "occumed-norcal--r2-c3.json" + }, + { + "id": "nord-est--r1-c1", + "slug": "nord-est--r1-c1", + "name": "Nord-Est 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-est-latest.osm.pbf", + "extract_bbox": "9.195461,43.72977,11.56212,45.41491", + "source_region_id": "nord-est", + "source_size_bytes": 620366761, + "west": 9.195461, + "south": 43.72977, + "east": 11.56212, + "north": 45.41491, + "asset_name": "occumed-nord-est--r1-c1.pmtiles", + "metadata_name": "occumed-nord-est--r1-c1.json" + }, + { + "id": "nord-est--r1-c2", + "slug": "nord-est--r1-c2", + "name": "Nord-Est 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-est-latest.osm.pbf", + "extract_bbox": "11.56212,43.72977,13.92878,45.41491", + "source_region_id": "nord-est", + "source_size_bytes": 620366761, + "west": 11.56212, + "south": 43.72977, + "east": 13.92878, + "north": 45.41491, + "asset_name": "occumed-nord-est--r1-c2.pmtiles", + "metadata_name": "occumed-nord-est--r1-c2.json" + }, + { + "id": "nord-norge--r1-c1", + "slug": "nord-norge--r1-c1", + "name": "Nord-Norge
(Northern Norway) 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "7.840204,64.93917,16.440019,68.672385", + "source_region_id": "nord-norge", + "source_size_bytes": 405311178, + "west": 7.840204, + "south": 64.93917, + "east": 16.440019, + "north": 68.672385, + "asset_name": "occumed-nord-norge--r1-c1.pmtiles", + "metadata_name": "occumed-nord-norge--r1-c1.json" + }, + { + "id": "nord-norge--r1-c2", + "slug": "nord-norge--r1-c2", + "name": "Nord-Norge
(Northern Norway) 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "16.440019,64.93917,25.039835,68.672385", + "source_region_id": "nord-norge", + "source_size_bytes": 405311178, + "west": 16.440019, + "south": 64.93917, + "east": 25.039835, + "north": 68.672385, + "asset_name": "occumed-nord-norge--r1-c2.pmtiles", + "metadata_name": "occumed-nord-norge--r1-c2.json" + }, + { + "id": "nord-norge--r1-c3", + "slug": "nord-norge--r1-c3", + "name": "Nord-Norge
(Northern Norway) 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "25.039835,64.93917,33.63965,68.672385", + "source_region_id": "nord-norge", + "source_size_bytes": 405311178, + "west": 25.039835, + "south": 64.93917, + "east": 33.63965, + "north": 68.672385, + "asset_name": "occumed-nord-norge--r1-c3.pmtiles", + "metadata_name": "occumed-nord-norge--r1-c3.json" + }, + { + "id": "nord-norge--r2-c1", + "slug": "nord-norge--r2-c1", + "name": "Nord-Norge
(Northern Norway) 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "7.840204,68.672385,16.440019,72.4056", + "source_region_id": "nord-norge", + "source_size_bytes": 405311178, + "west": 7.840204, + "south": 68.672385, + "east": 16.440019, + "north": 72.4056, + "asset_name": "occumed-nord-norge--r2-c1.pmtiles", + "metadata_name": "occumed-nord-norge--r2-c1.json" + }, + { + "id": "nord-norge--r2-c2", + "slug": "nord-norge--r2-c2", + "name": "Nord-Norge
(Northern Norway) 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "16.440019,68.672385,25.039835,72.4056", + "source_region_id": "nord-norge", + "source_size_bytes": 405311178, + "west": 16.440019, + "south": 68.672385, + "east": 25.039835, + "north": 72.4056, + "asset_name": "occumed-nord-norge--r2-c2.pmtiles", + "metadata_name": "occumed-nord-norge--r2-c2.json" + }, + { + "id": "nord-norge--r2-c3", + "slug": "nord-norge--r2-c3", + "name": "Nord-Norge
(Northern Norway) 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "25.039835,68.672385,33.63965,72.4056", + "source_region_id": "nord-norge", + "source_size_bytes": 405311178, + "west": 25.039835, + "south": 68.672385, + "east": 33.63965, + "north": 72.4056, + "asset_name": "occumed-nord-norge--r2-c3.pmtiles", + "metadata_name": "occumed-nord-norge--r2-c3.json" + }, + { + "id": "nord-ovest--r1-c1", + "slug": "nord-ovest--r1-c1", + "name": "Nord-Ovest 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "6.602696,43.48099,8.212917,45.06109", + "source_region_id": "nord-ovest", + "source_size_bytes": 585082308, + "west": 6.602696, + "south": 43.48099, + "east": 8.212917, + "north": 45.06109, + "asset_name": "occumed-nord-ovest--r1-c1.pmtiles", + "metadata_name": "occumed-nord-ovest--r1-c1.json" + }, + { + "id": "nord-ovest--r1-c2", + "slug": "nord-ovest--r1-c2", + "name": "Nord-Ovest 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "8.212917,43.48099,9.823139,45.06109", + "source_region_id": "nord-ovest", + "source_size_bytes": 585082308, + "west": 8.212917, + "south": 43.48099, + "east": 9.823139, + "north": 45.06109, + "asset_name": "occumed-nord-ovest--r1-c2.pmtiles", + "metadata_name": "occumed-nord-ovest--r1-c2.json" + }, + { + "id": "nord-ovest--r1-c3", + "slug": "nord-ovest--r1-c3", + "name": "Nord-Ovest 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "9.823139,43.48099,11.43336,45.06109", + "source_region_id": "nord-ovest", + "source_size_bytes": 585082308, + "west": 9.823139, + "south": 43.48099, + "east": 11.43336, + "north": 45.06109, + "asset_name": "occumed-nord-ovest--r1-c3.pmtiles", + "metadata_name": "occumed-nord-ovest--r1-c3.json" + }, + { + "id": "nord-ovest--r2-c1", + "slug": "nord-ovest--r2-c1", + "name": "Nord-Ovest 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "6.602696,45.06109,8.212917,46.64119", + "source_region_id": "nord-ovest", + "source_size_bytes": 585082308, + "west": 6.602696, + "south": 45.06109, + "east": 8.212917, + "north": 46.64119, + "asset_name": "occumed-nord-ovest--r2-c1.pmtiles", + "metadata_name": "occumed-nord-ovest--r2-c1.json" + }, + { + "id": "nord-ovest--r2-c2", + "slug": "nord-ovest--r2-c2", + "name": "Nord-Ovest 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "8.212917,45.06109,9.823139,46.64119", + "source_region_id": "nord-ovest", + "source_size_bytes": 585082308, + "west": 8.212917, + "south": 45.06109, + "east": 9.823139, + "north": 46.64119, + "asset_name": "occumed-nord-ovest--r2-c2.pmtiles", + "metadata_name": "occumed-nord-ovest--r2-c2.json" + }, + { + "id": "nord-ovest--r2-c3", + "slug": "nord-ovest--r2-c3", + "name": "Nord-Ovest 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "9.823139,45.06109,11.43336,46.64119", + "source_region_id": "nord-ovest", + "source_size_bytes": 585082308, + "west": 9.823139, + "south": 45.06109, + "east": 11.43336, + "north": 46.64119, + "asset_name": "occumed-nord-ovest--r2-c3.pmtiles", + "metadata_name": "occumed-nord-ovest--r2-c3.json" + }, + { + "id": "nordeste--r1-c1", + "slug": "nordeste--r1-c1", + "name": "Nordeste 1.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/nordeste-latest.osm.pbf", + "extract_bbox": "-48.77554,-18.59514,-38.59791,-7.961063", + "source_region_id": "nordeste", + "source_size_bytes": 436302214, + "west": -48.77554, + "south": -18.59514, + "east": -38.59791, + "north": -7.961063, + "asset_name": "occumed-nordeste--r1-c1.pmtiles", + "metadata_name": "occumed-nordeste--r1-c1.json" + }, + { + "id": "nordeste--r1-c2", + "slug": "nordeste--r1-c2", + "name": "Nordeste 1.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/nordeste-latest.osm.pbf", + "extract_bbox": "-38.59791,-18.59514,-28.42028,-7.961063", + "source_region_id": "nordeste", + "source_size_bytes": 436302214, + "west": -38.59791, + "south": -18.59514, + "east": -28.42028, + "north": -7.961063, + "asset_name": "occumed-nordeste--r1-c2.pmtiles", + "metadata_name": "occumed-nordeste--r1-c2.json" + }, + { + "id": "nordeste--r2-c1", + "slug": "nordeste--r2-c1", + "name": "Nordeste 2.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/nordeste-latest.osm.pbf", + "extract_bbox": "-48.77554,-7.961063,-38.59791,2.673015", + "source_region_id": "nordeste", + "source_size_bytes": 436302214, + "west": -48.77554, + "south": -7.961063, + "east": -38.59791, + "north": 2.673015, + "asset_name": "occumed-nordeste--r2-c1.pmtiles", + "metadata_name": "occumed-nordeste--r2-c1.json" + }, + { + "id": "nordeste--r2-c2", + "slug": "nordeste--r2-c2", + "name": "Nordeste 2.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/nordeste-latest.osm.pbf", + "extract_bbox": "-38.59791,-7.961063,-28.42028,2.673015", + "source_region_id": "nordeste", + "source_size_bytes": 436302214, + "west": -38.59791, + "south": -7.961063, + "east": -28.42028, + "north": 2.673015, + "asset_name": "occumed-nordeste--r2-c2.pmtiles", + "metadata_name": "occumed-nordeste--r2-c2.json" + }, + { + "id": "north-admreg--r1-c1", + "slug": "north-admreg--r1-c1", + "name": "North Administrative Region 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-141.7761,51.0635,-133.830067,55.53514", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -141.7761, + "south": 51.0635, + "east": -133.830067, + "north": 55.53514, + "asset_name": "occumed-north-admreg--r1-c1.pmtiles", + "metadata_name": "occumed-north-admreg--r1-c1.json" + }, + { + "id": "north-admreg--r1-c2", + "slug": "north-admreg--r1-c2", + "name": "North Administrative Region 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-133.830067,51.0635,-125.884033,55.53514", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -133.830067, + "south": 51.0635, + "east": -125.884033, + "north": 55.53514, + "asset_name": "occumed-north-admreg--r1-c2.pmtiles", + "metadata_name": "occumed-north-admreg--r1-c2.json" + }, + { + "id": "north-admreg--r1-c3", + "slug": "north-admreg--r1-c3", + "name": "North Administrative Region 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-125.884033,51.0635,-117.938,55.53514", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -125.884033, + "south": 51.0635, + "east": -117.938, + "north": 55.53514, + "asset_name": "occumed-north-admreg--r1-c3.pmtiles", + "metadata_name": "occumed-north-admreg--r1-c3.json" + }, + { + "id": "north-admreg--r2-c1", + "slug": "north-admreg--r2-c1", + "name": "North Administrative Region 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-141.7761,55.53514,-133.830067,60.00678", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -141.7761, + "south": 55.53514, + "east": -133.830067, + "north": 60.00678, + "asset_name": "occumed-north-admreg--r2-c1.pmtiles", + "metadata_name": "occumed-north-admreg--r2-c1.json" + }, + { + "id": "north-admreg--r2-c2", + "slug": "north-admreg--r2-c2", + "name": "North Administrative Region 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-133.830067,55.53514,-125.884033,60.00678", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -133.830067, + "south": 55.53514, + "east": -125.884033, + "north": 60.00678, + "asset_name": "occumed-north-admreg--r2-c2.pmtiles", + "metadata_name": "occumed-north-admreg--r2-c2.json" + }, + { + "id": "north-admreg--r2-c3", + "slug": "north-admreg--r2-c3", + "name": "North Administrative Region 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-125.884033,55.53514,-117.938,60.00678", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -125.884033, + "south": 55.53514, + "east": -117.938, + "north": 60.00678, + "asset_name": "occumed-north-admreg--r2-c3.pmtiles", + "metadata_name": "occumed-north-admreg--r2-c3.json" + }, + { + "id": "north-caucasus-fed-district", + "slug": "north-caucasus-fed-district", + "name": "North Caucasus Federal District", + "continent": "north-caucasus-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/north-caucasus-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "north-caucasus-fed-district", + "source_size_bytes": 127853776, + "west": 40.67265, + "south": 41.1355, + "east": 48.86453, + "north": 46.23914, + "asset_name": "occumed-north-caucasus-fed-district.pmtiles", + "metadata_name": "occumed-north-caucasus-fed-district.json" + }, + { + "id": "north-eastern-zone", + "slug": "north-eastern-zone", + "name": "North-Eastern Zone", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/north-eastern-zone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "north-eastern-zone", + "source_size_bytes": 107031663, + "west": 88.00852, + "south": 21.92712, + "east": 97.41989, + "north": 29.42883, + "asset_name": "occumed-north-eastern-zone.pmtiles", + "metadata_name": "occumed-north-eastern-zone.json" + }, + { + "id": "northumberland", + "slug": "northumberland", + "name": "Northumberland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/northumberland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "northumberland", + "source_size_bytes": 25983307, + "west": -2.690724, + "south": 54.78162, + "east": -1.223287, + "north": 55.84866, + "asset_name": "occumed-northumberland.pmtiles", + "metadata_name": "occumed-northumberland.json" + }, + { + "id": "northwest-territories--r1-c1", + "slug": "northwest-territories--r1-c1", + "name": "Northwest Territories 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/northwest-territories-latest.osm.pbf", + "extract_bbox": "-136.6974,59.9896,-119.3367,70.822215", + "source_region_id": "northwest-territories", + "source_size_bytes": 425547719, + "west": -136.6974, + "south": 59.9896, + "east": -119.3367, + "north": 70.822215, + "asset_name": "occumed-northwest-territories--r1-c1.pmtiles", + "metadata_name": "occumed-northwest-territories--r1-c1.json" + }, + { + "id": "northwest-territories--r1-c2", + "slug": "northwest-territories--r1-c2", + "name": "Northwest Territories 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/northwest-territories-latest.osm.pbf", + "extract_bbox": "-119.3367,59.9896,-101.976,70.822215", + "source_region_id": "northwest-territories", + "source_size_bytes": 425547719, + "west": -119.3367, + "south": 59.9896, + "east": -101.976, + "north": 70.822215, + "asset_name": "occumed-northwest-territories--r1-c2.pmtiles", + "metadata_name": "occumed-northwest-territories--r1-c2.json" + }, + { + "id": "northwest-territories--r2-c1", + "slug": "northwest-territories--r2-c1", + "name": "Northwest Territories 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/northwest-territories-latest.osm.pbf", + "extract_bbox": "-136.6974,70.822215,-119.3367,81.65483", + "source_region_id": "northwest-territories", + "source_size_bytes": 425547719, + "west": -136.6974, + "south": 70.822215, + "east": -119.3367, + "north": 81.65483, + "asset_name": "occumed-northwest-territories--r2-c1.pmtiles", + "metadata_name": "occumed-northwest-territories--r2-c1.json" + }, + { + "id": "northwest-territories--r2-c2", + "slug": "northwest-territories--r2-c2", + "name": "Northwest Territories 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/northwest-territories-latest.osm.pbf", + "extract_bbox": "-119.3367,70.822215,-101.976,81.65483", + "source_region_id": "northwest-territories", + "source_size_bytes": 425547719, + "west": -119.3367, + "south": 70.822215, + "east": -101.976, + "north": 81.65483, + "asset_name": "occumed-northwest-territories--r2-c2.pmtiles", + "metadata_name": "occumed-northwest-territories--r2-c2.json" + }, + { + "id": "northwestern-fed-district--r1-c1", + "slug": "northwestern-fed-district--r1-c1", + "name": "Northwestern Federal District 1.1", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "19.40837,54.31282,46.01659,68.429215", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 19.40837, + "south": 54.31282, + "east": 46.01659, + "north": 68.429215, + "asset_name": "occumed-northwestern-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r1-c1.json" + }, + { + "id": "northwestern-fed-district--r1-c2", + "slug": "northwestern-fed-district--r1-c2", + "name": "Northwestern Federal District 1.2", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "46.01659,54.31282,72.62481,68.429215", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 46.01659, + "south": 54.31282, + "east": 72.62481, + "north": 68.429215, + "asset_name": "occumed-northwestern-fed-district--r1-c2.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r1-c2.json" + }, + { + "id": "northwestern-fed-district--r2-c1", + "slug": "northwestern-fed-district--r2-c1", + "name": "Northwestern Federal District 2.1", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "19.40837,68.429215,46.01659,82.54561", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 19.40837, + "south": 68.429215, + "east": 46.01659, + "north": 82.54561, + "asset_name": "occumed-northwestern-fed-district--r2-c1.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r2-c1.json" + }, + { + "id": "northwestern-fed-district--r2-c2", + "slug": "northwestern-fed-district--r2-c2", + "name": "Northwestern Federal District 2.2", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "46.01659,68.429215,72.62481,82.54561", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 46.01659, + "south": 68.429215, + "east": 72.62481, + "north": 82.54561, + "asset_name": "occumed-northwestern-fed-district--r2-c2.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r2-c2.json" + }, + { + "id": "ontario--r1-c1", + "slug": "ontario--r1-c1", + "name": "Ontario 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/ontario-latest.osm.pbf", + "extract_bbox": "-95.15965,41.66009,-84.734815,49.584175", + "source_region_id": "ontario", + "source_size_bytes": 966878682, + "west": -95.15965, + "south": 41.66009, + "east": -84.734815, + "north": 49.584175, + "asset_name": "occumed-ontario--r1-c1.pmtiles", + "metadata_name": "occumed-ontario--r1-c1.json" + }, + { + "id": "ontario--r1-c2", + "slug": "ontario--r1-c2", + "name": "Ontario 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/ontario-latest.osm.pbf", + "extract_bbox": "-84.734815,41.66009,-74.30998,49.584175", + "source_region_id": "ontario", + "source_size_bytes": 966878682, + "west": -84.734815, + "south": 41.66009, + "east": -74.30998, + "north": 49.584175, + "asset_name": "occumed-ontario--r1-c2.pmtiles", + "metadata_name": "occumed-ontario--r1-c2.json" + }, + { + "id": "ontario--r2-c1", + "slug": "ontario--r2-c1", + "name": "Ontario 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/ontario-latest.osm.pbf", + "extract_bbox": "-95.15965,49.584175,-84.734815,57.50826", + "source_region_id": "ontario", + "source_size_bytes": 966878682, + "west": -95.15965, + "south": 49.584175, + "east": -84.734815, + "north": 57.50826, + "asset_name": "occumed-ontario--r2-c1.pmtiles", + "metadata_name": "occumed-ontario--r2-c1.json" + }, + { + "id": "ontario--r2-c2", + "slug": "ontario--r2-c2", + "name": "Ontario 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/ontario-latest.osm.pbf", + "extract_bbox": "-84.734815,49.584175,-74.30998,57.50826", + "source_region_id": "ontario", + "source_size_bytes": 966878682, + "west": -84.734815, + "south": 49.584175, + "east": -74.30998, + "north": 57.50826, + "asset_name": "occumed-ontario--r2-c2.pmtiles", + "metadata_name": "occumed-ontario--r2-c2.json" + }, + { + "id": "opolskie", + "slug": "opolskie", + "name": "Województwo opolskie
(Opole Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/opolskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "opolskie", + "source_size_bytes": 54126101, + "west": 16.9015, + "south": 49.95766, + "east": 18.70219, + "north": 51.2014, + "asset_name": "occumed-opolskie.pmtiles", + "metadata_name": "occumed-opolskie.json" + }, + { + "id": "ostlandet--r1-c1", + "slug": "ostlandet--r1-c1", + "name": "Østlandet
(Eastern Norway) 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/ostlandet-latest.osm.pbf", + "extract_bbox": "7.095391,58.5968,9.98805,60.64707", + "source_region_id": "ostlandet", + "source_size_bytes": 453633249, + "west": 7.095391, + "south": 58.5968, + "east": 9.98805, + "north": 60.64707, + "asset_name": "occumed-ostlandet--r1-c1.pmtiles", + "metadata_name": "occumed-ostlandet--r1-c1.json" + }, + { + "id": "ostlandet--r1-c2", + "slug": "ostlandet--r1-c2", + "name": "Østlandet
(Eastern Norway) 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/ostlandet-latest.osm.pbf", + "extract_bbox": "9.98805,58.5968,12.88071,60.64707", + "source_region_id": "ostlandet", + "source_size_bytes": 453633249, + "west": 9.98805, + "south": 58.5968, + "east": 12.88071, + "north": 60.64707, + "asset_name": "occumed-ostlandet--r1-c2.pmtiles", + "metadata_name": "occumed-ostlandet--r1-c2.json" + }, + { + "id": "ostlandet--r2-c1", + "slug": "ostlandet--r2-c1", + "name": "Østlandet
(Eastern Norway) 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/ostlandet-latest.osm.pbf", + "extract_bbox": "7.095391,60.64707,9.98805,62.69734", + "source_region_id": "ostlandet", + "source_size_bytes": 453633249, + "west": 7.095391, + "south": 60.64707, + "east": 9.98805, + "north": 62.69734, + "asset_name": "occumed-ostlandet--r2-c1.pmtiles", + "metadata_name": "occumed-ostlandet--r2-c1.json" + }, + { + "id": "ostlandet--r2-c2", + "slug": "ostlandet--r2-c2", + "name": "Østlandet
(Eastern Norway) 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/ostlandet-latest.osm.pbf", + "extract_bbox": "9.98805,60.64707,12.88071,62.69734", + "source_region_id": "ostlandet", + "source_size_bytes": 453633249, + "west": 9.98805, + "south": 60.64707, + "east": 12.88071, + "north": 62.69734, + "asset_name": "occumed-ostlandet--r2-c2.pmtiles", + "metadata_name": "occumed-ostlandet--r2-c2.json" + }, + { + "id": "palau", + "slug": "palau", + "name": "Palau", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/palau-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "palau", + "source_size_bytes": 819224, + "west": 130.1034, + "south": 1.621407, + "east": 136.9541, + "north": 11.48818, + "asset_name": "occumed-palau.pmtiles", + "metadata_name": "occumed-palau.json" + }, + { + "id": "panama", + "slug": "panama", + "name": "Panama", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/panama-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "panama", + "source_size_bytes": 33731409, + "west": -83.46462, + "south": 6.644027, + "east": -77.08126, + "north": 11.20708, + "asset_name": "occumed-panama.pmtiles", + "metadata_name": "occumed-panama.json" + }, + { + "id": "pays-de-la-loire", + "slug": "pays-de-la-loire", + "name": "Pays de la Loire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/pays-de-la-loire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "pays-de-la-loire", + "source_size_bytes": 370110733, + "west": -2.674666, + "south": 46.21875, + "east": 0.918996, + "north": 48.57002, + "asset_name": "occumed-pays-de-la-loire.pmtiles", + "metadata_name": "occumed-pays-de-la-loire.json" + }, + { + "id": "philippines--r1-c1", + "slug": "philippines--r1-c1", + "name": "Philippines 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/philippines-latest.osm.pbf", + "extract_bbox": "112.1661,4.382696,119.62015,12.956453", + "source_region_id": "philippines", + "source_size_bytes": 602048222, + "west": 112.1661, + "south": 4.382696, + "east": 119.62015, + "north": 12.956453, + "asset_name": "occumed-philippines--r1-c1.pmtiles", + "metadata_name": "occumed-philippines--r1-c1.json" + }, + { + "id": "philippines--r1-c2", + "slug": "philippines--r1-c2", + "name": "Philippines 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/philippines-latest.osm.pbf", + "extract_bbox": "119.62015,4.382696,127.0742,12.956453", + "source_region_id": "philippines", + "source_size_bytes": 602048222, + "west": 119.62015, + "south": 4.382696, + "east": 127.0742, + "north": 12.956453, + "asset_name": "occumed-philippines--r1-c2.pmtiles", + "metadata_name": "occumed-philippines--r1-c2.json" + }, + { + "id": "philippines--r2-c1", + "slug": "philippines--r2-c1", + "name": "Philippines 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/philippines-latest.osm.pbf", + "extract_bbox": "112.1661,12.956453,119.62015,21.53021", + "source_region_id": "philippines", + "source_size_bytes": 602048222, + "west": 112.1661, + "south": 12.956453, + "east": 119.62015, + "north": 21.53021, + "asset_name": "occumed-philippines--r2-c1.pmtiles", + "metadata_name": "occumed-philippines--r2-c1.json" + }, + { + "id": "philippines--r2-c2", + "slug": "philippines--r2-c2", + "name": "Philippines 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/philippines-latest.osm.pbf", + "extract_bbox": "119.62015,12.956453,127.0742,21.53021", + "source_region_id": "philippines", + "source_size_bytes": 602048222, + "west": 119.62015, + "south": 12.956453, + "east": 127.0742, + "north": 21.53021, + "asset_name": "occumed-philippines--r2-c2.pmtiles", + "metadata_name": "occumed-philippines--r2-c2.json" + }, + { + "id": "podkarpackie", + "slug": "podkarpackie", + "name": "Województwo podkarpackie
(Subcarpathian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/podkarpackie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "podkarpackie", + "source_size_bytes": 150823385, + "west": 21.13433, + "south": 48.98642, + "east": 23.5536, + "north": 50.82591, + "asset_name": "occumed-podkarpackie.pmtiles", + "metadata_name": "occumed-podkarpackie.json" + }, + { + "id": "portugal--r1-c1", + "slug": "portugal--r1-c1", + "name": "Portugal 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-31.6,32,-23.126504,37.08195", + "source_region_id": "portugal", + "source_size_bytes": 418772175, + "west": -31.6, + "south": 32, + "east": -23.126504, + "north": 37.08195, + "asset_name": "occumed-portugal--r1-c1.pmtiles", + "metadata_name": "occumed-portugal--r1-c1.json" + }, + { + "id": "portugal--r1-c2", + "slug": "portugal--r1-c2", + "name": "Portugal 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-23.126504,32,-14.653009,37.08195", + "source_region_id": "portugal", + "source_size_bytes": 418772175, + "west": -23.126504, + "south": 32, + "east": -14.653009, + "north": 37.08195, + "asset_name": "occumed-portugal--r1-c2.pmtiles", + "metadata_name": "occumed-portugal--r1-c2.json" + }, + { + "id": "portugal--r1-c3", + "slug": "portugal--r1-c3", + "name": "Portugal 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-14.653009,32,-6.179513,37.08195", + "source_region_id": "portugal", + "source_size_bytes": 418772175, + "west": -14.653009, + "south": 32, + "east": -6.179513, + "north": 37.08195, + "asset_name": "occumed-portugal--r1-c3.pmtiles", + "metadata_name": "occumed-portugal--r1-c3.json" + }, + { + "id": "portugal--r2-c1", + "slug": "portugal--r2-c1", + "name": "Portugal 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-31.6,37.08195,-23.126504,42.1639", + "source_region_id": "portugal", + "source_size_bytes": 418772175, + "west": -31.6, + "south": 37.08195, + "east": -23.126504, + "north": 42.1639, + "asset_name": "occumed-portugal--r2-c1.pmtiles", + "metadata_name": "occumed-portugal--r2-c1.json" + }, + { + "id": "portugal--r2-c2", + "slug": "portugal--r2-c2", + "name": "Portugal 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-23.126504,37.08195,-14.653009,42.1639", + "source_region_id": "portugal", + "source_size_bytes": 418772175, + "west": -23.126504, + "south": 37.08195, + "east": -14.653009, + "north": 42.1639, + "asset_name": "occumed-portugal--r2-c2.pmtiles", + "metadata_name": "occumed-portugal--r2-c2.json" + }, + { + "id": "portugal--r2-c3", + "slug": "portugal--r2-c3", + "name": "Portugal 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-14.653009,37.08195,-6.179513,42.1639", + "source_region_id": "portugal", + "source_size_bytes": 418772175, + "west": -14.653009, + "south": 37.08195, + "east": -6.179513, + "north": 42.1639, + "asset_name": "occumed-portugal--r2-c3.pmtiles", + "metadata_name": "occumed-portugal--r2-c3.json" + }, + { + "id": "praha", + "slug": "praha", + "name": "Praha", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/praha-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "praha", + "source_size_bytes": 44223412, + "west": 14.22365, + "south": 49.94151, + "east": 14.70695, + "north": 50.17756, + "asset_name": "occumed-praha.pmtiles", + "metadata_name": "occumed-praha.json" + }, + { + "id": "qikiqtaaluk--r1-c1", + "slug": "qikiqtaaluk--r1-c1", + "name": "Qikiqtaaluk Region 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/qikiqtaaluk-latest.osm.pbf", + "extract_bbox": "-110.0345,51.1268,-82.012035,67.726565", + "source_region_id": "qikiqtaaluk", + "source_size_bytes": 579744210, + "west": -110.0345, + "south": 51.1268, + "east": -82.012035, + "north": 67.726565, + "asset_name": "occumed-qikiqtaaluk--r1-c1.pmtiles", + "metadata_name": "occumed-qikiqtaaluk--r1-c1.json" + }, + { + "id": "qikiqtaaluk--r1-c2", + "slug": "qikiqtaaluk--r1-c2", + "name": "Qikiqtaaluk Region 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/qikiqtaaluk-latest.osm.pbf", + "extract_bbox": "-82.012035,51.1268,-53.98957,67.726565", + "source_region_id": "qikiqtaaluk", + "source_size_bytes": 579744210, + "west": -82.012035, + "south": 51.1268, + "east": -53.98957, + "north": 67.726565, + "asset_name": "occumed-qikiqtaaluk--r1-c2.pmtiles", + "metadata_name": "occumed-qikiqtaaluk--r1-c2.json" + }, + { + "id": "qikiqtaaluk--r2-c1", + "slug": "qikiqtaaluk--r2-c1", + "name": "Qikiqtaaluk Region 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/qikiqtaaluk-latest.osm.pbf", + "extract_bbox": "-110.0345,67.726565,-82.012035,84.32633", + "source_region_id": "qikiqtaaluk", + "source_size_bytes": 579744210, + "west": -110.0345, + "south": 67.726565, + "east": -82.012035, + "north": 84.32633, + "asset_name": "occumed-qikiqtaaluk--r2-c1.pmtiles", + "metadata_name": "occumed-qikiqtaaluk--r2-c1.json" + }, + { + "id": "qikiqtaaluk--r2-c2", + "slug": "qikiqtaaluk--r2-c2", + "name": "Qikiqtaaluk Region 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/qikiqtaaluk-latest.osm.pbf", + "extract_bbox": "-82.012035,67.726565,-53.98957,84.32633", + "source_region_id": "qikiqtaaluk", + "source_size_bytes": 579744210, + "west": -82.012035, + "south": 67.726565, + "east": -53.98957, + "north": 84.32633, + "asset_name": "occumed-qikiqtaaluk--r2-c2.pmtiles", + "metadata_name": "occumed-qikiqtaaluk--r2-c2.json" + }, + { + "id": "quebec--r1-c1", + "slug": "quebec--r1-c1", + "name": "Quebec 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-79.8404,44.98552,-68.46474,50.865747", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -79.8404, + "south": 44.98552, + "east": -68.46474, + "north": 50.865747, + "asset_name": "occumed-quebec--r1-c1.pmtiles", + "metadata_name": "occumed-quebec--r1-c1.json" + }, + { + "id": "quebec--r1-c2", + "slug": "quebec--r1-c2", + "name": "Quebec 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-68.46474,44.98552,-57.08908,50.865747", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -68.46474, + "south": 44.98552, + "east": -57.08908, + "north": 50.865747, + "asset_name": "occumed-quebec--r1-c2.pmtiles", + "metadata_name": "occumed-quebec--r1-c2.json" + }, + { + "id": "quebec--r2-c1", + "slug": "quebec--r2-c1", + "name": "Quebec 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-79.8404,50.865747,-68.46474,56.745973", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -79.8404, + "south": 50.865747, + "east": -68.46474, + "north": 56.745973, + "asset_name": "occumed-quebec--r2-c1.pmtiles", + "metadata_name": "occumed-quebec--r2-c1.json" + }, + { + "id": "quebec--r2-c2", + "slug": "quebec--r2-c2", + "name": "Quebec 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-68.46474,50.865747,-57.08908,56.745973", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -68.46474, + "south": 50.865747, + "east": -57.08908, + "north": 56.745973, + "asset_name": "occumed-quebec--r2-c2.pmtiles", + "metadata_name": "occumed-quebec--r2-c2.json" + }, + { + "id": "quebec--r3-c1", + "slug": "quebec--r3-c1", + "name": "Quebec 3.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-79.8404,56.745973,-68.46474,62.6262", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -79.8404, + "south": 56.745973, + "east": -68.46474, + "north": 62.6262, + "asset_name": "occumed-quebec--r3-c1.pmtiles", + "metadata_name": "occumed-quebec--r3-c1.json" + }, + { + "id": "quebec--r3-c2", + "slug": "quebec--r3-c2", + "name": "Quebec 3.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-68.46474,56.745973,-57.08908,62.6262", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -68.46474, + "south": 56.745973, + "east": -57.08908, + "north": 62.6262, + "asset_name": "occumed-quebec--r3-c2.pmtiles", + "metadata_name": "occumed-quebec--r3-c2.json" + }, + { + "id": "queensland", + "slug": "queensland", + "name": "Queensland", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/queensland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "queensland", + "source_size_bytes": 196413860, + "west": 137.9902, + "south": -29.1831, + "east": 154.2005, + "north": -8.841629, + "asset_name": "occumed-queensland.pmtiles", + "metadata_name": "occumed-queensland.json" + }, + { + "id": "rhone-alpes--r1-c1", + "slug": "rhone-alpes--r1-c1", + "name": "Rhone-Alpes 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "3.686075,44.11274,4.854737,45.31761", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524683824, + "west": 3.686075, + "south": 44.11274, + "east": 4.854737, + "north": 45.31761, + "asset_name": "occumed-rhone-alpes--r1-c1.pmtiles", + "metadata_name": "occumed-rhone-alpes--r1-c1.json" + }, + { + "id": "rhone-alpes--r1-c2", + "slug": "rhone-alpes--r1-c2", + "name": "Rhone-Alpes 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "4.854737,44.11274,6.023398,45.31761", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524683824, + "west": 4.854737, + "south": 44.11274, + "east": 6.023398, + "north": 45.31761, + "asset_name": "occumed-rhone-alpes--r1-c2.pmtiles", + "metadata_name": "occumed-rhone-alpes--r1-c2.json" + }, + { + "id": "rhone-alpes--r1-c3", + "slug": "rhone-alpes--r1-c3", + "name": "Rhone-Alpes 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "6.023398,44.11274,7.19206,45.31761", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524683824, + "west": 6.023398, + "south": 44.11274, + "east": 7.19206, + "north": 45.31761, + "asset_name": "occumed-rhone-alpes--r1-c3.pmtiles", + "metadata_name": "occumed-rhone-alpes--r1-c3.json" + }, + { + "id": "rhone-alpes--r2-c1", + "slug": "rhone-alpes--r2-c1", + "name": "Rhone-Alpes 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "3.686075,45.31761,4.854737,46.52248", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524683824, + "west": 3.686075, + "south": 45.31761, + "east": 4.854737, + "north": 46.52248, + "asset_name": "occumed-rhone-alpes--r2-c1.pmtiles", + "metadata_name": "occumed-rhone-alpes--r2-c1.json" + }, + { + "id": "rhone-alpes--r2-c2", + "slug": "rhone-alpes--r2-c2", + "name": "Rhone-Alpes 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "4.854737,45.31761,6.023398,46.52248", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524683824, + "west": 4.854737, + "south": 45.31761, + "east": 6.023398, + "north": 46.52248, + "asset_name": "occumed-rhone-alpes--r2-c2.pmtiles", + "metadata_name": "occumed-rhone-alpes--r2-c2.json" + }, + { + "id": "rhone-alpes--r2-c3", + "slug": "rhone-alpes--r2-c3", + "name": "Rhone-Alpes 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "6.023398,45.31761,7.19206,46.52248", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524683824, + "west": 6.023398, + "south": 45.31761, + "east": 7.19206, + "north": 46.52248, + "asset_name": "occumed-rhone-alpes--r2-c3.pmtiles", + "metadata_name": "occumed-rhone-alpes--r2-c3.json" + }, + { + "id": "romania", + "slug": "romania", + "name": "Romania", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/romania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "romania", + "source_size_bytes": 324693117, + "west": 20.24181, + "south": 43.61247, + "east": 30.27896, + "north": 48.26948, + "asset_name": "occumed-romania.pmtiles", + "metadata_name": "occumed-romania.json" + }, + { + "id": "rwanda", + "slug": "rwanda", + "name": "Rwanda", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/rwanda-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "rwanda", + "source_size_bytes": 65939034, + "west": 28.8593, + "south": -2.848747, + "east": 30.90864, + "north": -1.03831, + "asset_name": "occumed-rwanda.pmtiles", + "metadata_name": "occumed-rwanda.json" + }, + { + "id": "saint-helena-ascension-and-tristan-da-cunha", + "slug": "saint-helena-ascension-and-tristan-da-cunha", + "name": "Saint Helena, Ascension, and Tristan da Cunha", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/saint-helena-ascension-and-tristan-da-cunha-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "saint-helena-ascension-and-tristan-da-cunha", + "source_size_bytes": 892954, + "west": -15.57026, + "south": -43.83245, + "east": -2.781278, + "north": -4.591221, + "asset_name": "occumed-saint-helena-ascension-and-tristan-da-cunha.pmtiles", + "metadata_name": "occumed-saint-helena-ascension-and-tristan-da-cunha.json" + }, + { + "id": "sao-tome-and-principe", + "slug": "sao-tome-and-principe", + "name": "Sao Tome and Principe", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/sao-tome-and-principe-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sao-tome-and-principe", + "source_size_bytes": 1255899, + "west": 5.273916, + "south": -0.525565, + "east": 8.366995, + "north": 2.440286, + "asset_name": "occumed-sao-tome-and-principe.pmtiles", + "metadata_name": "occumed-sao-tome-and-principe.json" + }, + { + "id": "saskatchewan", + "slug": "saskatchewan", + "name": "Saskatchewan", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/saskatchewan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "saskatchewan", + "source_size_bytes": 115863825, + "west": -110.0069, + "south": 48.9876, + "east": -101.3614, + "north": 60.00052, + "asset_name": "occumed-saskatchewan.pmtiles", + "metadata_name": "occumed-saskatchewan.json" + }, + { + "id": "scotland", + "slug": "scotland", + "name": "Scotland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/scotland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "scotland", + "source_size_bytes": 323157172, + "west": -14.86155, + "south": 54.54001, + "east": 0.216055, + "north": 61.13564, + "asset_name": "occumed-scotland.pmtiles", + "metadata_name": "occumed-scotland.json" + }, + { + "id": "senegal-and-gambia", + "slug": "senegal-and-gambia", + "name": "Senegal and Gambia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/senegal-and-gambia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "senegal-and-gambia", + "source_size_bytes": 105015636, + "west": -19.85623, + "south": 12.01511, + "east": -11.33595, + "north": 16.70088, + "asset_name": "occumed-senegal-and-gambia.pmtiles", + "metadata_name": "occumed-senegal-and-gambia.json" + }, + { + "id": "serbia", + "slug": "serbia", + "name": "Serbia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/serbia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "serbia", + "source_size_bytes": 238054293, + "west": 18.80894, + "south": 42.22979, + "east": 23.01035, + "north": 46.19207, + "asset_name": "occumed-serbia.pmtiles", + "metadata_name": "occumed-serbia.json" + }, + { + "id": "shandong", + "slug": "shandong", + "name": "Shandong", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/shandong-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shandong", + "source_size_bytes": 70636854, + "west": 114.8133, + "south": 34.37575, + "east": 123.5632, + "north": 38.44, + "asset_name": "occumed-shandong.pmtiles", + "metadata_name": "occumed-shandong.json" + }, + { + "id": "shanxi", + "slug": "shanxi", + "name": "Shanxi", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/shanxi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shanxi", + "source_size_bytes": 30779112, + "west": 110.2, + "south": 34.57895, + "east": 114.57, + "north": 40.75116, + "asset_name": "occumed-shanxi.pmtiles", + "metadata_name": "occumed-shanxi.json" + }, + { + "id": "shikoku", + "slug": "shikoku", + "name": "Shikoku", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/shikoku-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shikoku", + "source_size_bytes": 88480020, + "west": 131.7698, + "south": 32.22959, + "east": 135.1794, + "north": 34.65151, + "asset_name": "occumed-shikoku.pmtiles", + "metadata_name": "occumed-shikoku.json" + }, + { + "id": "siberian-fed-district--r1-c1", + "slug": "siberian-fed-district--r1-c1", + "name": "Siberian Federal District 1.1", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "70.27478,49.02101,108.99404,65.45424", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 70.27478, + "south": 49.02101, + "east": 108.99404, + "north": 65.45424, + "asset_name": "occumed-siberian-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r1-c1.json" + }, + { + "id": "siberian-fed-district--r1-c2", + "slug": "siberian-fed-district--r1-c2", + "name": "Siberian Federal District 1.2", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "108.99404,49.02101,147.7133,65.45424", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 108.99404, + "south": 49.02101, + "east": 147.7133, + "north": 65.45424, + "asset_name": "occumed-siberian-fed-district--r1-c2.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r1-c2.json" + }, + { + "id": "siberian-fed-district--r2-c1", + "slug": "siberian-fed-district--r2-c1", + "name": "Siberian Federal District 2.1", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "70.27478,65.45424,108.99404,81.88747", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 70.27478, + "south": 65.45424, + "east": 108.99404, + "north": 81.88747, + "asset_name": "occumed-siberian-fed-district--r2-c1.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r2-c1.json" + }, + { + "id": "siberian-fed-district--r2-c2", + "slug": "siberian-fed-district--r2-c2", + "name": "Siberian Federal District 2.2", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "108.99404,65.45424,147.7133,81.88747", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 108.99404, + "south": 65.45424, + "east": 147.7133, + "north": 81.88747, + "asset_name": "occumed-siberian-fed-district--r2-c2.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r2-c2.json" + }, + { + "id": "sichuan", + "slug": "sichuan", + "name": "Sichuan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/sichuan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sichuan", + "source_size_bytes": 105107035, + "west": 97.31277, + "south": 26.04599, + "east": 108.5508, + "north": 34.33153, + "asset_name": "occumed-sichuan.pmtiles", + "metadata_name": "occumed-sichuan.json" + }, + { + "id": "sierra-leone", + "slug": "sierra-leone", + "name": "Sierra Leone", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/sierra-leone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sierra-leone", + "source_size_bytes": 43001927, + "west": -14.76451, + "south": 5.391619, + "east": -10.2558, + "north": 10.00571, + "asset_name": "occumed-sierra-leone.pmtiles", + "metadata_name": "occumed-sierra-leone.json" + }, + { + "id": "slaskie", + "slug": "slaskie", + "name": "Województwo śląskie
(Silesian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/slaskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "slaskie", + "source_size_bytes": 183632044, + "west": 18.02213, + "south": 49.38, + "east": 19.98542, + "north": 51.1129, + "asset_name": "occumed-slaskie.pmtiles", + "metadata_name": "occumed-slaskie.json" + }, + { + "id": "slovakia", + "slug": "slovakia", + "name": "Slovakia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/slovakia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "slovakia", + "source_size_bytes": 341296207, + "west": 16.83071, + "south": 47.72646, + "east": 22.57051, + "north": 49.6186, + "asset_name": "occumed-slovakia.pmtiles", + "metadata_name": "occumed-slovakia.json" + }, + { + "id": "socal--r1-c1", + "slug": "socal--r1-c1", + "name": "Southern California 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-121.4401,32.48438,-119.0031,34.147465", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -121.4401, + "south": 32.48438, + "east": -119.0031, + "north": 34.147465, + "asset_name": "occumed-socal--r1-c1.pmtiles", + "metadata_name": "occumed-socal--r1-c1.json" + }, + { + "id": "socal--r1-c2", + "slug": "socal--r1-c2", + "name": "Southern California 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-119.0031,32.48438,-116.5661,34.147465", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -119.0031, + "south": 32.48438, + "east": -116.5661, + "north": 34.147465, + "asset_name": "occumed-socal--r1-c2.pmtiles", + "metadata_name": "occumed-socal--r1-c2.json" + }, + { + "id": "socal--r1-c3", + "slug": "socal--r1-c3", + "name": "Southern California 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-116.5661,32.48438,-114.1291,34.147465", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -116.5661, + "south": 32.48438, + "east": -114.1291, + "north": 34.147465, + "asset_name": "occumed-socal--r1-c3.pmtiles", + "metadata_name": "occumed-socal--r1-c3.json" + }, + { + "id": "socal--r2-c1", + "slug": "socal--r2-c1", + "name": "Southern California 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-121.4401,34.147465,-119.0031,35.81055", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -121.4401, + "south": 34.147465, + "east": -119.0031, + "north": 35.81055, + "asset_name": "occumed-socal--r2-c1.pmtiles", + "metadata_name": "occumed-socal--r2-c1.json" + }, + { + "id": "socal--r2-c2", + "slug": "socal--r2-c2", + "name": "Southern California 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-119.0031,34.147465,-116.5661,35.81055", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -119.0031, + "south": 34.147465, + "east": -116.5661, + "north": 35.81055, + "asset_name": "occumed-socal--r2-c2.pmtiles", + "metadata_name": "occumed-socal--r2-c2.json" + }, + { + "id": "socal--r2-c3", + "slug": "socal--r2-c3", + "name": "Southern California 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-116.5661,34.147465,-114.1291,35.81055", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -116.5661, + "south": 34.147465, + "east": -114.1291, + "north": 35.81055, + "asset_name": "occumed-socal--r2-c3.pmtiles", + "metadata_name": "occumed-socal--r2-c3.json" + }, + { + "id": "solomon-islands", + "slug": "solomon-islands", + "name": "Solomon Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/solomon-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "solomon-islands", + "source_size_bytes": 11922130, + "west": 154.5856, + "south": -16.12694, + "east": 173.5934, + "north": -4.139945, + "asset_name": "occumed-solomon-islands.pmtiles", + "metadata_name": "occumed-solomon-islands.json" + }, + { + "id": "somalia", + "slug": "somalia", + "name": "Somalia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/somalia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "somalia", + "source_size_bytes": 164573495, + "west": 40.97489, + "south": -1.816753, + "east": 52.44871, + "north": 12.51177, + "asset_name": "occumed-somalia.pmtiles", + "metadata_name": "occumed-somalia.json" + }, + { + "id": "somerset", + "slug": "somerset", + "name": "Somerset", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/somerset-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "somerset", + "source_size_bytes": 49018319, + "west": -3.84094, + "south": 50.81995, + "east": -2.243303, + "north": 51.50392, + "asset_name": "occumed-somerset.pmtiles", + "metadata_name": "occumed-somerset.json" + }, + { + "id": "sorlandet", + "slug": "sorlandet", + "name": "Sørlandet
(Southern Norway)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/sorlandet-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sorlandet", + "source_size_bytes": 77008715, + "west": 5.698662, + "south": 57.58445, + "east": 10.10434, + "north": 59.67468, + "asset_name": "occumed-sorlandet.pmtiles", + "metadata_name": "occumed-sorlandet.json" + }, + { + "id": "south-africa--r1-c1", + "slug": "south-africa--r1-c1", + "name": "South Africa 1.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-africa-latest.osm.pbf", + "extract_bbox": "15.99606,-47.58493,27.619325,-34.851145", + "source_region_id": "south-africa", + "source_size_bytes": 416934667, + "west": 15.99606, + "south": -47.58493, + "east": 27.619325, + "north": -34.851145, + "asset_name": "occumed-south-africa--r1-c1.pmtiles", + "metadata_name": "occumed-south-africa--r1-c1.json" + }, + { + "id": "south-africa--r1-c2", + "slug": "south-africa--r1-c2", + "name": "South Africa 1.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-africa-latest.osm.pbf", + "extract_bbox": "27.619325,-47.58493,39.24259,-34.851145", + "source_region_id": "south-africa", + "source_size_bytes": 416934667, + "west": 27.619325, + "south": -47.58493, + "east": 39.24259, + "north": -34.851145, + "asset_name": "occumed-south-africa--r1-c2.pmtiles", + "metadata_name": "occumed-south-africa--r1-c2.json" + }, + { + "id": "south-africa--r2-c1", + "slug": "south-africa--r2-c1", + "name": "South Africa 2.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-africa-latest.osm.pbf", + "extract_bbox": "15.99606,-34.851145,27.619325,-22.11736", + "source_region_id": "south-africa", + "source_size_bytes": 416934667, + "west": 15.99606, + "south": -34.851145, + "east": 27.619325, + "north": -22.11736, + "asset_name": "occumed-south-africa--r2-c1.pmtiles", + "metadata_name": "occumed-south-africa--r2-c1.json" + }, + { + "id": "south-africa--r2-c2", + "slug": "south-africa--r2-c2", + "name": "South Africa 2.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-africa-latest.osm.pbf", + "extract_bbox": "27.619325,-34.851145,39.24259,-22.11736", + "source_region_id": "south-africa", + "source_size_bytes": 416934667, + "west": 27.619325, + "south": -34.851145, + "east": 39.24259, + "north": -22.11736, + "asset_name": "occumed-south-africa--r2-c2.pmtiles", + "metadata_name": "occumed-south-africa--r2-c2.json" + }, + { + "id": "south-australia", + "slug": "south-australia", + "name": "South Australia", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/south-australia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-australia", + "source_size_bytes": 66785926, + "west": 128.9993, + "south": -39.83156, + "east": 141.0073, + "north": -25.99303, + "asset_name": "occumed-south-australia.pmtiles", + "metadata_name": "occumed-south-australia.json" + }, + { + "id": "south-fed-district", + "slug": "south-fed-district", + "name": "South Federal District", + "continent": "south-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/south-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-fed-district", + "source_size_bytes": 310739853, + "west": 36.52315, + "south": 43.18958, + "east": 49.93666, + "north": 51.2554, + "asset_name": "occumed-south-fed-district.pmtiles", + "metadata_name": "occumed-south-fed-district.json" + }, + { + "id": "south-korea", + "slug": "south-korea", + "name": "South Korea", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/south-korea-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-korea", + "source_size_bytes": 283840851, + "west": 124.3188, + "south": 32.36076, + "east": 132.3386, + "north": 38.64966, + "asset_name": "occumed-south-korea.pmtiles", + "metadata_name": "occumed-south-korea.json" + }, + { + "id": "south-sudan", + "slug": "south-sudan", + "name": "South Sudan", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-sudan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-sudan", + "source_size_bytes": 138120283, + "west": 23.42491, + "south": 3.461547, + "east": 35.96298, + "north": 12.23937, + "asset_name": "occumed-south-sudan.pmtiles", + "metadata_name": "occumed-south-sudan.json" + }, + { + "id": "south-yorkshire", + "slug": "south-yorkshire", + "name": "South Yorkshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/south-yorkshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-yorkshire", + "source_size_bytes": 29743687, + "west": -1.825872, + "south": 53.29889, + "east": -0.852889, + "north": 53.66326, + "asset_name": "occumed-south-yorkshire.pmtiles", + "metadata_name": "occumed-south-yorkshire.json" + }, + { + "id": "southcoast-admreg", + "slug": "southcoast-admreg", + "name": "South Coast Administrative Region", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/southcoast-admreg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "southcoast-admreg", + "source_size_bytes": 113904735, + "west": -124.2851, + "south": 48.98059, + "east": -120.8077, + "north": 51.22667, + "asset_name": "occumed-southcoast-admreg.pmtiles", + "metadata_name": "occumed-southcoast-admreg.json" + }, + { + "id": "southern-zone--r1-c1", + "slug": "southern-zone--r1-c1", + "name": "Southern Zone 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "70.20789,5.943921,78.643203,12.9333", + "source_region_id": "southern-zone", + "source_size_bytes": 556085954, + "west": 70.20789, + "south": 5.943921, + "east": 78.643203, + "north": 12.9333, + "asset_name": "occumed-southern-zone--r1-c1.pmtiles", + "metadata_name": "occumed-southern-zone--r1-c1.json" + }, + { + "id": "southern-zone--r1-c2", + "slug": "southern-zone--r1-c2", + "name": "Southern Zone 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "78.643203,5.943921,87.078517,12.9333", + "source_region_id": "southern-zone", + "source_size_bytes": 556085954, + "west": 78.643203, + "south": 5.943921, + "east": 87.078517, + "north": 12.9333, + "asset_name": "occumed-southern-zone--r1-c2.pmtiles", + "metadata_name": "occumed-southern-zone--r1-c2.json" + }, + { + "id": "southern-zone--r1-c3", + "slug": "southern-zone--r1-c3", + "name": "Southern Zone 1.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "87.078517,5.943921,95.51383,12.9333", + "source_region_id": "southern-zone", + "source_size_bytes": 556085954, + "west": 87.078517, + "south": 5.943921, + "east": 95.51383, + "north": 12.9333, + "asset_name": "occumed-southern-zone--r1-c3.pmtiles", + "metadata_name": "occumed-southern-zone--r1-c3.json" + }, + { + "id": "southern-zone--r2-c1", + "slug": "southern-zone--r2-c1", + "name": "Southern Zone 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "70.20789,12.9333,78.643203,19.92268", + "source_region_id": "southern-zone", + "source_size_bytes": 556085954, + "west": 70.20789, + "south": 12.9333, + "east": 78.643203, + "north": 19.92268, + "asset_name": "occumed-southern-zone--r2-c1.pmtiles", + "metadata_name": "occumed-southern-zone--r2-c1.json" + }, + { + "id": "southern-zone--r2-c2", + "slug": "southern-zone--r2-c2", + "name": "Southern Zone 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "78.643203,12.9333,87.078517,19.92268", + "source_region_id": "southern-zone", + "source_size_bytes": 556085954, + "west": 78.643203, + "south": 12.9333, + "east": 87.078517, + "north": 19.92268, + "asset_name": "occumed-southern-zone--r2-c2.pmtiles", + "metadata_name": "occumed-southern-zone--r2-c2.json" + }, + { + "id": "southern-zone--r2-c3", + "slug": "southern-zone--r2-c3", + "name": "Southern Zone 2.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "87.078517,12.9333,95.51383,19.92268", + "source_region_id": "southern-zone", + "source_size_bytes": 556085954, + "west": 87.078517, + "south": 12.9333, + "east": 95.51383, + "north": 19.92268, + "asset_name": "occumed-southern-zone--r2-c3.pmtiles", + "metadata_name": "occumed-southern-zone--r2-c3.json" + }, + { + "id": "sri-lanka", + "slug": "sri-lanka", + "name": "Sri Lanka", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/sri-lanka-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sri-lanka", + "source_size_bytes": 143474729, + "west": 79.16416, + "south": 5.621275, + "east": 82.64612, + "north": 10.07153, + "asset_name": "occumed-sri-lanka.pmtiles", + "metadata_name": "occumed-sri-lanka.json" + }, + { + "id": "staffordshire", + "slug": "staffordshire", + "name": "Staffordshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/staffordshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "staffordshire", + "source_size_bytes": 30447205, + "west": -2.47182, + "south": 52.42202, + "east": -1.58449, + "north": 53.22743, + "asset_name": "occumed-staffordshire.pmtiles", + "metadata_name": "occumed-staffordshire.json" + }, + { + "id": "stredocesky", + "slug": "stredocesky", + "name": "Středočeský kraj (with Praha)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/stredocesky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "stredocesky", + "source_size_bytes": 179872162, + "west": 13.39579, + "south": 49.50088, + "east": 15.53613, + "north": 50.61926, + "asset_name": "occumed-stredocesky.pmtiles", + "metadata_name": "occumed-stredocesky.json" + }, + { + "id": "stuttgart-regbez", + "slug": "stuttgart-regbez", + "name": "Regierungsbezirk Stuttgart", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/baden-wuerttemberg/stuttgart-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "stuttgart-regbez", + "source_size_bytes": 210158527, + "west": 8.741474, + "south": 48.49386, + "east": 10.51495, + "north": 49.79456, + "asset_name": "occumed-stuttgart-regbez.pmtiles", + "metadata_name": "occumed-stuttgart-regbez.json" + }, + { + "id": "sud--r1-c1", + "slug": "sud--r1-c1", + "name": "Sud 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/sud-latest.osm.pbf", + "extract_bbox": "13.00131,37.80152,16.06315,40.357575", + "source_region_id": "sud", + "source_size_bytes": 411193446, + "west": 13.00131, + "south": 37.80152, + "east": 16.06315, + "north": 40.357575, + "asset_name": "occumed-sud--r1-c1.pmtiles", + "metadata_name": "occumed-sud--r1-c1.json" + }, + { + "id": "sud--r1-c2", + "slug": "sud--r1-c2", + "name": "Sud 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/sud-latest.osm.pbf", + "extract_bbox": "16.06315,37.80152,19.12499,40.357575", + "source_region_id": "sud", + "source_size_bytes": 411193446, + "west": 16.06315, + "south": 37.80152, + "east": 19.12499, + "north": 40.357575, + "asset_name": "occumed-sud--r1-c2.pmtiles", + "metadata_name": "occumed-sud--r1-c2.json" + }, + { + "id": "sud--r2-c1", + "slug": "sud--r2-c1", + "name": "Sud 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/sud-latest.osm.pbf", + "extract_bbox": "13.00131,40.357575,16.06315,42.91363", + "source_region_id": "sud", + "source_size_bytes": 411193446, + "west": 13.00131, + "south": 40.357575, + "east": 16.06315, + "north": 42.91363, + "asset_name": "occumed-sud--r2-c1.pmtiles", + "metadata_name": "occumed-sud--r2-c1.json" + }, + { + "id": "sud--r2-c2", + "slug": "sud--r2-c2", + "name": "Sud 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/sud-latest.osm.pbf", + "extract_bbox": "16.06315,40.357575,19.12499,42.91363", + "source_region_id": "sud", + "source_size_bytes": 411193446, + "west": 16.06315, + "south": 40.357575, + "east": 19.12499, + "north": 42.91363, + "asset_name": "occumed-sud--r2-c2.pmtiles", + "metadata_name": "occumed-sud--r2-c2.json" + }, + { + "id": "sudan", + "slug": "sudan", + "name": "Sudan", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/sudan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sudan", + "source_size_bytes": 202645978, + "west": 21.781, + "south": 8.653747, + "east": 39.62781, + "north": 22.34706, + "asset_name": "occumed-sudan.pmtiles", + "metadata_name": "occumed-sudan.json" + }, + { + "id": "sudeste--r1-c1", + "slug": "sudeste--r1-c1", + "name": "Sudeste 1.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-53.1189,-25.4993,-44.809917,-19.861875", + "source_region_id": "sudeste", + "source_size_bytes": 852763378, + "west": -53.1189, + "south": -25.4993, + "east": -44.809917, + "north": -19.861875, + "asset_name": "occumed-sudeste--r1-c1.pmtiles", + "metadata_name": "occumed-sudeste--r1-c1.json" + }, + { + "id": "sudeste--r1-c2", + "slug": "sudeste--r1-c2", + "name": "Sudeste 1.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-44.809917,-25.4993,-36.500933,-19.861875", + "source_region_id": "sudeste", + "source_size_bytes": 852763378, + "west": -44.809917, + "south": -25.4993, + "east": -36.500933, + "north": -19.861875, + "asset_name": "occumed-sudeste--r1-c2.pmtiles", + "metadata_name": "occumed-sudeste--r1-c2.json" + }, + { + "id": "sudeste--r1-c3", + "slug": "sudeste--r1-c3", + "name": "Sudeste 1.3", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-36.500933,-25.4993,-28.19195,-19.861875", + "source_region_id": "sudeste", + "source_size_bytes": 852763378, + "west": -36.500933, + "south": -25.4993, + "east": -28.19195, + "north": -19.861875, + "asset_name": "occumed-sudeste--r1-c3.pmtiles", + "metadata_name": "occumed-sudeste--r1-c3.json" + }, + { + "id": "sudeste--r2-c1", + "slug": "sudeste--r2-c1", + "name": "Sudeste 2.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-53.1189,-19.861875,-44.809917,-14.22445", + "source_region_id": "sudeste", + "source_size_bytes": 852763378, + "west": -53.1189, + "south": -19.861875, + "east": -44.809917, + "north": -14.22445, + "asset_name": "occumed-sudeste--r2-c1.pmtiles", + "metadata_name": "occumed-sudeste--r2-c1.json" + }, + { + "id": "sudeste--r2-c2", + "slug": "sudeste--r2-c2", + "name": "Sudeste 2.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-44.809917,-19.861875,-36.500933,-14.22445", + "source_region_id": "sudeste", + "source_size_bytes": 852763378, + "west": -44.809917, + "south": -19.861875, + "east": -36.500933, + "north": -14.22445, + "asset_name": "occumed-sudeste--r2-c2.pmtiles", + "metadata_name": "occumed-sudeste--r2-c2.json" + }, + { + "id": "sudeste--r2-c3", + "slug": "sudeste--r2-c3", + "name": "Sudeste 2.3", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-36.500933,-19.861875,-28.19195,-14.22445", + "source_region_id": "sudeste", + "source_size_bytes": 852763378, + "west": -36.500933, + "south": -19.861875, + "east": -28.19195, + "north": -14.22445, + "asset_name": "occumed-sudeste--r2-c3.pmtiles", + "metadata_name": "occumed-sudeste--r2-c3.json" + }, + { + "id": "suffolk", + "slug": "suffolk", + "name": "Suffolk", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/suffolk-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "suffolk", + "source_size_bytes": 33045529, + "west": 0.339563, + "south": 51.93285, + "east": 1.763681, + "north": 52.55013, + "asset_name": "occumed-suffolk.pmtiles", + "metadata_name": "occumed-suffolk.json" + }, + { + "id": "sul--r1-c1", + "slug": "sul--r1-c1", + "name": "Sul 1.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sul-latest.osm.pbf", + "extract_bbox": "-57.67273,-34.86424,-50.959515,-28.689035", + "source_region_id": "sul", + "source_size_bytes": 420511624, + "west": -57.67273, + "south": -34.86424, + "east": -50.959515, + "north": -28.689035, + "asset_name": "occumed-sul--r1-c1.pmtiles", + "metadata_name": "occumed-sul--r1-c1.json" + }, + { + "id": "sul--r1-c2", + "slug": "sul--r1-c2", + "name": "Sul 1.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sul-latest.osm.pbf", + "extract_bbox": "-50.959515,-34.86424,-44.2463,-28.689035", + "source_region_id": "sul", + "source_size_bytes": 420511624, + "west": -50.959515, + "south": -34.86424, + "east": -44.2463, + "north": -28.689035, + "asset_name": "occumed-sul--r1-c2.pmtiles", + "metadata_name": "occumed-sul--r1-c2.json" + }, + { + "id": "sul--r2-c1", + "slug": "sul--r2-c1", + "name": "Sul 2.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sul-latest.osm.pbf", + "extract_bbox": "-57.67273,-28.689035,-50.959515,-22.51383", + "source_region_id": "sul", + "source_size_bytes": 420511624, + "west": -57.67273, + "south": -28.689035, + "east": -50.959515, + "north": -22.51383, + "asset_name": "occumed-sul--r2-c1.pmtiles", + "metadata_name": "occumed-sul--r2-c1.json" + }, + { + "id": "sul--r2-c2", + "slug": "sul--r2-c2", + "name": "Sul 2.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sul-latest.osm.pbf", + "extract_bbox": "-50.959515,-28.689035,-44.2463,-22.51383", + "source_region_id": "sul", + "source_size_bytes": 420511624, + "west": -50.959515, + "south": -28.689035, + "east": -44.2463, + "north": -22.51383, + "asset_name": "occumed-sul--r2-c2.pmtiles", + "metadata_name": "occumed-sul--r2-c2.json" + }, + { + "id": "sulawesi", + "slug": "sulawesi", + "name": "Sulawesi", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/sulawesi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sulawesi", + "source_size_bytes": 157825264, + "west": 116.2518, + "south": -8.02115, + "east": 127.9523, + "north": 5.948258, + "asset_name": "occumed-sulawesi.pmtiles", + "metadata_name": "occumed-sulawesi.json" + }, + { + "id": "sumatra", + "slug": "sumatra", + "name": "Sumatra", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/sumatra-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sumatra", + "source_size_bytes": 282187401, + "west": 92.76481, + "south": -7.169929, + "east": 109.7524, + "north": 6.99933, + "asset_name": "occumed-sumatra.pmtiles", + "metadata_name": "occumed-sumatra.json" + }, + { + "id": "suriname", + "slug": "suriname", + "name": "Suriname", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/suriname-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "suriname", + "source_size_bytes": 21258085, + "west": -58.08461, + "south": 1.816773, + "east": -53.32819, + "north": 7.761698, + "asset_name": "occumed-suriname.pmtiles", + "metadata_name": "occumed-suriname.json" + }, + { + "id": "surrey", + "slug": "surrey", + "name": "Surrey", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/surrey-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "surrey", + "source_size_bytes": 42877616, + "west": -0.850593, + "south": 51.0715, + "east": 0.059897, + "north": 51.47288, + "asset_name": "occumed-surrey.pmtiles", + "metadata_name": "occumed-surrey.json" + }, + { + "id": "svalbard-janmayen", + "slug": "svalbard-janmayen", + "name": "Svalbard and Jan Mayen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/svalbard-janmayen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "svalbard-janmayen", + "source_size_bytes": 2716149, + "west": -10.49539, + "south": 70.26127, + "east": 35.34074, + "north": 81.05183, + "asset_name": "occumed-svalbard-janmayen.pmtiles", + "metadata_name": "occumed-svalbard-janmayen.json" + }, + { + "id": "swaziland", + "slug": "swaziland", + "name": "Swaziland", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/swaziland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "swaziland", + "source_size_bytes": 30567265, + "west": 30.78575, + "south": -27.31826, + "east": 32.13698, + "north": -25.71781, + "asset_name": "occumed-swaziland.pmtiles", + "metadata_name": "occumed-swaziland.json" + }, + { + "id": "sweden--r1-c1", + "slug": "sweden--r1-c1", + "name": "Sweden 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/sweden-latest.osm.pbf", + "extract_bbox": "10.54138,55.02652,17.38305,62.046475", + "source_region_id": "sweden", + "source_size_bytes": 811042909, + "west": 10.54138, + "south": 55.02652, + "east": 17.38305, + "north": 62.046475, + "asset_name": "occumed-sweden--r1-c1.pmtiles", + "metadata_name": "occumed-sweden--r1-c1.json" + }, + { + "id": "sweden--r1-c2", + "slug": "sweden--r1-c2", + "name": "Sweden 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/sweden-latest.osm.pbf", + "extract_bbox": "17.38305,55.02652,24.22472,62.046475", + "source_region_id": "sweden", + "source_size_bytes": 811042909, + "west": 17.38305, + "south": 55.02652, + "east": 24.22472, + "north": 62.046475, + "asset_name": "occumed-sweden--r1-c2.pmtiles", + "metadata_name": "occumed-sweden--r1-c2.json" + }, + { + "id": "sweden--r2-c1", + "slug": "sweden--r2-c1", + "name": "Sweden 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/sweden-latest.osm.pbf", + "extract_bbox": "10.54138,62.046475,17.38305,69.06643", + "source_region_id": "sweden", + "source_size_bytes": 811042909, + "west": 10.54138, + "south": 62.046475, + "east": 17.38305, + "north": 69.06643, + "asset_name": "occumed-sweden--r2-c1.pmtiles", + "metadata_name": "occumed-sweden--r2-c1.json" + }, + { + "id": "sweden--r2-c2", + "slug": "sweden--r2-c2", + "name": "Sweden 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/sweden-latest.osm.pbf", + "extract_bbox": "17.38305,62.046475,24.22472,69.06643", + "source_region_id": "sweden", + "source_size_bytes": 811042909, + "west": 17.38305, + "south": 62.046475, + "east": 24.22472, + "north": 69.06643, + "asset_name": "occumed-sweden--r2-c2.pmtiles", + "metadata_name": "occumed-sweden--r2-c2.json" + }, + { + "id": "swietokrzyskie", + "slug": "swietokrzyskie", + "name": "Województwo świętokrzyskie
(Świętokrzyskie Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/swietokrzyskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "swietokrzyskie", + "source_size_bytes": 86087098, + "west": 19.69901, + "south": 50.17974, + "east": 21.8758, + "north": 51.34824, + "asset_name": "occumed-swietokrzyskie.pmtiles", + "metadata_name": "occumed-swietokrzyskie.json" + }, + { + "id": "switzerland--r1-c1", + "slug": "switzerland--r1-c1", + "name": "Switzerland 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "5.954418,45.81642,7.468225,46.81384", + "source_region_id": "switzerland", + "source_size_bytes": 540364970, + "west": 5.954418, + "south": 45.81642, + "east": 7.468225, + "north": 46.81384, + "asset_name": "occumed-switzerland--r1-c1.pmtiles", + "metadata_name": "occumed-switzerland--r1-c1.json" + }, + { + "id": "switzerland--r1-c2", + "slug": "switzerland--r1-c2", + "name": "Switzerland 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "7.468225,45.81642,8.982033,46.81384", + "source_region_id": "switzerland", + "source_size_bytes": 540364970, + "west": 7.468225, + "south": 45.81642, + "east": 8.982033, + "north": 46.81384, + "asset_name": "occumed-switzerland--r1-c2.pmtiles", + "metadata_name": "occumed-switzerland--r1-c2.json" + }, + { + "id": "switzerland--r1-c3", + "slug": "switzerland--r1-c3", + "name": "Switzerland 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "8.982033,45.81642,10.49584,46.81384", + "source_region_id": "switzerland", + "source_size_bytes": 540364970, + "west": 8.982033, + "south": 45.81642, + "east": 10.49584, + "north": 46.81384, + "asset_name": "occumed-switzerland--r1-c3.pmtiles", + "metadata_name": "occumed-switzerland--r1-c3.json" + }, + { + "id": "switzerland--r2-c1", + "slug": "switzerland--r2-c1", + "name": "Switzerland 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "5.954418,46.81384,7.468225,47.81126", + "source_region_id": "switzerland", + "source_size_bytes": 540364970, + "west": 5.954418, + "south": 46.81384, + "east": 7.468225, + "north": 47.81126, + "asset_name": "occumed-switzerland--r2-c1.pmtiles", + "metadata_name": "occumed-switzerland--r2-c1.json" + }, + { + "id": "switzerland--r2-c2", + "slug": "switzerland--r2-c2", + "name": "Switzerland 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "7.468225,46.81384,8.982033,47.81126", + "source_region_id": "switzerland", + "source_size_bytes": 540364970, + "west": 7.468225, + "south": 46.81384, + "east": 8.982033, + "north": 47.81126, + "asset_name": "occumed-switzerland--r2-c2.pmtiles", + "metadata_name": "occumed-switzerland--r2-c2.json" + }, + { + "id": "switzerland--r2-c3", + "slug": "switzerland--r2-c3", + "name": "Switzerland 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "8.982033,46.81384,10.49584,47.81126", + "source_region_id": "switzerland", + "source_size_bytes": 540364970, + "west": 8.982033, + "south": 46.81384, + "east": 10.49584, + "north": 47.81126, + "asset_name": "occumed-switzerland--r2-c3.pmtiles", + "metadata_name": "occumed-switzerland--r2-c3.json" + }, + { + "id": "syria", + "slug": "syria", + "name": "Syria", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/syria-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "syria", + "source_size_bytes": 81239818, + "west": 35.28548, + "south": 32.3066, + "east": 42.38383, + "north": 37.32239, + "asset_name": "occumed-syria.pmtiles", + "metadata_name": "occumed-syria.json" + }, + { + "id": "taiwan", + "slug": "taiwan", + "name": "Taiwan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/taiwan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "taiwan", + "source_size_bytes": 325312625, + "west": 118.1036, + "south": 20.72799, + "east": 122.9312, + "north": 26.60305, + "asset_name": "occumed-taiwan.pmtiles", + "metadata_name": "occumed-taiwan.json" + }, + { + "id": "tajikistan", + "slug": "tajikistan", + "name": "Tajikistan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/tajikistan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tajikistan", + "source_size_bytes": 47975158, + "west": 67.3201, + "south": 36.66374, + "east": 75.16571, + "north": 41.05502, + "asset_name": "occumed-tajikistan.pmtiles", + "metadata_name": "occumed-tajikistan.json" + }, + { + "id": "tanzania--r1-c1", + "slug": "tanzania--r1-c1", + "name": "Tanzania 1.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "29.24395,-11.77595,33.060923,-6.375469", + "source_region_id": "tanzania", + "source_size_bytes": 705088172, + "west": 29.24395, + "south": -11.77595, + "east": 33.060923, + "north": -6.375469, + "asset_name": "occumed-tanzania--r1-c1.pmtiles", + "metadata_name": "occumed-tanzania--r1-c1.json" + }, + { + "id": "tanzania--r1-c2", + "slug": "tanzania--r1-c2", + "name": "Tanzania 1.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "33.060923,-11.77595,36.877897,-6.375469", + "source_region_id": "tanzania", + "source_size_bytes": 705088172, + "west": 33.060923, + "south": -11.77595, + "east": 36.877897, + "north": -6.375469, + "asset_name": "occumed-tanzania--r1-c2.pmtiles", + "metadata_name": "occumed-tanzania--r1-c2.json" + }, + { + "id": "tanzania--r1-c3", + "slug": "tanzania--r1-c3", + "name": "Tanzania 1.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "36.877897,-11.77595,40.69487,-6.375469", + "source_region_id": "tanzania", + "source_size_bytes": 705088172, + "west": 36.877897, + "south": -11.77595, + "east": 40.69487, + "north": -6.375469, + "asset_name": "occumed-tanzania--r1-c3.pmtiles", + "metadata_name": "occumed-tanzania--r1-c3.json" + }, + { + "id": "tanzania--r2-c1", + "slug": "tanzania--r2-c1", + "name": "Tanzania 2.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "29.24395,-6.375469,33.060923,-0.974988", + "source_region_id": "tanzania", + "source_size_bytes": 705088172, + "west": 29.24395, + "south": -6.375469, + "east": 33.060923, + "north": -0.974988, + "asset_name": "occumed-tanzania--r2-c1.pmtiles", + "metadata_name": "occumed-tanzania--r2-c1.json" + }, + { + "id": "tanzania--r2-c2", + "slug": "tanzania--r2-c2", + "name": "Tanzania 2.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "33.060923,-6.375469,36.877897,-0.974988", + "source_region_id": "tanzania", + "source_size_bytes": 705088172, + "west": 33.060923, + "south": -6.375469, + "east": 36.877897, + "north": -0.974988, + "asset_name": "occumed-tanzania--r2-c2.pmtiles", + "metadata_name": "occumed-tanzania--r2-c2.json" + }, + { + "id": "tanzania--r2-c3", + "slug": "tanzania--r2-c3", + "name": "Tanzania 2.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "36.877897,-6.375469,40.69487,-0.974988", + "source_region_id": "tanzania", + "source_size_bytes": 705088172, + "west": 36.877897, + "south": -6.375469, + "east": 40.69487, + "north": -0.974988, + "asset_name": "occumed-tanzania--r2-c3.pmtiles", + "metadata_name": "occumed-tanzania--r2-c3.json" + }, + { + "id": "tasmania", + "slug": "tasmania", + "name": "Tasmania", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/tasmania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tasmania", + "source_size_bytes": 53230787, + "west": 143.4704, + "south": -56.86236, + "east": 161.6707, + "north": -39.19687, + "asset_name": "occumed-tasmania.pmtiles", + "metadata_name": "occumed-tasmania.json" + }, + { + "id": "thailand", + "slug": "thailand", + "name": "Thailand", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/thailand-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "thailand", + "source_size_bytes": 325539274, + "west": 97.13562, + "south": 5.597877, + "east": 105.6392, + "north": 20.46875, + "asset_name": "occumed-thailand.pmtiles", + "metadata_name": "occumed-thailand.json" + }, + { + "id": "thueringen", + "slug": "thueringen", + "name": "Thüringen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/thueringen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "thueringen", + "source_size_bytes": 158775288, + "west": 9.863176, + "south": 50.19971, + "east": 12.66106, + "north": 51.65237, + "asset_name": "occumed-thueringen.pmtiles", + "metadata_name": "occumed-thueringen.json" + }, + { + "id": "tianjin", + "slug": "tianjin", + "name": "Tianjin", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/tianjin-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tianjin", + "source_size_bytes": 14762500, + "west": 116.6944, + "south": 38.55327, + "east": 118.063, + "north": 40.25307, + "asset_name": "occumed-tianjin.pmtiles", + "metadata_name": "occumed-tianjin.json" + }, + { + "id": "tibet", + "slug": "tibet", + "name": "Tibet", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/tibet-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tibet", + "source_size_bytes": 48447579, + "west": 78.29403, + "south": 27.19968, + "east": 99.12552, + "north": 36.53, + "asset_name": "occumed-tibet.pmtiles", + "metadata_name": "occumed-tibet.json" + }, + { + "id": "togo", + "slug": "togo", + "name": "Togo", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/togo-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "togo", + "source_size_bytes": 62213181, + "west": -0.148338, + "south": 5.892541, + "east": 1.810942, + "north": 11.14395, + "asset_name": "occumed-togo.pmtiles", + "metadata_name": "occumed-togo.json" + }, + { + "id": "tohoku", + "slug": "tohoku", + "name": "Tōhoku region", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/tohoku-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tohoku", + "source_size_bytes": 305184101, + "west": 138.9325, + "south": 36.52861, + "east": 142.8782, + "north": 41.64179, + "asset_name": "occumed-tohoku.pmtiles", + "metadata_name": "occumed-tohoku.json" + }, + { + "id": "tokelau", + "slug": "tokelau", + "name": "Tokelau", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/tokelau-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tokelau", + "source_size_bytes": 144472, + "west": -176.8579, + "south": -11.08137, + "east": -167.4097, + "north": -6.664586, + "asset_name": "occumed-tokelau.pmtiles", + "metadata_name": "occumed-tokelau.json" + }, + { + "id": "tonga", + "slug": "tonga", + "name": "Tonga", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/tonga-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tonga", + "source_size_bytes": 3716588, + "west": -178.6487, + "south": -25.68413, + "east": -171.3053, + "north": -14.15464, + "asset_name": "occumed-tonga.pmtiles", + "metadata_name": "occumed-tonga.json" + }, + { + "id": "trondelag", + "slug": "trondelag", + "name": "Trøndelag
(Central Norway)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/trondelag-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "trondelag", + "source_size_bytes": 182811865, + "west": 5.790873, + "south": 62.25533, + "east": 14.33543, + "north": 65.94955, + "asset_name": "occumed-trondelag.pmtiles", + "metadata_name": "occumed-trondelag.json" + }, + { + "id": "tuebingen-regbez", + "slug": "tuebingen-regbez", + "name": "Regierungsbezirk Tübingen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/baden-wuerttemberg/tuebingen-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tuebingen-regbez", + "source_size_bytes": 124890275, + "west": 8.645593, + "south": 47.53246, + "east": 10.27309, + "north": 48.6348, + "asset_name": "occumed-tuebingen-regbez.pmtiles", + "metadata_name": "occumed-tuebingen-regbez.json" + }, + { + "id": "tunisia", + "slug": "tunisia", + "name": "Tunisia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tunisia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tunisia", + "source_size_bytes": 83880659, + "west": 7.513961, + "south": 30.20864, + "east": 12.068, + "north": 37.77474, + "asset_name": "occumed-tunisia.pmtiles", + "metadata_name": "occumed-tunisia.json" + }, + { + "id": "turkey--r1-c1", + "slug": "turkey--r1-c1", + "name": "Turkey 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "25.52398,35.717,31.969293,39.395905", + "source_region_id": "turkey", + "source_size_bytes": 639432795, + "west": 25.52398, + "south": 35.717, + "east": 31.969293, + "north": 39.395905, + "asset_name": "occumed-turkey--r1-c1.pmtiles", + "metadata_name": "occumed-turkey--r1-c1.json" + }, + { + "id": "turkey--r1-c2", + "slug": "turkey--r1-c2", + "name": "Turkey 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "31.969293,35.717,38.414607,39.395905", + "source_region_id": "turkey", + "source_size_bytes": 639432795, + "west": 31.969293, + "south": 35.717, + "east": 38.414607, + "north": 39.395905, + "asset_name": "occumed-turkey--r1-c2.pmtiles", + "metadata_name": "occumed-turkey--r1-c2.json" + }, + { + "id": "turkey--r1-c3", + "slug": "turkey--r1-c3", + "name": "Turkey 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "38.414607,35.717,44.85992,39.395905", + "source_region_id": "turkey", + "source_size_bytes": 639432795, + "west": 38.414607, + "south": 35.717, + "east": 44.85992, + "north": 39.395905, + "asset_name": "occumed-turkey--r1-c3.pmtiles", + "metadata_name": "occumed-turkey--r1-c3.json" + }, + { + "id": "turkey--r2-c1", + "slug": "turkey--r2-c1", + "name": "Turkey 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "25.52398,39.395905,31.969293,43.07481", + "source_region_id": "turkey", + "source_size_bytes": 639432795, + "west": 25.52398, + "south": 39.395905, + "east": 31.969293, + "north": 43.07481, + "asset_name": "occumed-turkey--r2-c1.pmtiles", + "metadata_name": "occumed-turkey--r2-c1.json" + }, + { + "id": "turkey--r2-c2", + "slug": "turkey--r2-c2", + "name": "Turkey 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "31.969293,39.395905,38.414607,43.07481", + "source_region_id": "turkey", + "source_size_bytes": 639432795, + "west": 31.969293, + "south": 39.395905, + "east": 38.414607, + "north": 43.07481, + "asset_name": "occumed-turkey--r2-c2.pmtiles", + "metadata_name": "occumed-turkey--r2-c2.json" + }, + { + "id": "turkey--r2-c3", + "slug": "turkey--r2-c3", + "name": "Turkey 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "38.414607,39.395905,44.85992,43.07481", + "source_region_id": "turkey", + "source_size_bytes": 639432795, + "west": 38.414607, + "south": 39.395905, + "east": 44.85992, + "north": 43.07481, + "asset_name": "occumed-turkey--r2-c3.pmtiles", + "metadata_name": "occumed-turkey--r2-c3.json" + }, + { + "id": "turkmenistan", + "slug": "turkmenistan", + "name": "Turkmenistan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/turkmenistan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "turkmenistan", + "source_size_bytes": 24589281, + "west": 51.83271, + "south": 35.12355, + "east": 66.72272, + "north": 42.81253, + "asset_name": "occumed-turkmenistan.pmtiles", + "metadata_name": "occumed-turkmenistan.json" + }, + { + "id": "tuvalu", + "slug": "tuvalu", + "name": "Tuvalu", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/tuvalu-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tuvalu", + "source_size_bytes": 357158, + "west": 172.9953, + "south": -13.24039, + "east": -176.757, + "north": -4.061646, + "asset_name": "occumed-tuvalu.pmtiles", + "metadata_name": "occumed-tuvalu.json" + }, + { + "id": "tyne-and-wear", + "slug": "tyne-and-wear", + "name": "Tyne and Wear", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/tyne-and-wear-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tyne-and-wear", + "source_size_bytes": 19296764, + "west": -1.853879, + "south": 54.79775, + "east": -1.262592, + "north": 55.10949, + "asset_name": "occumed-tyne-and-wear.pmtiles", + "metadata_name": "occumed-tyne-and-wear.json" + }, + { + "id": "uganda", + "slug": "uganda", + "name": "Uganda", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/uganda-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "uganda", + "source_size_bytes": 370445224, + "west": 29.57056, + "south": -1.487315, + "east": 35.01031, + "north": 4.250552, + "asset_name": "occumed-uganda.pmtiles", + "metadata_name": "occumed-uganda.json" + }, + { + "id": "ukraine--r1-c1", + "slug": "ukraine--r1-c1", + "name": "Ukraine (with Crimea) 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "22.13264,44.00862,28.167797,48.19756", + "source_region_id": "ukraine", + "source_size_bytes": 870152151, + "west": 22.13264, + "south": 44.00862, + "east": 28.167797, + "north": 48.19756, + "asset_name": "occumed-ukraine--r1-c1.pmtiles", + "metadata_name": "occumed-ukraine--r1-c1.json" + }, + { + "id": "ukraine--r1-c2", + "slug": "ukraine--r1-c2", + "name": "Ukraine (with Crimea) 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "28.167797,44.00862,34.202953,48.19756", + "source_region_id": "ukraine", + "source_size_bytes": 870152151, + "west": 28.167797, + "south": 44.00862, + "east": 34.202953, + "north": 48.19756, + "asset_name": "occumed-ukraine--r1-c2.pmtiles", + "metadata_name": "occumed-ukraine--r1-c2.json" + }, + { + "id": "ukraine--r1-c3", + "slug": "ukraine--r1-c3", + "name": "Ukraine (with Crimea) 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "34.202953,44.00862,40.23811,48.19756", + "source_region_id": "ukraine", + "source_size_bytes": 870152151, + "west": 34.202953, + "south": 44.00862, + "east": 40.23811, + "north": 48.19756, + "asset_name": "occumed-ukraine--r1-c3.pmtiles", + "metadata_name": "occumed-ukraine--r1-c3.json" + }, + { + "id": "ukraine--r2-c1", + "slug": "ukraine--r2-c1", + "name": "Ukraine (with Crimea) 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "22.13264,48.19756,28.167797,52.3865", + "source_region_id": "ukraine", + "source_size_bytes": 870152151, + "west": 22.13264, + "south": 48.19756, + "east": 28.167797, + "north": 52.3865, + "asset_name": "occumed-ukraine--r2-c1.pmtiles", + "metadata_name": "occumed-ukraine--r2-c1.json" + }, + { + "id": "ukraine--r2-c2", + "slug": "ukraine--r2-c2", + "name": "Ukraine (with Crimea) 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "28.167797,48.19756,34.202953,52.3865", + "source_region_id": "ukraine", + "source_size_bytes": 870152151, + "west": 28.167797, + "south": 48.19756, + "east": 34.202953, + "north": 52.3865, + "asset_name": "occumed-ukraine--r2-c2.pmtiles", + "metadata_name": "occumed-ukraine--r2-c2.json" + }, + { + "id": "ukraine--r2-c3", + "slug": "ukraine--r2-c3", + "name": "Ukraine (with Crimea) 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "34.202953,48.19756,40.23811,52.3865", + "source_region_id": "ukraine", + "source_size_bytes": 870152151, + "west": 34.202953, + "south": 48.19756, + "east": 40.23811, + "north": 52.3865, + "asset_name": "occumed-ukraine--r2-c3.pmtiles", + "metadata_name": "occumed-ukraine--r2-c3.json" + }, + { + "id": "unterfranken", + "slug": "unterfranken", + "name": "Unterfranken", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bayern/unterfranken-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "unterfranken", + "source_size_bytes": 103903924, + "west": 8.975186, + "south": 49.47911, + "east": 10.88719, + "north": 50.56623, + "asset_name": "occumed-unterfranken.pmtiles", + "metadata_name": "occumed-unterfranken.json" + }, + { + "id": "ural-fed-district", + "slug": "ural-fed-district", + "name": "Ural Federal District", + "continent": "ural-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/ural-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ural-fed-district", + "source_size_bytes": 392764484, + "west": 57.04259, + "south": 51.8264, + "east": 86.0952, + "north": 75.011, + "asset_name": "occumed-ural-fed-district.pmtiles", + "metadata_name": "occumed-ural-fed-district.json" + }, + { + "id": "uruguay", + "slug": "uruguay", + "name": "Uruguay", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/uruguay-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "uruguay", + "source_size_bytes": 55980803, + "west": -58.52589, + "south": -36.2487, + "east": -52.7723, + "north": -30.07355, + "asset_name": "occumed-uruguay.pmtiles", + "metadata_name": "occumed-uruguay.json" + }, + { + "id": "us/alabama", + "slug": "us--alabama", + "name": "us/alabama", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/alabama-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/alabama", + "source_size_bytes": 146595673, + "west": -88.48389, + "south": 29.95494, + "east": -84.88336, + "north": 35.00872, + "asset_name": "occumed-us--alabama.pmtiles", + "metadata_name": "occumed-us--alabama.json" + }, + { + "id": "us/alaska", + "slug": "us--alaska", + "name": "us/alaska", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/alaska-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/alaska", + "source_size_bytes": 143675142, + "west": 171.7602, + "south": 49.8089, + "east": -129.7998, + "north": 72.98845, + "asset_name": "occumed-us--alaska.pmtiles", + "metadata_name": "occumed-us--alaska.json" + }, + { + "id": "us/arizona", + "slug": "us--arizona", + "name": "us/arizona", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/arizona-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/arizona", + "source_size_bytes": 299604833, + "west": -114.8224, + "south": 31.32659, + "east": -109.0437, + "north": 37.00596, + "asset_name": "occumed-us--arizona.pmtiles", + "metadata_name": "occumed-us--arizona.json" + }, + { + "id": "us/arkansas", + "slug": "us--arkansas", + "name": "us/arkansas", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/arkansas-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/arkansas", + "source_size_bytes": 98639067, + "west": -94.62217, + "south": 33.0038, + "east": -89.63987, + "north": 36.51585, + "asset_name": "occumed-us--arkansas.pmtiles", + "metadata_name": "occumed-us--arkansas.json" + }, + { + "id": "us/colorado", + "slug": "us--colorado", + "name": "us/colorado", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/colorado-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/colorado", + "source_size_bytes": 376544513, + "west": -109.0631, + "south": 36.98943, + "east": -102.0355, + "north": 41.00388, + "asset_name": "occumed-us--colorado.pmtiles", + "metadata_name": "occumed-us--colorado.json" + }, + { + "id": "us/connecticut", + "slug": "us--connecticut", + "name": "us/connecticut", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/connecticut-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/connecticut", + "source_size_bytes": 216029982, + "west": -73.72889, + "south": 40.96401, + "east": -71.7853, + "north": 42.05229, + "asset_name": "occumed-us--connecticut.pmtiles", + "metadata_name": "occumed-us--connecticut.json" + }, + { + "id": "us/delaware", + "slug": "us--delaware", + "name": "us/delaware", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/delaware-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/delaware", + "source_size_bytes": 21900340, + "west": -75.78974, + "south": 38.45043, + "east": -74.98401, + "north": 39.84262, + "asset_name": "occumed-us--delaware.pmtiles", + "metadata_name": "occumed-us--delaware.json" + }, + { + "id": "us/district-of-columbia", + "slug": "us--district-of-columbia", + "name": "us/district-of-columbia", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/district-of-columbia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/district-of-columbia", + "source_size_bytes": 20902041, + "west": -77.1201, + "south": 38.79099, + "east": -76.90906, + "north": 38.99603, + "asset_name": "occumed-us--district-of-columbia.pmtiles", + "metadata_name": "occumed-us--district-of-columbia.json" + }, + { + "id": "us/florida--r1-c1", + "slug": "us--florida--r1-c1", + "name": "us/florida 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-88.46896,24.20031,-85.458313,27.60169", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -88.46896, + "south": 24.20031, + "east": -85.458313, + "north": 27.60169, + "asset_name": "occumed-us--florida--r1-c1.pmtiles", + "metadata_name": "occumed-us--florida--r1-c1.json" + }, + { + "id": "us/florida--r1-c2", + "slug": "us--florida--r1-c2", + "name": "us/florida 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-85.458313,24.20031,-82.447667,27.60169", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -85.458313, + "south": 24.20031, + "east": -82.447667, + "north": 27.60169, + "asset_name": "occumed-us--florida--r1-c2.pmtiles", + "metadata_name": "occumed-us--florida--r1-c2.json" + }, + { + "id": "us/florida--r1-c3", + "slug": "us--florida--r1-c3", + "name": "us/florida 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-82.447667,24.20031,-79.43702,27.60169", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -82.447667, + "south": 24.20031, + "east": -79.43702, + "north": 27.60169, + "asset_name": "occumed-us--florida--r1-c3.pmtiles", + "metadata_name": "occumed-us--florida--r1-c3.json" + }, + { + "id": "us/florida--r2-c1", + "slug": "us--florida--r2-c1", + "name": "us/florida 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-88.46896,27.60169,-85.458313,31.00307", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -88.46896, + "south": 27.60169, + "east": -85.458313, + "north": 31.00307, + "asset_name": "occumed-us--florida--r2-c1.pmtiles", + "metadata_name": "occumed-us--florida--r2-c1.json" + }, + { + "id": "us/florida--r2-c2", + "slug": "us--florida--r2-c2", + "name": "us/florida 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-85.458313,27.60169,-82.447667,31.00307", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -85.458313, + "south": 27.60169, + "east": -82.447667, + "north": 31.00307, + "asset_name": "occumed-us--florida--r2-c2.pmtiles", + "metadata_name": "occumed-us--florida--r2-c2.json" + }, + { + "id": "us/florida--r2-c3", + "slug": "us--florida--r2-c3", + "name": "us/florida 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-82.447667,27.60169,-79.43702,31.00307", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -82.447667, + "south": 27.60169, + "east": -79.43702, + "north": 31.00307, + "asset_name": "occumed-us--florida--r2-c3.pmtiles", + "metadata_name": "occumed-us--florida--r2-c3.json" + }, + { + "id": "us/georgia", + "slug": "us--georgia", + "name": "Georgia", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/georgia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/georgia", + "source_size_bytes": 354468038, + "west": -85.6068, + "south": 30.35365, + "east": -80.74313, + "north": 35.00356, + "asset_name": "occumed-us--georgia.pmtiles", + "metadata_name": "occumed-us--georgia.json" + }, + { + "id": "us/hawaii", + "slug": "us--hawaii", + "name": "us/hawaii", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/hawaii-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/hawaii", + "source_size_bytes": 26461028, + "west": -179.5994, + "south": 15.92097, + "east": -142.6511, + "north": 29.02109, + "asset_name": "occumed-us--hawaii.pmtiles", + "metadata_name": "occumed-us--hawaii.json" + }, + { + "id": "us/idaho", + "slug": "us--idaho", + "name": "us/idaho", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/idaho-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/idaho", + "source_size_bytes": 127196094, + "west": -117.246, + "south": 41.98306, + "east": -111.0431, + "north": 49.00819, + "asset_name": "occumed-us--idaho.pmtiles", + "metadata_name": "occumed-us--idaho.json" + }, + { + "id": "us/illinois", + "slug": "us--illinois", + "name": "us/illinois", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/illinois-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/illinois", + "source_size_bytes": 355052612, + "west": -91.51608, + "south": 36.96731, + "east": -87.49264, + "north": 42.50941, + "asset_name": "occumed-us--illinois.pmtiles", + "metadata_name": "occumed-us--illinois.json" + }, + { + "id": "us/indiana", + "slug": "us--indiana", + "name": "us/indiana", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/indiana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/indiana", + "source_size_bytes": 196232921, + "west": -88.10327, + "south": 37.76911, + "east": -84.78042, + "north": 41.76301, + "asset_name": "occumed-us--indiana.pmtiles", + "metadata_name": "occumed-us--indiana.json" + }, + { + "id": "us/iowa", + "slug": "us--iowa", + "name": "us/iowa", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/iowa-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/iowa", + "source_size_bytes": 132366034, + "west": -96.6426, + "south": 40.37266, + "east": -90.13581, + "north": 43.50182, + "asset_name": "occumed-us--iowa.pmtiles", + "metadata_name": "occumed-us--iowa.json" + }, + { + "id": "us/kansas", + "slug": "us--kansas", + "name": "us/kansas", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/kansas-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/kansas", + "source_size_bytes": 114192334, + "west": -102.0535, + "south": 36.99136, + "east": -94.58926, + "north": 40.00375, + "asset_name": "occumed-us--kansas.pmtiles", + "metadata_name": "occumed-us--kansas.json" + }, + { + "id": "us/kentucky", + "slug": "us--kentucky", + "name": "us/kentucky", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/kentucky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/kentucky", + "source_size_bytes": 152904061, + "west": -89.58125, + "south": 36.49325, + "east": -81.95512, + "north": 39.14831, + "asset_name": "occumed-us--kentucky.pmtiles", + "metadata_name": "occumed-us--kentucky.json" + }, + { + "id": "us/louisiana", + "slug": "us--louisiana", + "name": "us/louisiana", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/louisiana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/louisiana", + "source_size_bytes": 145307734, + "west": -94.04376, + "south": 28.14452, + "east": -88.66684, + "north": 33.02025, + "asset_name": "occumed-us--louisiana.pmtiles", + "metadata_name": "occumed-us--louisiana.json" + }, + { + "id": "us/maine", + "slug": "us--maine", + "name": "us/maine", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/maine-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/maine", + "source_size_bytes": 90355588, + "west": -71.08891, + "south": 42.85443, + "east": -66.87164, + "north": 47.46222, + "asset_name": "occumed-us--maine.pmtiles", + "metadata_name": "occumed-us--maine.json" + }, + { + "id": "us/maryland", + "slug": "us--maryland", + "name": "us/maryland", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/maryland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/maryland", + "source_size_bytes": 213177709, + "west": -79.48857, + "south": 37.88396, + "east": -74.95408, + "north": 39.72684, + "asset_name": "occumed-us--maryland.pmtiles", + "metadata_name": "occumed-us--maryland.json" + }, + { + "id": "us/massachusetts", + "slug": "us--massachusetts", + "name": "us/massachusetts", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/massachusetts-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/massachusetts", + "source_size_bytes": 308781330, + "west": -73.51096, + "south": 40.88291, + "east": -68.73438, + "north": 42.88768, + "asset_name": "occumed-us--massachusetts.pmtiles", + "metadata_name": "occumed-us--massachusetts.json" + }, + { + "id": "us/michigan", + "slug": "us--michigan", + "name": "us/michigan", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/michigan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/michigan", + "source_size_bytes": 310051817, + "west": -90.41981, + "south": 41.69439, + "east": -82.06913, + "north": 48.35021, + "asset_name": "occumed-us--michigan.pmtiles", + "metadata_name": "occumed-us--michigan.json" + }, + { + "id": "us/minnesota", + "slug": "us--minnesota", + "name": "us/minnesota", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/minnesota-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/minnesota", + "source_size_bytes": 281947541, + "west": -97.24987, + "south": 43.49909, + "east": -89.48612, + "north": 49.40714, + "asset_name": "occumed-us--minnesota.pmtiles", + "metadata_name": "occumed-us--minnesota.json" + }, + { + "id": "us/mississippi", + "slug": "us--mississippi", + "name": "us/mississippi", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/mississippi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/mississippi", + "source_size_bytes": 93489595, + "west": -91.65857, + "south": 30.04168, + "east": -88.09292, + "north": 35.00055, + "asset_name": "occumed-us--mississippi.pmtiles", + "metadata_name": "occumed-us--mississippi.json" + }, + { + "id": "us/missouri", + "slug": "us--missouri", + "name": "us/missouri", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/missouri-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/missouri", + "source_size_bytes": 192689010, + "west": -95.77751, + "south": 35.99466, + "east": -89.0891, + "north": 40.61664, + "asset_name": "occumed-us--missouri.pmtiles", + "metadata_name": "occumed-us--missouri.json" + }, + { + "id": "us/montana", + "slug": "us--montana", + "name": "us/montana", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/montana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/montana", + "source_size_bytes": 99460231, + "west": -116.0518, + "south": 44.35556, + "east": -104.0355, + "north": 49.00769, + "asset_name": "occumed-us--montana.pmtiles", + "metadata_name": "occumed-us--montana.json" + }, + { + "id": "us/nebraska", + "slug": "us--nebraska", + "name": "us/nebraska", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/nebraska-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/nebraska", + "source_size_bytes": 99388526, + "west": -104.0575, + "south": 40.00015, + "east": -95.30703, + "north": 43.00172, + "asset_name": "occumed-us--nebraska.pmtiles", + "metadata_name": "occumed-us--nebraska.json" + }, + { + "id": "us/nevada", + "slug": "us--nevada", + "name": "us/nevada", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/nevada-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/nevada", + "source_size_bytes": 122436292, + "west": -120.0074, + "south": 35.00053, + "east": -114.0379, + "north": 42.00391, + "asset_name": "occumed-us--nevada.pmtiles", + "metadata_name": "occumed-us--nevada.json" + }, + { + "id": "us/new-hampshire", + "slug": "us--new-hampshire", + "name": "us/new-hampshire", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-hampshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/new-hampshire", + "source_size_bytes": 70708622, + "west": -72.5588, + "south": 42.69669, + "east": -70.48692, + "north": 45.31002, + "asset_name": "occumed-us--new-hampshire.pmtiles", + "metadata_name": "occumed-us--new-hampshire.json" + }, + { + "id": "us/new-jersey", + "slug": "us--new-jersey", + "name": "us/new-jersey", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-jersey-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/new-jersey", + "source_size_bytes": 162292588, + "west": -75.57879, + "south": 38.75433, + "east": -73.67898, + "north": 41.35807, + "asset_name": "occumed-us--new-jersey.pmtiles", + "metadata_name": "occumed-us--new-jersey.json" + }, + { + "id": "us/new-mexico", + "slug": "us--new-mexico", + "name": "us/new-mexico", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-mexico-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/new-mexico", + "source_size_bytes": 135569622, + "west": -109.0504, + "south": 31.33043, + "east": -102.9979, + "north": 37.00184, + "asset_name": "occumed-us--new-mexico.pmtiles", + "metadata_name": "occumed-us--new-mexico.json" + }, + { + "id": "us/new-york--r1-c1", + "slug": "us--new-york--r1-c1", + "name": "us/new-york 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-79.76483,40.43922,-77.063487,42.72844", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -79.76483, + "south": 40.43922, + "east": -77.063487, + "north": 42.72844, + "asset_name": "occumed-us--new-york--r1-c1.pmtiles", + "metadata_name": "occumed-us--new-york--r1-c1.json" + }, + { + "id": "us/new-york--r1-c2", + "slug": "us--new-york--r1-c2", + "name": "us/new-york 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-77.063487,40.43922,-74.362143,42.72844", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -77.063487, + "south": 40.43922, + "east": -74.362143, + "north": 42.72844, + "asset_name": "occumed-us--new-york--r1-c2.pmtiles", + "metadata_name": "occumed-us--new-york--r1-c2.json" + }, + { + "id": "us/new-york--r1-c3", + "slug": "us--new-york--r1-c3", + "name": "us/new-york 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-74.362143,40.43922,-71.6608,42.72844", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -74.362143, + "south": 40.43922, + "east": -71.6608, + "north": 42.72844, + "asset_name": "occumed-us--new-york--r1-c3.pmtiles", + "metadata_name": "occumed-us--new-york--r1-c3.json" + }, + { + "id": "us/new-york--r2-c1", + "slug": "us--new-york--r2-c1", + "name": "us/new-york 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-79.76483,42.72844,-77.063487,45.01766", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -79.76483, + "south": 42.72844, + "east": -77.063487, + "north": 45.01766, + "asset_name": "occumed-us--new-york--r2-c1.pmtiles", + "metadata_name": "occumed-us--new-york--r2-c1.json" + }, + { + "id": "us/new-york--r2-c2", + "slug": "us--new-york--r2-c2", + "name": "us/new-york 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-77.063487,42.72844,-74.362143,45.01766", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -77.063487, + "south": 42.72844, + "east": -74.362143, + "north": 45.01766, + "asset_name": "occumed-us--new-york--r2-c2.pmtiles", + "metadata_name": "occumed-us--new-york--r2-c2.json" + }, + { + "id": "us/new-york--r2-c3", + "slug": "us--new-york--r2-c3", + "name": "us/new-york 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-74.362143,42.72844,-71.6608,45.01766", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -74.362143, + "south": 42.72844, + "east": -71.6608, + "north": 45.01766, + "asset_name": "occumed-us--new-york--r2-c3.pmtiles", + "metadata_name": "occumed-us--new-york--r2-c3.json" + }, + { + "id": "us/north-carolina--r1-c1", + "slug": "us--north-carolina--r1-c1", + "name": "us/north-carolina 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-carolina-latest.osm.pbf", + "extract_bbox": "-84.32219,33.12992,-81.676543,36.58979", + "source_region_id": "us/north-carolina", + "source_size_bytes": 426018847, + "west": -84.32219, + "south": 33.12992, + "east": -81.676543, + "north": 36.58979, + "asset_name": "occumed-us--north-carolina--r1-c1.pmtiles", + "metadata_name": "occumed-us--north-carolina--r1-c1.json" + }, + { + "id": "us/north-carolina--r1-c2", + "slug": "us--north-carolina--r1-c2", + "name": "us/north-carolina 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-carolina-latest.osm.pbf", + "extract_bbox": "-81.676543,33.12992,-79.030895,36.58979", + "source_region_id": "us/north-carolina", + "source_size_bytes": 426018847, + "west": -81.676543, + "south": 33.12992, + "east": -79.030895, + "north": 36.58979, + "asset_name": "occumed-us--north-carolina--r1-c2.pmtiles", + "metadata_name": "occumed-us--north-carolina--r1-c2.json" + }, + { + "id": "us/north-carolina--r1-c3", + "slug": "us--north-carolina--r1-c3", + "name": "us/north-carolina 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-carolina-latest.osm.pbf", + "extract_bbox": "-79.030895,33.12992,-76.385247,36.58979", + "source_region_id": "us/north-carolina", + "source_size_bytes": 426018847, + "west": -79.030895, + "south": 33.12992, + "east": -76.385247, + "north": 36.58979, + "asset_name": "occumed-us--north-carolina--r1-c3.pmtiles", + "metadata_name": "occumed-us--north-carolina--r1-c3.json" + }, + { + "id": "us/north-carolina--r1-c4", + "slug": "us--north-carolina--r1-c4", + "name": "us/north-carolina 1.4", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-carolina-latest.osm.pbf", + "extract_bbox": "-76.385247,33.12992,-73.7396,36.58979", + "source_region_id": "us/north-carolina", + "source_size_bytes": 426018847, + "west": -76.385247, + "south": 33.12992, + "east": -73.7396, + "north": 36.58979, + "asset_name": "occumed-us--north-carolina--r1-c4.pmtiles", + "metadata_name": "occumed-us--north-carolina--r1-c4.json" + }, + { + "id": "us/north-dakota", + "slug": "us--north-dakota", + "name": "us/north-dakota", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-dakota-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/north-dakota", + "source_size_bytes": 127105190, + "west": -104.053, + "south": 45.93448, + "east": -96.55292, + "north": 49.01671, + "asset_name": "occumed-us--north-dakota.pmtiles", + "metadata_name": "occumed-us--north-dakota.json" + }, + { + "id": "us/ohio", + "slug": "us--ohio", + "name": "us/ohio", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/ohio-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/ohio", + "source_size_bytes": 320204943, + "west": -84.8219, + "south": 38.40076, + "east": -80.50521, + "north": 42.33584, + "asset_name": "occumed-us--ohio.pmtiles", + "metadata_name": "occumed-us--ohio.json" + }, + { + "id": "us/oklahoma", + "slug": "us--oklahoma", + "name": "us/oklahoma", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/oklahoma-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/oklahoma", + "source_size_bytes": 167235739, + "west": -103.0078, + "south": 33.61348, + "east": -94.42989, + "north": 37.00529, + "asset_name": "occumed-us--oklahoma.pmtiles", + "metadata_name": "occumed-us--oklahoma.json" + }, + { + "id": "us/oregon", + "slug": "us--oregon", + "name": "us/oregon", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/oregon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/oregon", + "source_size_bytes": 251745080, + "west": -126.3879, + "south": 41.9634, + "east": -116.4545, + "north": 46.30349, + "asset_name": "occumed-us--oregon.pmtiles", + "metadata_name": "occumed-us--oregon.json" + }, + { + "id": "us/pennsylvania", + "slug": "us--pennsylvania", + "name": "us/pennsylvania", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/pennsylvania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/pennsylvania", + "source_size_bytes": 343049270, + "west": -80.52275, + "south": 39.6644, + "east": -74.68761, + "north": 42.51649, + "asset_name": "occumed-us--pennsylvania.pmtiles", + "metadata_name": "occumed-us--pennsylvania.json" + }, + { + "id": "us/puerto-rico", + "slug": "us--puerto-rico", + "name": "us/puerto-rico", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/puerto-rico-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/puerto-rico", + "source_size_bytes": 73558904, + "west": -68.31024, + "south": 17.51573, + "east": -65.09262, + "north": 18.81272, + "asset_name": "occumed-us--puerto-rico.pmtiles", + "metadata_name": "occumed-us--puerto-rico.json" + }, + { + "id": "us/rhode-island", + "slug": "us--rhode-island", + "name": "us/rhode-island", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/rhode-island-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/rhode-island", + "source_size_bytes": 51786640, + "west": -71.91456, + "south": 40.9992, + "east": -71.06369, + "north": 42.01938, + "asset_name": "occumed-us--rhode-island.pmtiles", + "metadata_name": "occumed-us--rhode-island.json" + }, + { + "id": "us/south-carolina", + "slug": "us--south-carolina", + "name": "us/south-carolina", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/south-carolina-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/south-carolina", + "source_size_bytes": 161775179, + "west": -83.35622, + "south": 32.02967, + "east": -78.51867, + "north": 35.2184, + "asset_name": "occumed-us--south-carolina.pmtiles", + "metadata_name": "occumed-us--south-carolina.json" + }, + { + "id": "us/south-dakota", + "slug": "us--south-dakota", + "name": "us/south-dakota", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/south-dakota-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/south-dakota", + "source_size_bytes": 47945098, + "west": -104.0588, + "south": 42.47744, + "east": -96.43595, + "north": 45.94831, + "asset_name": "occumed-us--south-dakota.pmtiles", + "metadata_name": "occumed-us--south-dakota.json" + }, + { + "id": "us/tennessee", + "slug": "us--tennessee", + "name": "us/tennessee", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/tennessee-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/tennessee", + "source_size_bytes": 186594783, + "west": -90.31329, + "south": 34.98269, + "east": -81.64416, + "north": 36.68075, + "asset_name": "occumed-us--tennessee.pmtiles", + "metadata_name": "occumed-us--tennessee.json" + }, + { + "id": "us/texas--r1-c1", + "slug": "us--texas--r1-c1", + "name": "us/texas 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-106.6494,25.69551,-102.105923,31.10848", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -106.6494, + "south": 25.69551, + "east": -102.105923, + "north": 31.10848, + "asset_name": "occumed-us--texas--r1-c1.pmtiles", + "metadata_name": "occumed-us--texas--r1-c1.json" + }, + { + "id": "us/texas--r1-c2", + "slug": "us--texas--r1-c2", + "name": "us/texas 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-102.105923,25.69551,-97.562447,31.10848", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -102.105923, + "south": 25.69551, + "east": -97.562447, + "north": 31.10848, + "asset_name": "occumed-us--texas--r1-c2.pmtiles", + "metadata_name": "occumed-us--texas--r1-c2.json" + }, + { + "id": "us/texas--r1-c3", + "slug": "us--texas--r1-c3", + "name": "us/texas 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-97.562447,25.69551,-93.01897,31.10848", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -97.562447, + "south": 25.69551, + "east": -93.01897, + "north": 31.10848, + "asset_name": "occumed-us--texas--r1-c3.pmtiles", + "metadata_name": "occumed-us--texas--r1-c3.json" + }, + { + "id": "us/texas--r2-c1", + "slug": "us--texas--r2-c1", + "name": "us/texas 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-106.6494,31.10848,-102.105923,36.52145", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -106.6494, + "south": 31.10848, + "east": -102.105923, + "north": 36.52145, + "asset_name": "occumed-us--texas--r2-c1.pmtiles", + "metadata_name": "occumed-us--texas--r2-c1.json" + }, + { + "id": "us/texas--r2-c2", + "slug": "us--texas--r2-c2", + "name": "us/texas 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-102.105923,31.10848,-97.562447,36.52145", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -102.105923, + "south": 31.10848, + "east": -97.562447, + "north": 36.52145, + "asset_name": "occumed-us--texas--r2-c2.pmtiles", + "metadata_name": "occumed-us--texas--r2-c2.json" + }, + { + "id": "us/texas--r2-c3", + "slug": "us--texas--r2-c3", + "name": "us/texas 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-97.562447,31.10848,-93.01897,36.52145", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -97.562447, + "south": 31.10848, + "east": -93.01897, + "north": 36.52145, + "asset_name": "occumed-us--texas--r2-c3.pmtiles", + "metadata_name": "occumed-us--texas--r2-c3.json" + }, + { + "id": "us/us-virgin-islands", + "slug": "us--us-virgin-islands", + "name": "us/us-virgin-islands", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/us-virgin-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/us-virgin-islands", + "source_size_bytes": 3114269, + "west": -65.17502, + "south": 17.28246, + "east": -63.95554, + "north": 18.48596, + "asset_name": "occumed-us--us-virgin-islands.pmtiles", + "metadata_name": "occumed-us--us-virgin-islands.json" + }, + { + "id": "us/utah", + "slug": "us--utah", + "name": "us/utah", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/utah-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/utah", + "source_size_bytes": 166503874, + "west": -114.0556, + "south": 36.9963, + "east": -109.0394, + "north": 42.00323, + "asset_name": "occumed-us--utah.pmtiles", + "metadata_name": "occumed-us--utah.json" + }, + { + "id": "us/vermont", + "slug": "us--vermont", + "name": "us/vermont", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/vermont-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/vermont", + "source_size_bytes": 45657162, + "west": -73.43943, + "south": 42.72498, + "east": -71.46476, + "north": 45.02309, + "asset_name": "occumed-us--vermont.pmtiles", + "metadata_name": "occumed-us--vermont.json" + }, + { + "id": "us/virginia--r1-c1", + "slug": "us--virginia--r1-c1", + "name": "us/virginia 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/virginia-latest.osm.pbf", + "extract_bbox": "-83.67841,36.53798,-81.333185,39.46901", + "source_region_id": "us/virginia", + "source_size_bytes": 425665038, + "west": -83.67841, + "south": 36.53798, + "east": -81.333185, + "north": 39.46901, + "asset_name": "occumed-us--virginia--r1-c1.pmtiles", + "metadata_name": "occumed-us--virginia--r1-c1.json" + }, + { + "id": "us/virginia--r1-c2", + "slug": "us--virginia--r1-c2", + "name": "us/virginia 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/virginia-latest.osm.pbf", + "extract_bbox": "-81.333185,36.53798,-78.98796,39.46901", + "source_region_id": "us/virginia", + "source_size_bytes": 425665038, + "west": -81.333185, + "south": 36.53798, + "east": -78.98796, + "north": 39.46901, + "asset_name": "occumed-us--virginia--r1-c2.pmtiles", + "metadata_name": "occumed-us--virginia--r1-c2.json" + }, + { + "id": "us/virginia--r1-c3", + "slug": "us--virginia--r1-c3", + "name": "us/virginia 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/virginia-latest.osm.pbf", + "extract_bbox": "-78.98796,36.53798,-76.642735,39.46901", + "source_region_id": "us/virginia", + "source_size_bytes": 425665038, + "west": -78.98796, + "south": 36.53798, + "east": -76.642735, + "north": 39.46901, + "asset_name": "occumed-us--virginia--r1-c3.pmtiles", + "metadata_name": "occumed-us--virginia--r1-c3.json" + }, + { + "id": "us/virginia--r1-c4", + "slug": "us--virginia--r1-c4", + "name": "us/virginia 1.4", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/virginia-latest.osm.pbf", + "extract_bbox": "-76.642735,36.53798,-74.29751,39.46901", + "source_region_id": "us/virginia", + "source_size_bytes": 425665038, + "west": -76.642735, + "south": 36.53798, + "east": -74.29751, + "north": 39.46901, + "asset_name": "occumed-us--virginia--r1-c4.pmtiles", + "metadata_name": "occumed-us--virginia--r1-c4.json" + }, + { + "id": "us/washington", + "slug": "us--washington", + "name": "us/washington", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/washington-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/washington", + "source_size_bytes": 359302701, + "west": -126.7423, + "south": 45.53882, + "east": -116.9115, + "north": 49.00708, + "asset_name": "occumed-us--washington.pmtiles", + "metadata_name": "occumed-us--washington.json" + }, + { + "id": "us/west-virginia", + "slug": "us--west-virginia", + "name": "us/west-virginia", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/west-virginia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/west-virginia", + "source_size_bytes": 97483385, + "west": -82.64965, + "south": 37.19858, + "east": -77.7141, + "north": 40.64636, + "asset_name": "occumed-us--west-virginia.pmtiles", + "metadata_name": "occumed-us--west-virginia.json" + }, + { + "id": "us/wisconsin", + "slug": "us--wisconsin", + "name": "us/wisconsin", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/wisconsin-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/wisconsin", + "source_size_bytes": 290898998, + "west": -92.89089, + "south": 42.48899, + "east": -86.20021, + "north": 47.41451, + "asset_name": "occumed-us--wisconsin.pmtiles", + "metadata_name": "occumed-us--wisconsin.json" + }, + { + "id": "us/wyoming", + "slug": "us--wyoming", + "name": "us/wyoming", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/wyoming-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/wyoming", + "source_size_bytes": 92587348, + "west": -111.0576, + "south": 40.98339, + "east": -103.9413, + "north": 45.01216, + "asset_name": "occumed-us--wyoming.pmtiles", + "metadata_name": "occumed-us--wyoming.json" + }, + { + "id": "ustecky", + "slug": "ustecky", + "name": "Ústecký kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/ustecky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ustecky", + "source_size_bytes": 111202275, + "west": 12.93716, + "south": 50.07552, + "east": 14.66589, + "north": 51.06426, + "asset_name": "occumed-ustecky.pmtiles", + "metadata_name": "occumed-ustecky.json" + }, + { + "id": "utrecht", + "slug": "utrecht", + "name": "Utrecht", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/utrecht-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "utrecht", + "source_size_bytes": 97905514, + "west": 4.790849, + "south": 51.85615, + "east": 5.62829, + "north": 52.30494, + "asset_name": "occumed-utrecht.pmtiles", + "metadata_name": "occumed-utrecht.json" + }, + { + "id": "uzbekistan", + "slug": "uzbekistan", + "name": "Uzbekistan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/uzbekistan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "uzbekistan", + "source_size_bytes": 121588473, + "west": 55.97708, + "south": 37.16636, + "east": 73.17463, + "north": 45.61884, + "asset_name": "occumed-uzbekistan.pmtiles", + "metadata_name": "occumed-uzbekistan.json" + }, + { + "id": "valencia", + "slug": "valencia", + "name": "Valencia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/valencia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "valencia", + "source_size_bytes": 138755886, + "west": -1.531649, + "south": 37.84341, + "east": 1.686396, + "north": 40.79328, + "asset_name": "occumed-valencia.pmtiles", + "metadata_name": "occumed-valencia.json" + }, + { + "id": "vanuatu", + "slug": "vanuatu", + "name": "Vanuatu", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/vanuatu-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "vanuatu", + "source_size_bytes": 7888865, + "west": 163.3086, + "south": -21.64288, + "east": 173.6089, + "north": -12.29626, + "asset_name": "occumed-vanuatu.pmtiles", + "metadata_name": "occumed-vanuatu.json" + }, + { + "id": "venezuela", + "slug": "venezuela", + "name": "Venezuela", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/venezuela-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "venezuela", + "source_size_bytes": 124110721, + "west": -73.38098, + "south": 0.621727, + "east": -59.51474, + "north": 15.96134, + "asset_name": "occumed-venezuela.pmtiles", + "metadata_name": "occumed-venezuela.json" + }, + { + "id": "vestlandet", + "slug": "vestlandet", + "name": "Vestlandet
(Western Norway)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/vestlandet-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "vestlandet", + "source_size_bytes": 256453711, + "west": 2.32908, + "south": 57.63122, + "east": 9.374655, + "north": 65.12362, + "asset_name": "occumed-vestlandet.pmtiles", + "metadata_name": "occumed-vestlandet.json" + }, + { + "id": "victoria", + "slug": "victoria", + "name": "Victoria", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/victoria-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "victoria", + "source_size_bytes": 238667726, + "west": 140.9574, + "south": -39.23224, + "east": 150.4683, + "north": -33.97931, + "asset_name": "occumed-victoria.pmtiles", + "metadata_name": "occumed-victoria.json" + }, + { + "id": "vietnam", + "slug": "vietnam", + "name": "Vietnam", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/vietnam-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "vietnam", + "source_size_bytes": 325590847, + "west": 102.0959, + "south": 7.382239, + "east": 114.6423, + "north": 23.40214, + "asset_name": "occumed-vietnam.pmtiles", + "metadata_name": "occumed-vietnam.json" + }, + { + "id": "volga-fed-district--r1-c1", + "slug": "volga-fed-district--r1-c1", + "name": "Volga Federal District 1.1", + "continent": "volga-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/volga-fed-district-latest.osm.pbf", + "extract_bbox": "41.72107,49.75097,51.72739,55.73534", + "source_region_id": "volga-fed-district", + "source_size_bytes": 768647327, + "west": 41.72107, + "south": 49.75097, + "east": 51.72739, + "north": 55.73534, + "asset_name": "occumed-volga-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-volga-fed-district--r1-c1.json" + }, + { + "id": "volga-fed-district--r1-c2", + "slug": "volga-fed-district--r1-c2", + "name": "Volga Federal District 1.2", + "continent": "volga-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/volga-fed-district-latest.osm.pbf", + "extract_bbox": "51.72739,49.75097,61.73371,55.73534", + "source_region_id": "volga-fed-district", + "source_size_bytes": 768647327, + "west": 51.72739, + "south": 49.75097, + "east": 61.73371, + "north": 55.73534, + "asset_name": "occumed-volga-fed-district--r1-c2.pmtiles", + "metadata_name": "occumed-volga-fed-district--r1-c2.json" + }, + { + "id": "volga-fed-district--r2-c1", + "slug": "volga-fed-district--r2-c1", + "name": "Volga Federal District 2.1", + "continent": "volga-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/volga-fed-district-latest.osm.pbf", + "extract_bbox": "41.72107,55.73534,51.72739,61.71971", + "source_region_id": "volga-fed-district", + "source_size_bytes": 768647327, + "west": 41.72107, + "south": 55.73534, + "east": 51.72739, + "north": 61.71971, + "asset_name": "occumed-volga-fed-district--r2-c1.pmtiles", + "metadata_name": "occumed-volga-fed-district--r2-c1.json" + }, + { + "id": "volga-fed-district--r2-c2", + "slug": "volga-fed-district--r2-c2", + "name": "Volga Federal District 2.2", + "continent": "volga-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/volga-fed-district-latest.osm.pbf", + "extract_bbox": "51.72739,55.73534,61.73371,61.71971", + "source_region_id": "volga-fed-district", + "source_size_bytes": 768647327, + "west": 51.72739, + "south": 55.73534, + "east": 61.73371, + "north": 61.71971, + "asset_name": "occumed-volga-fed-district--r2-c2.pmtiles", + "metadata_name": "occumed-volga-fed-district--r2-c2.json" + }, + { + "id": "vysocina", + "slug": "vysocina", + "name": "Kraj Vysočina", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/vysocina-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "vysocina", + "source_size_bytes": 72947471, + "west": 14.88686, + "south": 48.9362, + "east": 16.41962, + "north": 49.8613, + "asset_name": "occumed-vysocina.pmtiles", + "metadata_name": "occumed-vysocina.json" + }, + { + "id": "wales", + "slug": "wales", + "name": "Wales", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/wales-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "wales", + "source_size_bytes": 145462880, + "west": -6.183241, + "south": 51.03997, + "east": -2.648042, + "north": 53.76632, + "asset_name": "occumed-wales.pmtiles", + "metadata_name": "occumed-wales.json" + }, + { + "id": "wallis-et-futuna", + "slug": "wallis-et-futuna", + "name": "Wallis et Futuna", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/wallis-et-futuna-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "wallis-et-futuna", + "source_size_bytes": 617194, + "west": -179.978, + "south": -16.25685, + "east": -174.1553, + "north": -9.05868, + "asset_name": "occumed-wallis-et-futuna.pmtiles", + "metadata_name": "occumed-wallis-et-futuna.json" + }, + { + "id": "warminsko-mazurskie", + "slug": "warminsko-mazurskie", + "name": "Województwo warmińsko-mazurskie
(Warmian-Masurian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/warminsko-mazurskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "warminsko-mazurskie", + "source_size_bytes": 84139294, + "west": 19.11666, + "south": 53.12575, + "east": 22.82058, + "north": 54.51456, + "asset_name": "occumed-warminsko-mazurskie.pmtiles", + "metadata_name": "occumed-warminsko-mazurskie.json" + }, + { + "id": "warwickshire", + "slug": "warwickshire", + "name": "Warwickshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/warwickshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "warwickshire", + "source_size_bytes": 24166299, + "west": -1.963, + "south": 51.95471, + "east": -1.17115, + "north": 52.68823, + "asset_name": "occumed-warwickshire.pmtiles", + "metadata_name": "occumed-warwickshire.json" + }, + { + "id": "west-midlands", + "slug": "west-midlands", + "name": "West Midlands", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/west-midlands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "west-midlands", + "source_size_bytes": 59185118, + "west": -2.208211, + "south": 52.3457, + "east": -1.422524, + "north": 52.6643, + "asset_name": "occumed-west-midlands.pmtiles", + "metadata_name": "occumed-west-midlands.json" + }, + { + "id": "west-sussex", + "slug": "west-sussex", + "name": "West Sussex", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/west-sussex-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "west-sussex", + "source_size_bytes": 48898664, + "west": -0.956244, + "south": 50.70685, + "east": 0.041342, + "north": 51.169, + "asset_name": "occumed-west-sussex.pmtiles", + "metadata_name": "occumed-west-sussex.json" + }, + { + "id": "west-yorkshire", + "slug": "west-yorkshire", + "name": "West Yorkshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/west-yorkshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "west-yorkshire", + "source_size_bytes": 52923750, + "west": -2.175545, + "south": 53.51822, + "east": -1.196, + "north": 53.96491, + "asset_name": "occumed-west-yorkshire.pmtiles", + "metadata_name": "occumed-west-yorkshire.json" + }, + { + "id": "western-australia", + "slug": "western-australia", + "name": "Western Australia", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/western-australia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "western-australia", + "source_size_bytes": 113562640, + "west": 109.9281, + "south": -41.16427, + "east": 130.32, + "north": -12.83116, + "asset_name": "occumed-western-australia.pmtiles", + "metadata_name": "occumed-western-australia.json" + }, + { + "id": "western-zone", + "slug": "western-zone", + "name": "Western Zone", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/western-zone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "western-zone", + "source_size_bytes": 218384717, + "west": 67.67457, + "south": 14.38929, + "east": 80.91362, + "north": 24.71756, + "asset_name": "occumed-western-zone.pmtiles", + "metadata_name": "occumed-western-zone.json" + }, + { + "id": "wielkopolskie", + "slug": "wielkopolskie", + "name": "Województwo wielkopolskie
(Greater Poland Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/wielkopolskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "wielkopolskie", + "source_size_bytes": 157776447, + "west": 15.76036, + "south": 51.08403, + "east": 19.12931, + "north": 53.68105, + "asset_name": "occumed-wielkopolskie.pmtiles", + "metadata_name": "occumed-wielkopolskie.json" + }, + { + "id": "wiltshire", + "slug": "wiltshire", + "name": "Wiltshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/wiltshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "wiltshire", + "source_size_bytes": 33887698, + "west": -2.363253, + "south": 50.9465, + "east": -1.488811, + "north": 51.70637, + "asset_name": "occumed-wiltshire.pmtiles", + "metadata_name": "occumed-wiltshire.json" + }, + { + "id": "worcestershire", + "slug": "worcestershire", + "name": "Worcestershire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/worcestershire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "worcestershire", + "source_size_bytes": 20184064, + "west": -2.66399, + "south": 51.9654, + "east": -1.756496, + "north": 52.4565, + "asset_name": "occumed-worcestershire.pmtiles", + "metadata_name": "occumed-worcestershire.json" + }, + { + "id": "xinjiang", + "slug": "xinjiang", + "name": "Xinjiang", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/xinjiang-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "xinjiang", + "source_size_bytes": 47201399, + "west": 73.41788, + "south": 34.26775, + "east": 96.43, + "north": 49.26201, + "asset_name": "occumed-xinjiang.pmtiles", + "metadata_name": "occumed-xinjiang.json" + }, + { + "id": "yemen", + "slug": "yemen", + "name": "Yemen", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/yemen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "yemen", + "source_size_bytes": 43016382, + "west": 41.06894, + "south": 11.36768, + "east": 55.51167, + "north": 19.03189, + "asset_name": "occumed-yemen.pmtiles", + "metadata_name": "occumed-yemen.json" + }, + { + "id": "yukon", + "slug": "yukon", + "name": "Yukon", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/yukon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "yukon", + "source_size_bytes": 74086123, + "west": -141.2389, + "south": 59.99739, + "east": -123.8021, + "north": 70.16293, + "asset_name": "occumed-yukon.pmtiles", + "metadata_name": "occumed-yukon.json" + }, + { + "id": "yunnan", + "slug": "yunnan", + "name": "Yunnan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/yunnan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "yunnan", + "source_size_bytes": 91182850, + "west": 97.42851, + "south": 21.04476, + "east": 106.215, + "north": 29.23518, + "asset_name": "occumed-yunnan.pmtiles", + "metadata_name": "occumed-yunnan.json" + }, + { + "id": "zachodniopomorskie", + "slug": "zachodniopomorskie", + "name": "Województwo zachodniopomorskie
(West Pomeranian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/zachodniopomorskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zachodniopomorskie", + "source_size_bytes": 97126770, + "west": 13.99022, + "south": 52.61742, + "east": 16.98847, + "north": 55.00664, + "asset_name": "occumed-zachodniopomorskie.pmtiles", + "metadata_name": "occumed-zachodniopomorskie.json" + }, + { + "id": "zambia", + "slug": "zambia", + "name": "Zambia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/zambia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zambia", + "source_size_bytes": 251588271, + "west": 21.98982, + "south": -18.08777, + "east": 33.71773, + "north": -8.239483, + "asset_name": "occumed-zambia.pmtiles", + "metadata_name": "occumed-zambia.json" + }, + { + "id": "zeeland", + "slug": "zeeland", + "name": "Zeeland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/zeeland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zeeland", + "source_size_bytes": 43774412, + "west": 3.233941, + "south": 51.19717, + "east": 4.278407, + "north": 51.87013, + "asset_name": "occumed-zeeland.pmtiles", + "metadata_name": "occumed-zeeland.json" + }, + { + "id": "zhejiang", + "slug": "zhejiang", + "name": "Zhejiang", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/zhejiang-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zhejiang", + "source_size_bytes": 89114618, + "west": 118.0206, + "south": 26.69164, + "east": 123.8379, + "north": 31.19078, + "asset_name": "occumed-zhejiang.pmtiles", + "metadata_name": "occumed-zhejiang.json" + }, + { + "id": "zimbabwe", + "slug": "zimbabwe", + "name": "Zimbabwe", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/zimbabwe-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zimbabwe", + "source_size_bytes": 178943195, + "west": 25.2229, + "south": -22.44725, + "east": 33.08541, + "north": -15.58707, + "asset_name": "occumed-zimbabwe.pmtiles", + "metadata_name": "occumed-zimbabwe.json" + }, + { + "id": "zlinsky", + "slug": "zlinsky", + "name": "Zlínský kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/zlinsky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zlinsky", + "source_size_bytes": 52392986, + "west": 17.10807, + "south": 48.8374, + "east": 18.45055, + "north": 49.54122, + "asset_name": "occumed-zlinsky.pmtiles", + "metadata_name": "occumed-zlinsky.json" + }, + { + "id": "zuid-holland", + "slug": "zuid-holland", + "name": "Zuid-Holland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/zuid-holland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zuid-holland", + "source_size_bytes": 209931783, + "west": 3.345328, + "south": 51.64252, + "east": 5.032393, + "north": 52.47611, + "asset_name": "occumed-zuid-holland.pmtiles", + "metadata_name": "occumed-zuid-holland.json" + } + ], + "canonical": true, + "excludedSourceRegions": [ + "alps", + "britain-and-ireland", + "dach", + "great-britain", + "sea", + "south-africa-and-lesotho", + "us", + "us-midwest", + "us-northeast", + "us-pacific", + "us-south", + "us-west" + ] +} diff --git a/diagnostics/world-release-cleanup/post-cleanup-summary.json b/diagnostics/world-release-cleanup/post-cleanup-summary.json new file mode 100644 index 00000000..7fc6fe97 --- /dev/null +++ b/diagnostics/world-release-cleanup/post-cleanup-summary.json @@ -0,0 +1,1670 @@ +{ + "capturedAt": "2026-07-26T21:57:45.976Z", + "releaseTag": "occumed-world-v1", + "canonicalShardCount": 724, + "releaseAssetCountBefore": 1000, + "deletedAssetCount": 690, + "retainedCanonicalCount": 310, + "missingCanonicalCount": 414, + "remainingReleaseCapacity": 690, + "requiredSlotsForMissingPlusManifest": 415, + "capacityReady": true, + "missingRegions": [ + { + "id": "argentina--r1-c1", + "asset": "occumed-argentina--r1-c1.pmtiles" + }, + { + "id": "argentina--r1-c2", + "asset": "occumed-argentina--r1-c2.pmtiles" + }, + { + "id": "argentina--r2-c1", + "asset": "occumed-argentina--r2-c1.pmtiles" + }, + { + "id": "argentina--r2-c2", + "asset": "occumed-argentina--r2-c2.pmtiles" + }, + { + "id": "austria--r1-c1", + "asset": "occumed-austria--r1-c1.pmtiles" + }, + { + "id": "austria--r1-c2", + "asset": "occumed-austria--r1-c2.pmtiles" + }, + { + "id": "austria--r1-c3", + "asset": "occumed-austria--r1-c3.pmtiles" + }, + { + "id": "austria--r2-c1", + "asset": "occumed-austria--r2-c1.pmtiles" + }, + { + "id": "austria--r2-c2", + "asset": "occumed-austria--r2-c2.pmtiles" + }, + { + "id": "austria--r2-c3", + "asset": "occumed-austria--r2-c3.pmtiles" + }, + { + "id": "belgium--r1-c1", + "asset": "occumed-belgium--r1-c1.pmtiles" + }, + { + "id": "belgium--r1-c2", + "asset": "occumed-belgium--r1-c2.pmtiles" + }, + { + "id": "belgium--r1-c3", + "asset": "occumed-belgium--r1-c3.pmtiles" + }, + { + "id": "belgium--r2-c1", + "asset": "occumed-belgium--r2-c1.pmtiles" + }, + { + "id": "belgium--r2-c2", + "asset": "occumed-belgium--r2-c2.pmtiles" + }, + { + "id": "belgium--r2-c3", + "asset": "occumed-belgium--r2-c3.pmtiles" + }, + { + "id": "central-fed-district--r1-c2", + "asset": "occumed-central-fed-district--r1-c2.pmtiles" + }, + { + "id": "central-fed-district--r2-c1", + "asset": "occumed-central-fed-district--r2-c1.pmtiles" + }, + { + "id": "central-fed-district--r2-c2", + "asset": "occumed-central-fed-district--r2-c2.pmtiles" + }, + { + "id": "chubu--r1-c1", + "asset": "occumed-chubu--r1-c1.pmtiles" + }, + { + "id": "chubu--r1-c2", + "asset": "occumed-chubu--r1-c2.pmtiles" + }, + { + "id": "chubu--r2-c1", + "asset": "occumed-chubu--r2-c1.pmtiles" + }, + { + "id": "chubu--r2-c2", + "asset": "occumed-chubu--r2-c2.pmtiles" + }, + { + "id": "congo-democratic-republic--r1-c1", + "asset": "occumed-congo-democratic-republic--r1-c1.pmtiles" + }, + { + "id": "congo-democratic-republic--r1-c2", + "asset": "occumed-congo-democratic-republic--r1-c2.pmtiles" + }, + { + "id": "congo-democratic-republic--r1-c3", + "asset": "occumed-congo-democratic-republic--r1-c3.pmtiles" + }, + { + "id": "congo-democratic-republic--r2-c1", + "asset": "occumed-congo-democratic-republic--r2-c1.pmtiles" + }, + { + "id": "congo-democratic-republic--r2-c2", + "asset": "occumed-congo-democratic-republic--r2-c2.pmtiles" + }, + { + "id": "congo-democratic-republic--r2-c3", + "asset": "occumed-congo-democratic-republic--r2-c3.pmtiles" + }, + { + "id": "denmark--r1-c1", + "asset": "occumed-denmark--r1-c1.pmtiles" + }, + { + "id": "denmark--r1-c2", + "asset": "occumed-denmark--r1-c2.pmtiles" + }, + { + "id": "denmark--r1-c3", + "asset": "occumed-denmark--r1-c3.pmtiles" + }, + { + "id": "denmark--r2-c1", + "asset": "occumed-denmark--r2-c1.pmtiles" + }, + { + "id": "denmark--r2-c2", + "asset": "occumed-denmark--r2-c2.pmtiles" + }, + { + "id": "denmark--r2-c3", + "asset": "occumed-denmark--r2-c3.pmtiles" + }, + { + "id": "enfield", + "asset": "occumed-enfield.pmtiles" + }, + { + "id": "far-eastern-fed-district", + "asset": "occumed-far-eastern-fed-district.pmtiles" + }, + { + "id": "finland--r1-c1", + "asset": "occumed-finland--r1-c1.pmtiles" + }, + { + "id": "finland--r1-c2", + "asset": "occumed-finland--r1-c2.pmtiles" + }, + { + "id": "finland--r2-c1", + "asset": "occumed-finland--r2-c1.pmtiles" + }, + { + "id": "finland--r2-c2", + "asset": "occumed-finland--r2-c2.pmtiles" + }, + { + "id": "iceland", + "asset": "occumed-iceland.pmtiles" + }, + { + "id": "ireland-and-northern-ireland--r1-c1", + "asset": "occumed-ireland-and-northern-ireland--r1-c1.pmtiles" + }, + { + "id": "ireland-and-northern-ireland--r1-c2", + "asset": "occumed-ireland-and-northern-ireland--r1-c2.pmtiles" + }, + { + "id": "ireland-and-northern-ireland--r2-c1", + "asset": "occumed-ireland-and-northern-ireland--r2-c1.pmtiles" + }, + { + "id": "ireland-and-northern-ireland--r2-c2", + "asset": "occumed-ireland-and-northern-ireland--r2-c2.pmtiles" + }, + { + "id": "java--r1-c1", + "asset": "occumed-java--r1-c1.pmtiles" + }, + { + "id": "java--r1-c2", + "asset": "occumed-java--r1-c2.pmtiles" + }, + { + "id": "java--r1-c3", + "asset": "occumed-java--r1-c3.pmtiles" + }, + { + "id": "java--r2-c1", + "asset": "occumed-java--r2-c1.pmtiles" + }, + { + "id": "java--r2-c2", + "asset": "occumed-java--r2-c2.pmtiles" + }, + { + "id": "java--r2-c3", + "asset": "occumed-java--r2-c3.pmtiles" + }, + { + "id": "kanto--r1-c1", + "asset": "occumed-kanto--r1-c1.pmtiles" + }, + { + "id": "kanto--r1-c2", + "asset": "occumed-kanto--r1-c2.pmtiles" + }, + { + "id": "kanto--r1-c3", + "asset": "occumed-kanto--r1-c3.pmtiles" + }, + { + "id": "kanto--r2-c1", + "asset": "occumed-kanto--r2-c1.pmtiles" + }, + { + "id": "kanto--r2-c2", + "asset": "occumed-kanto--r2-c2.pmtiles" + }, + { + "id": "kanto--r2-c3", + "asset": "occumed-kanto--r2-c3.pmtiles" + }, + { + "id": "kitikmeot--r1-c1", + "asset": "occumed-kitikmeot--r1-c1.pmtiles" + }, + { + "id": "kitikmeot--r1-c2", + "asset": "occumed-kitikmeot--r1-c2.pmtiles" + }, + { + "id": "kitikmeot--r1-c3", + "asset": "occumed-kitikmeot--r1-c3.pmtiles" + }, + { + "id": "kitikmeot--r2-c1", + "asset": "occumed-kitikmeot--r2-c1.pmtiles" + }, + { + "id": "kitikmeot--r2-c2", + "asset": "occumed-kitikmeot--r2-c2.pmtiles" + }, + { + "id": "kitikmeot--r2-c3", + "asset": "occumed-kitikmeot--r2-c3.pmtiles" + }, + { + "id": "kivalliq--r1-c1", + "asset": "occumed-kivalliq--r1-c1.pmtiles" + }, + { + "id": "kivalliq--r1-c2", + "asset": "occumed-kivalliq--r1-c2.pmtiles" + }, + { + "id": "kivalliq--r1-c3", + "asset": "occumed-kivalliq--r1-c3.pmtiles" + }, + { + "id": "kivalliq--r2-c1", + "asset": "occumed-kivalliq--r2-c1.pmtiles" + }, + { + "id": "kivalliq--r2-c2", + "asset": "occumed-kivalliq--r2-c2.pmtiles" + }, + { + "id": "kivalliq--r2-c3", + "asset": "occumed-kivalliq--r2-c3.pmtiles" + }, + { + "id": "mexico--r1-c1", + "asset": "occumed-mexico--r1-c1.pmtiles" + }, + { + "id": "mexico--r1-c2", + "asset": "occumed-mexico--r1-c2.pmtiles" + }, + { + "id": "mexico--r1-c3", + "asset": "occumed-mexico--r1-c3.pmtiles" + }, + { + "id": "mexico--r2-c1", + "asset": "occumed-mexico--r2-c1.pmtiles" + }, + { + "id": "mexico--r2-c2", + "asset": "occumed-mexico--r2-c2.pmtiles" + }, + { + "id": "mexico--r2-c3", + "asset": "occumed-mexico--r2-c3.pmtiles" + }, + { + "id": "nepal--r1-c1", + "asset": "occumed-nepal--r1-c1.pmtiles" + }, + { + "id": "nepal--r1-c2", + "asset": "occumed-nepal--r1-c2.pmtiles" + }, + { + "id": "nepal--r1-c3", + "asset": "occumed-nepal--r1-c3.pmtiles" + }, + { + "id": "nepal--r2-c1", + "asset": "occumed-nepal--r2-c1.pmtiles" + }, + { + "id": "nepal--r2-c2", + "asset": "occumed-nepal--r2-c2.pmtiles" + }, + { + "id": "nepal--r2-c3", + "asset": "occumed-nepal--r2-c3.pmtiles" + }, + { + "id": "new-zealand--r1-c1", + "asset": "occumed-new-zealand--r1-c1.pmtiles" + }, + { + "id": "new-zealand--r1-c2-s1", + "asset": "occumed-new-zealand--r1-c2-s1.pmtiles" + }, + { + "id": "new-zealand--r1-c2-s2", + "asset": "occumed-new-zealand--r1-c2-s2.pmtiles" + }, + { + "id": "new-zealand--r2-c1", + "asset": "occumed-new-zealand--r2-c1.pmtiles" + }, + { + "id": "new-zealand--r2-c2-s1", + "asset": "occumed-new-zealand--r2-c2-s1.pmtiles" + }, + { + "id": "new-zealand--r2-c2-s2", + "asset": "occumed-new-zealand--r2-c2-s2.pmtiles" + }, + { + "id": "niedersachsen--r1-c1", + "asset": "occumed-niedersachsen--r1-c1.pmtiles" + }, + { + "id": "niedersachsen--r1-c2", + "asset": "occumed-niedersachsen--r1-c2.pmtiles" + }, + { + "id": "niedersachsen--r1-c3", + "asset": "occumed-niedersachsen--r1-c3.pmtiles" + }, + { + "id": "niedersachsen--r2-c1", + "asset": "occumed-niedersachsen--r2-c1.pmtiles" + }, + { + "id": "niedersachsen--r2-c2", + "asset": "occumed-niedersachsen--r2-c2.pmtiles" + }, + { + "id": "niedersachsen--r2-c3", + "asset": "occumed-niedersachsen--r2-c3.pmtiles" + }, + { + "id": "nigeria--r1-c1", + "asset": "occumed-nigeria--r1-c1.pmtiles" + }, + { + "id": "nigeria--r1-c2", + "asset": "occumed-nigeria--r1-c2.pmtiles" + }, + { + "id": "nigeria--r1-c3", + "asset": "occumed-nigeria--r1-c3.pmtiles" + }, + { + "id": "nigeria--r2-c1", + "asset": "occumed-nigeria--r2-c1.pmtiles" + }, + { + "id": "nigeria--r2-c2", + "asset": "occumed-nigeria--r2-c2.pmtiles" + }, + { + "id": "nigeria--r2-c3", + "asset": "occumed-nigeria--r2-c3.pmtiles" + }, + { + "id": "norcal--r1-c1", + "asset": "occumed-norcal--r1-c1.pmtiles" + }, + { + "id": "norcal--r1-c2", + "asset": "occumed-norcal--r1-c2.pmtiles" + }, + { + "id": "norcal--r1-c3", + "asset": "occumed-norcal--r1-c3.pmtiles" + }, + { + "id": "norcal--r2-c1", + "asset": "occumed-norcal--r2-c1.pmtiles" + }, + { + "id": "norcal--r2-c2", + "asset": "occumed-norcal--r2-c2.pmtiles" + }, + { + "id": "norcal--r2-c3", + "asset": "occumed-norcal--r2-c3.pmtiles" + }, + { + "id": "nord-est--r1-c1", + "asset": "occumed-nord-est--r1-c1.pmtiles" + }, + { + "id": "nord-est--r1-c2", + "asset": "occumed-nord-est--r1-c2.pmtiles" + }, + { + "id": "nord-norge--r1-c1", + "asset": "occumed-nord-norge--r1-c1.pmtiles" + }, + { + "id": "nord-norge--r1-c2", + "asset": "occumed-nord-norge--r1-c2.pmtiles" + }, + { + "id": "nord-norge--r1-c3", + "asset": "occumed-nord-norge--r1-c3.pmtiles" + }, + { + "id": "nord-norge--r2-c1", + "asset": "occumed-nord-norge--r2-c1.pmtiles" + }, + { + "id": "nord-norge--r2-c2", + "asset": "occumed-nord-norge--r2-c2.pmtiles" + }, + { + "id": "nord-norge--r2-c3", + "asset": "occumed-nord-norge--r2-c3.pmtiles" + }, + { + "id": "nord-ovest--r1-c1", + "asset": "occumed-nord-ovest--r1-c1.pmtiles" + }, + { + "id": "nord-ovest--r1-c2", + "asset": "occumed-nord-ovest--r1-c2.pmtiles" + }, + { + "id": "nord-ovest--r1-c3", + "asset": "occumed-nord-ovest--r1-c3.pmtiles" + }, + { + "id": "nord-ovest--r2-c1", + "asset": "occumed-nord-ovest--r2-c1.pmtiles" + }, + { + "id": "nord-ovest--r2-c2", + "asset": "occumed-nord-ovest--r2-c2.pmtiles" + }, + { + "id": "nord-ovest--r2-c3", + "asset": "occumed-nord-ovest--r2-c3.pmtiles" + }, + { + "id": "nordeste--r1-c1", + "asset": "occumed-nordeste--r1-c1.pmtiles" + }, + { + "id": "nordeste--r1-c2", + "asset": "occumed-nordeste--r1-c2.pmtiles" + }, + { + "id": "nordeste--r2-c1", + "asset": "occumed-nordeste--r2-c1.pmtiles" + }, + { + "id": "nordeste--r2-c2", + "asset": "occumed-nordeste--r2-c2.pmtiles" + }, + { + "id": "north-admreg--r1-c1", + "asset": "occumed-north-admreg--r1-c1.pmtiles" + }, + { + "id": "north-admreg--r1-c2", + "asset": "occumed-north-admreg--r1-c2.pmtiles" + }, + { + "id": "north-admreg--r1-c3", + "asset": "occumed-north-admreg--r1-c3.pmtiles" + }, + { + "id": "north-admreg--r2-c1", + "asset": "occumed-north-admreg--r2-c1.pmtiles" + }, + { + "id": "north-admreg--r2-c2", + "asset": "occumed-north-admreg--r2-c2.pmtiles" + }, + { + "id": "north-admreg--r2-c3", + "asset": "occumed-north-admreg--r2-c3.pmtiles" + }, + { + "id": "north-caucasus-fed-district", + "asset": "occumed-north-caucasus-fed-district.pmtiles" + }, + { + "id": "north-eastern-zone", + "asset": "occumed-north-eastern-zone.pmtiles" + }, + { + "id": "northumberland", + "asset": "occumed-northumberland.pmtiles" + }, + { + "id": "northwest-territories--r1-c1", + "asset": "occumed-northwest-territories--r1-c1.pmtiles" + }, + { + "id": "northwest-territories--r1-c2", + "asset": "occumed-northwest-territories--r1-c2.pmtiles" + }, + { + "id": "northwest-territories--r2-c1", + "asset": "occumed-northwest-territories--r2-c1.pmtiles" + }, + { + "id": "northwest-territories--r2-c2", + "asset": "occumed-northwest-territories--r2-c2.pmtiles" + }, + { + "id": "northwestern-fed-district--r1-c1", + "asset": "occumed-northwestern-fed-district--r1-c1.pmtiles" + }, + { + "id": "northwestern-fed-district--r1-c2", + "asset": "occumed-northwestern-fed-district--r1-c2.pmtiles" + }, + { + "id": "northwestern-fed-district--r2-c1", + "asset": "occumed-northwestern-fed-district--r2-c1.pmtiles" + }, + { + "id": "northwestern-fed-district--r2-c2", + "asset": "occumed-northwestern-fed-district--r2-c2.pmtiles" + }, + { + "id": "ontario--r1-c1", + "asset": "occumed-ontario--r1-c1.pmtiles" + }, + { + "id": "ontario--r1-c2", + "asset": "occumed-ontario--r1-c2.pmtiles" + }, + { + "id": "ontario--r2-c1", + "asset": "occumed-ontario--r2-c1.pmtiles" + }, + { + "id": "ontario--r2-c2", + "asset": "occumed-ontario--r2-c2.pmtiles" + }, + { + "id": "opolskie", + "asset": "occumed-opolskie.pmtiles" + }, + { + "id": "ostlandet--r1-c1", + "asset": "occumed-ostlandet--r1-c1.pmtiles" + }, + { + "id": "ostlandet--r1-c2", + "asset": "occumed-ostlandet--r1-c2.pmtiles" + }, + { + "id": "ostlandet--r2-c1", + "asset": "occumed-ostlandet--r2-c1.pmtiles" + }, + { + "id": "ostlandet--r2-c2", + "asset": "occumed-ostlandet--r2-c2.pmtiles" + }, + { + "id": "palau", + "asset": "occumed-palau.pmtiles" + }, + { + "id": "panama", + "asset": "occumed-panama.pmtiles" + }, + { + "id": "pays-de-la-loire", + "asset": "occumed-pays-de-la-loire.pmtiles" + }, + { + "id": "philippines--r1-c1", + "asset": "occumed-philippines--r1-c1.pmtiles" + }, + { + "id": "philippines--r1-c2", + "asset": "occumed-philippines--r1-c2.pmtiles" + }, + { + "id": "philippines--r2-c1", + "asset": "occumed-philippines--r2-c1.pmtiles" + }, + { + "id": "philippines--r2-c2", + "asset": "occumed-philippines--r2-c2.pmtiles" + }, + { + "id": "podkarpackie", + "asset": "occumed-podkarpackie.pmtiles" + }, + { + "id": "portugal--r1-c1", + "asset": "occumed-portugal--r1-c1.pmtiles" + }, + { + "id": "portugal--r1-c2", + "asset": "occumed-portugal--r1-c2.pmtiles" + }, + { + "id": "portugal--r1-c3", + "asset": "occumed-portugal--r1-c3.pmtiles" + }, + { + "id": "portugal--r2-c1", + "asset": "occumed-portugal--r2-c1.pmtiles" + }, + { + "id": "portugal--r2-c2", + "asset": "occumed-portugal--r2-c2.pmtiles" + }, + { + "id": "portugal--r2-c3", + "asset": "occumed-portugal--r2-c3.pmtiles" + }, + { + "id": "praha", + "asset": "occumed-praha.pmtiles" + }, + { + "id": "qikiqtaaluk--r1-c1", + "asset": "occumed-qikiqtaaluk--r1-c1.pmtiles" + }, + { + "id": "qikiqtaaluk--r1-c2", + "asset": "occumed-qikiqtaaluk--r1-c2.pmtiles" + }, + { + "id": "qikiqtaaluk--r2-c1", + "asset": "occumed-qikiqtaaluk--r2-c1.pmtiles" + }, + { + "id": "qikiqtaaluk--r2-c2", + "asset": "occumed-qikiqtaaluk--r2-c2.pmtiles" + }, + { + "id": "quebec--r1-c1", + "asset": "occumed-quebec--r1-c1.pmtiles" + }, + { + "id": "quebec--r1-c2", + "asset": "occumed-quebec--r1-c2.pmtiles" + }, + { + "id": "quebec--r2-c1", + "asset": "occumed-quebec--r2-c1.pmtiles" + }, + { + "id": "quebec--r2-c2", + "asset": "occumed-quebec--r2-c2.pmtiles" + }, + { + "id": "quebec--r3-c1", + "asset": "occumed-quebec--r3-c1.pmtiles" + }, + { + "id": "quebec--r3-c2", + "asset": "occumed-quebec--r3-c2.pmtiles" + }, + { + "id": "queensland", + "asset": "occumed-queensland.pmtiles" + }, + { + "id": "rhone-alpes--r1-c1", + "asset": "occumed-rhone-alpes--r1-c1.pmtiles" + }, + { + "id": "rhone-alpes--r1-c2", + "asset": "occumed-rhone-alpes--r1-c2.pmtiles" + }, + { + "id": "rhone-alpes--r1-c3", + "asset": "occumed-rhone-alpes--r1-c3.pmtiles" + }, + { + "id": "rhone-alpes--r2-c1", + "asset": "occumed-rhone-alpes--r2-c1.pmtiles" + }, + { + "id": "rhone-alpes--r2-c2", + "asset": "occumed-rhone-alpes--r2-c2.pmtiles" + }, + { + "id": "rhone-alpes--r2-c3", + "asset": "occumed-rhone-alpes--r2-c3.pmtiles" + }, + { + "id": "romania", + "asset": "occumed-romania.pmtiles" + }, + { + "id": "rwanda", + "asset": "occumed-rwanda.pmtiles" + }, + { + "id": "saint-helena-ascension-and-tristan-da-cunha", + "asset": "occumed-saint-helena-ascension-and-tristan-da-cunha.pmtiles" + }, + { + "id": "sao-tome-and-principe", + "asset": "occumed-sao-tome-and-principe.pmtiles" + }, + { + "id": "saskatchewan", + "asset": "occumed-saskatchewan.pmtiles" + }, + { + "id": "scotland", + "asset": "occumed-scotland.pmtiles" + }, + { + "id": "senegal-and-gambia", + "asset": "occumed-senegal-and-gambia.pmtiles" + }, + { + "id": "serbia", + "asset": "occumed-serbia.pmtiles" + }, + { + "id": "shandong", + "asset": "occumed-shandong.pmtiles" + }, + { + "id": "shanxi", + "asset": "occumed-shanxi.pmtiles" + }, + { + "id": "shikoku", + "asset": "occumed-shikoku.pmtiles" + }, + { + "id": "siberian-fed-district--r1-c1", + "asset": "occumed-siberian-fed-district--r1-c1.pmtiles" + }, + { + "id": "siberian-fed-district--r1-c2", + "asset": "occumed-siberian-fed-district--r1-c2.pmtiles" + }, + { + "id": "siberian-fed-district--r2-c1", + "asset": "occumed-siberian-fed-district--r2-c1.pmtiles" + }, + { + "id": "siberian-fed-district--r2-c2", + "asset": "occumed-siberian-fed-district--r2-c2.pmtiles" + }, + { + "id": "sichuan", + "asset": "occumed-sichuan.pmtiles" + }, + { + "id": "sierra-leone", + "asset": "occumed-sierra-leone.pmtiles" + }, + { + "id": "slaskie", + "asset": "occumed-slaskie.pmtiles" + }, + { + "id": "slovakia", + "asset": "occumed-slovakia.pmtiles" + }, + { + "id": "socal--r1-c1", + "asset": "occumed-socal--r1-c1.pmtiles" + }, + { + "id": "socal--r1-c2", + "asset": "occumed-socal--r1-c2.pmtiles" + }, + { + "id": "socal--r1-c3", + "asset": "occumed-socal--r1-c3.pmtiles" + }, + { + "id": "socal--r2-c1", + "asset": "occumed-socal--r2-c1.pmtiles" + }, + { + "id": "socal--r2-c2", + "asset": "occumed-socal--r2-c2.pmtiles" + }, + { + "id": "socal--r2-c3", + "asset": "occumed-socal--r2-c3.pmtiles" + }, + { + "id": "solomon-islands", + "asset": "occumed-solomon-islands.pmtiles" + }, + { + "id": "somalia", + "asset": "occumed-somalia.pmtiles" + }, + { + "id": "somerset", + "asset": "occumed-somerset.pmtiles" + }, + { + "id": "sorlandet", + "asset": "occumed-sorlandet.pmtiles" + }, + { + "id": "south-africa--r1-c1", + "asset": "occumed-south-africa--r1-c1.pmtiles" + }, + { + "id": "south-africa--r1-c2", + "asset": "occumed-south-africa--r1-c2.pmtiles" + }, + { + "id": "south-africa--r2-c1", + "asset": "occumed-south-africa--r2-c1.pmtiles" + }, + { + "id": "south-africa--r2-c2", + "asset": "occumed-south-africa--r2-c2.pmtiles" + }, + { + "id": "south-australia", + "asset": "occumed-south-australia.pmtiles" + }, + { + "id": "south-fed-district", + "asset": "occumed-south-fed-district.pmtiles" + }, + { + "id": "south-korea", + "asset": "occumed-south-korea.pmtiles" + }, + { + "id": "south-sudan", + "asset": "occumed-south-sudan.pmtiles" + }, + { + "id": "south-yorkshire", + "asset": "occumed-south-yorkshire.pmtiles" + }, + { + "id": "southcoast-admreg", + "asset": "occumed-southcoast-admreg.pmtiles" + }, + { + "id": "southern-zone--r1-c1", + "asset": "occumed-southern-zone--r1-c1.pmtiles" + }, + { + "id": "southern-zone--r1-c2", + "asset": "occumed-southern-zone--r1-c2.pmtiles" + }, + { + "id": "southern-zone--r1-c3", + "asset": "occumed-southern-zone--r1-c3.pmtiles" + }, + { + "id": "southern-zone--r2-c1", + "asset": "occumed-southern-zone--r2-c1.pmtiles" + }, + { + "id": "southern-zone--r2-c2", + "asset": "occumed-southern-zone--r2-c2.pmtiles" + }, + { + "id": "southern-zone--r2-c3", + "asset": "occumed-southern-zone--r2-c3.pmtiles" + }, + { + "id": "sri-lanka", + "asset": "occumed-sri-lanka.pmtiles" + }, + { + "id": "staffordshire", + "asset": "occumed-staffordshire.pmtiles" + }, + { + "id": "stredocesky", + "asset": "occumed-stredocesky.pmtiles" + }, + { + "id": "stuttgart-regbez", + "asset": "occumed-stuttgart-regbez.pmtiles" + }, + { + "id": "sud--r1-c1", + "asset": "occumed-sud--r1-c1.pmtiles" + }, + { + "id": "sud--r1-c2", + "asset": "occumed-sud--r1-c2.pmtiles" + }, + { + "id": "sud--r2-c1", + "asset": "occumed-sud--r2-c1.pmtiles" + }, + { + "id": "sud--r2-c2", + "asset": "occumed-sud--r2-c2.pmtiles" + }, + { + "id": "sudan", + "asset": "occumed-sudan.pmtiles" + }, + { + "id": "sudeste--r1-c1", + "asset": "occumed-sudeste--r1-c1.pmtiles" + }, + { + "id": "sudeste--r1-c2", + "asset": "occumed-sudeste--r1-c2.pmtiles" + }, + { + "id": "sudeste--r1-c3", + "asset": "occumed-sudeste--r1-c3.pmtiles" + }, + { + "id": "sudeste--r2-c1", + "asset": "occumed-sudeste--r2-c1.pmtiles" + }, + { + "id": "sudeste--r2-c2", + "asset": "occumed-sudeste--r2-c2.pmtiles" + }, + { + "id": "sudeste--r2-c3", + "asset": "occumed-sudeste--r2-c3.pmtiles" + }, + { + "id": "suffolk", + "asset": "occumed-suffolk.pmtiles" + }, + { + "id": "sul--r1-c1", + "asset": "occumed-sul--r1-c1.pmtiles" + }, + { + "id": "sul--r1-c2", + "asset": "occumed-sul--r1-c2.pmtiles" + }, + { + "id": "sul--r2-c1", + "asset": "occumed-sul--r2-c1.pmtiles" + }, + { + "id": "sul--r2-c2", + "asset": "occumed-sul--r2-c2.pmtiles" + }, + { + "id": "sulawesi", + "asset": "occumed-sulawesi.pmtiles" + }, + { + "id": "sumatra", + "asset": "occumed-sumatra.pmtiles" + }, + { + "id": "suriname", + "asset": "occumed-suriname.pmtiles" + }, + { + "id": "surrey", + "asset": "occumed-surrey.pmtiles" + }, + { + "id": "svalbard-janmayen", + "asset": "occumed-svalbard-janmayen.pmtiles" + }, + { + "id": "swaziland", + "asset": "occumed-swaziland.pmtiles" + }, + { + "id": "sweden--r1-c1", + "asset": "occumed-sweden--r1-c1.pmtiles" + }, + { + "id": "sweden--r1-c2", + "asset": "occumed-sweden--r1-c2.pmtiles" + }, + { + "id": "sweden--r2-c1", + "asset": "occumed-sweden--r2-c1.pmtiles" + }, + { + "id": "sweden--r2-c2", + "asset": "occumed-sweden--r2-c2.pmtiles" + }, + { + "id": "swietokrzyskie", + "asset": "occumed-swietokrzyskie.pmtiles" + }, + { + "id": "switzerland--r1-c1", + "asset": "occumed-switzerland--r1-c1.pmtiles" + }, + { + "id": "switzerland--r1-c2", + "asset": "occumed-switzerland--r1-c2.pmtiles" + }, + { + "id": "switzerland--r1-c3", + "asset": "occumed-switzerland--r1-c3.pmtiles" + }, + { + "id": "switzerland--r2-c1", + "asset": "occumed-switzerland--r2-c1.pmtiles" + }, + { + "id": "switzerland--r2-c2", + "asset": "occumed-switzerland--r2-c2.pmtiles" + }, + { + "id": "switzerland--r2-c3", + "asset": "occumed-switzerland--r2-c3.pmtiles" + }, + { + "id": "syria", + "asset": "occumed-syria.pmtiles" + }, + { + "id": "taiwan", + "asset": "occumed-taiwan.pmtiles" + }, + { + "id": "tajikistan", + "asset": "occumed-tajikistan.pmtiles" + }, + { + "id": "tanzania--r1-c1", + "asset": "occumed-tanzania--r1-c1.pmtiles" + }, + { + "id": "tanzania--r1-c2", + "asset": "occumed-tanzania--r1-c2.pmtiles" + }, + { + "id": "tanzania--r1-c3", + "asset": "occumed-tanzania--r1-c3.pmtiles" + }, + { + "id": "tanzania--r2-c1", + "asset": "occumed-tanzania--r2-c1.pmtiles" + }, + { + "id": "tanzania--r2-c2", + "asset": "occumed-tanzania--r2-c2.pmtiles" + }, + { + "id": "tanzania--r2-c3", + "asset": "occumed-tanzania--r2-c3.pmtiles" + }, + { + "id": "tasmania", + "asset": "occumed-tasmania.pmtiles" + }, + { + "id": "thailand", + "asset": "occumed-thailand.pmtiles" + }, + { + "id": "thueringen", + "asset": "occumed-thueringen.pmtiles" + }, + { + "id": "tianjin", + "asset": "occumed-tianjin.pmtiles" + }, + { + "id": "tibet", + "asset": "occumed-tibet.pmtiles" + }, + { + "id": "togo", + "asset": "occumed-togo.pmtiles" + }, + { + "id": "tohoku", + "asset": "occumed-tohoku.pmtiles" + }, + { + "id": "tokelau", + "asset": "occumed-tokelau.pmtiles" + }, + { + "id": "tonga", + "asset": "occumed-tonga.pmtiles" + }, + { + "id": "trondelag", + "asset": "occumed-trondelag.pmtiles" + }, + { + "id": "tuebingen-regbez", + "asset": "occumed-tuebingen-regbez.pmtiles" + }, + { + "id": "tunisia", + "asset": "occumed-tunisia.pmtiles" + }, + { + "id": "turkey--r1-c1", + "asset": "occumed-turkey--r1-c1.pmtiles" + }, + { + "id": "turkey--r1-c2", + "asset": "occumed-turkey--r1-c2.pmtiles" + }, + { + "id": "turkey--r1-c3", + "asset": "occumed-turkey--r1-c3.pmtiles" + }, + { + "id": "turkey--r2-c1", + "asset": "occumed-turkey--r2-c1.pmtiles" + }, + { + "id": "turkey--r2-c2", + "asset": "occumed-turkey--r2-c2.pmtiles" + }, + { + "id": "turkey--r2-c3", + "asset": "occumed-turkey--r2-c3.pmtiles" + }, + { + "id": "turkmenistan", + "asset": "occumed-turkmenistan.pmtiles" + }, + { + "id": "tuvalu", + "asset": "occumed-tuvalu.pmtiles" + }, + { + "id": "tyne-and-wear", + "asset": "occumed-tyne-and-wear.pmtiles" + }, + { + "id": "uganda", + "asset": "occumed-uganda.pmtiles" + }, + { + "id": "ukraine--r1-c1", + "asset": "occumed-ukraine--r1-c1.pmtiles" + }, + { + "id": "ukraine--r1-c2", + "asset": "occumed-ukraine--r1-c2.pmtiles" + }, + { + "id": "ukraine--r1-c3", + "asset": "occumed-ukraine--r1-c3.pmtiles" + }, + { + "id": "ukraine--r2-c1", + "asset": "occumed-ukraine--r2-c1.pmtiles" + }, + { + "id": "ukraine--r2-c2", + "asset": "occumed-ukraine--r2-c2.pmtiles" + }, + { + "id": "ukraine--r2-c3", + "asset": "occumed-ukraine--r2-c3.pmtiles" + }, + { + "id": "unterfranken", + "asset": "occumed-unterfranken.pmtiles" + }, + { + "id": "ural-fed-district", + "asset": "occumed-ural-fed-district.pmtiles" + }, + { + "id": "uruguay", + "asset": "occumed-uruguay.pmtiles" + }, + { + "id": "us/alabama", + "asset": "occumed-us--alabama.pmtiles" + }, + { + "id": "us/alaska", + "asset": "occumed-us--alaska.pmtiles" + }, + { + "id": "us/arizona", + "asset": "occumed-us--arizona.pmtiles" + }, + { + "id": "us/arkansas", + "asset": "occumed-us--arkansas.pmtiles" + }, + { + "id": "us/colorado", + "asset": "occumed-us--colorado.pmtiles" + }, + { + "id": "us/connecticut", + "asset": "occumed-us--connecticut.pmtiles" + }, + { + "id": "us/delaware", + "asset": "occumed-us--delaware.pmtiles" + }, + { + "id": "us/district-of-columbia", + "asset": "occumed-us--district-of-columbia.pmtiles" + }, + { + "id": "us/florida--r1-c1", + "asset": "occumed-us--florida--r1-c1.pmtiles" + }, + { + "id": "us/florida--r1-c2", + "asset": "occumed-us--florida--r1-c2.pmtiles" + }, + { + "id": "us/florida--r1-c3", + "asset": "occumed-us--florida--r1-c3.pmtiles" + }, + { + "id": "us/florida--r2-c1", + "asset": "occumed-us--florida--r2-c1.pmtiles" + }, + { + "id": "us/florida--r2-c2", + "asset": "occumed-us--florida--r2-c2.pmtiles" + }, + { + "id": "us/florida--r2-c3", + "asset": "occumed-us--florida--r2-c3.pmtiles" + }, + { + "id": "us/georgia", + "asset": "occumed-us--georgia.pmtiles" + }, + { + "id": "us/hawaii", + "asset": "occumed-us--hawaii.pmtiles" + }, + { + "id": "us/idaho", + "asset": "occumed-us--idaho.pmtiles" + }, + { + "id": "us/illinois", + "asset": "occumed-us--illinois.pmtiles" + }, + { + "id": "us/indiana", + "asset": "occumed-us--indiana.pmtiles" + }, + { + "id": "us/iowa", + "asset": "occumed-us--iowa.pmtiles" + }, + { + "id": "us/kansas", + "asset": "occumed-us--kansas.pmtiles" + }, + { + "id": "us/kentucky", + "asset": "occumed-us--kentucky.pmtiles" + }, + { + "id": "us/louisiana", + "asset": "occumed-us--louisiana.pmtiles" + }, + { + "id": "us/maine", + "asset": "occumed-us--maine.pmtiles" + }, + { + "id": "us/maryland", + "asset": "occumed-us--maryland.pmtiles" + }, + { + "id": "us/massachusetts", + "asset": "occumed-us--massachusetts.pmtiles" + }, + { + "id": "us/michigan", + "asset": "occumed-us--michigan.pmtiles" + }, + { + "id": "us/minnesota", + "asset": "occumed-us--minnesota.pmtiles" + }, + { + "id": "us/mississippi", + "asset": "occumed-us--mississippi.pmtiles" + }, + { + "id": "us/missouri", + "asset": "occumed-us--missouri.pmtiles" + }, + { + "id": "us/montana", + "asset": "occumed-us--montana.pmtiles" + }, + { + "id": "us/nebraska", + "asset": "occumed-us--nebraska.pmtiles" + }, + { + "id": "us/nevada", + "asset": "occumed-us--nevada.pmtiles" + }, + { + "id": "us/new-hampshire", + "asset": "occumed-us--new-hampshire.pmtiles" + }, + { + "id": "us/new-jersey", + "asset": "occumed-us--new-jersey.pmtiles" + }, + { + "id": "us/new-mexico", + "asset": "occumed-us--new-mexico.pmtiles" + }, + { + "id": "us/new-york--r1-c1", + "asset": "occumed-us--new-york--r1-c1.pmtiles" + }, + { + "id": "us/new-york--r1-c2", + "asset": "occumed-us--new-york--r1-c2.pmtiles" + }, + { + "id": "us/new-york--r1-c3", + "asset": "occumed-us--new-york--r1-c3.pmtiles" + }, + { + "id": "us/new-york--r2-c1", + "asset": "occumed-us--new-york--r2-c1.pmtiles" + }, + { + "id": "us/new-york--r2-c2", + "asset": "occumed-us--new-york--r2-c2.pmtiles" + }, + { + "id": "us/new-york--r2-c3", + "asset": "occumed-us--new-york--r2-c3.pmtiles" + }, + { + "id": "us/north-carolina--r1-c1", + "asset": "occumed-us--north-carolina--r1-c1.pmtiles" + }, + { + "id": "us/north-carolina--r1-c2", + "asset": "occumed-us--north-carolina--r1-c2.pmtiles" + }, + { + "id": "us/north-carolina--r1-c3", + "asset": "occumed-us--north-carolina--r1-c3.pmtiles" + }, + { + "id": "us/north-carolina--r1-c4", + "asset": "occumed-us--north-carolina--r1-c4.pmtiles" + }, + { + "id": "us/north-dakota", + "asset": "occumed-us--north-dakota.pmtiles" + }, + { + "id": "us/ohio", + "asset": "occumed-us--ohio.pmtiles" + }, + { + "id": "us/oklahoma", + "asset": "occumed-us--oklahoma.pmtiles" + }, + { + "id": "us/oregon", + "asset": "occumed-us--oregon.pmtiles" + }, + { + "id": "us/pennsylvania", + "asset": "occumed-us--pennsylvania.pmtiles" + }, + { + "id": "us/puerto-rico", + "asset": "occumed-us--puerto-rico.pmtiles" + }, + { + "id": "us/rhode-island", + "asset": "occumed-us--rhode-island.pmtiles" + }, + { + "id": "us/south-carolina", + "asset": "occumed-us--south-carolina.pmtiles" + }, + { + "id": "us/south-dakota", + "asset": "occumed-us--south-dakota.pmtiles" + }, + { + "id": "us/tennessee", + "asset": "occumed-us--tennessee.pmtiles" + }, + { + "id": "us/texas--r1-c1", + "asset": "occumed-us--texas--r1-c1.pmtiles" + }, + { + "id": "us/texas--r1-c2", + "asset": "occumed-us--texas--r1-c2.pmtiles" + }, + { + "id": "us/texas--r1-c3", + "asset": "occumed-us--texas--r1-c3.pmtiles" + }, + { + "id": "us/texas--r2-c1", + "asset": "occumed-us--texas--r2-c1.pmtiles" + }, + { + "id": "us/texas--r2-c2", + "asset": "occumed-us--texas--r2-c2.pmtiles" + }, + { + "id": "us/texas--r2-c3", + "asset": "occumed-us--texas--r2-c3.pmtiles" + }, + { + "id": "us/us-virgin-islands", + "asset": "occumed-us--us-virgin-islands.pmtiles" + }, + { + "id": "us/utah", + "asset": "occumed-us--utah.pmtiles" + }, + { + "id": "us/vermont", + "asset": "occumed-us--vermont.pmtiles" + }, + { + "id": "us/virginia--r1-c1", + "asset": "occumed-us--virginia--r1-c1.pmtiles" + }, + { + "id": "us/virginia--r1-c2", + "asset": "occumed-us--virginia--r1-c2.pmtiles" + }, + { + "id": "us/virginia--r1-c3", + "asset": "occumed-us--virginia--r1-c3.pmtiles" + }, + { + "id": "us/virginia--r1-c4", + "asset": "occumed-us--virginia--r1-c4.pmtiles" + }, + { + "id": "us/washington", + "asset": "occumed-us--washington.pmtiles" + }, + { + "id": "us/west-virginia", + "asset": "occumed-us--west-virginia.pmtiles" + }, + { + "id": "us/wisconsin", + "asset": "occumed-us--wisconsin.pmtiles" + }, + { + "id": "us/wyoming", + "asset": "occumed-us--wyoming.pmtiles" + }, + { + "id": "ustecky", + "asset": "occumed-ustecky.pmtiles" + }, + { + "id": "utrecht", + "asset": "occumed-utrecht.pmtiles" + }, + { + "id": "uzbekistan", + "asset": "occumed-uzbekistan.pmtiles" + }, + { + "id": "valencia", + "asset": "occumed-valencia.pmtiles" + }, + { + "id": "vanuatu", + "asset": "occumed-vanuatu.pmtiles" + }, + { + "id": "venezuela", + "asset": "occumed-venezuela.pmtiles" + }, + { + "id": "vestlandet", + "asset": "occumed-vestlandet.pmtiles" + }, + { + "id": "victoria", + "asset": "occumed-victoria.pmtiles" + }, + { + "id": "vietnam", + "asset": "occumed-vietnam.pmtiles" + }, + { + "id": "volga-fed-district--r1-c1", + "asset": "occumed-volga-fed-district--r1-c1.pmtiles" + }, + { + "id": "volga-fed-district--r1-c2", + "asset": "occumed-volga-fed-district--r1-c2.pmtiles" + }, + { + "id": "volga-fed-district--r2-c1", + "asset": "occumed-volga-fed-district--r2-c1.pmtiles" + }, + { + "id": "volga-fed-district--r2-c2", + "asset": "occumed-volga-fed-district--r2-c2.pmtiles" + }, + { + "id": "vysocina", + "asset": "occumed-vysocina.pmtiles" + }, + { + "id": "wales", + "asset": "occumed-wales.pmtiles" + }, + { + "id": "wallis-et-futuna", + "asset": "occumed-wallis-et-futuna.pmtiles" + }, + { + "id": "warminsko-mazurskie", + "asset": "occumed-warminsko-mazurskie.pmtiles" + }, + { + "id": "warwickshire", + "asset": "occumed-warwickshire.pmtiles" + }, + { + "id": "west-midlands", + "asset": "occumed-west-midlands.pmtiles" + }, + { + "id": "west-sussex", + "asset": "occumed-west-sussex.pmtiles" + }, + { + "id": "west-yorkshire", + "asset": "occumed-west-yorkshire.pmtiles" + }, + { + "id": "western-australia", + "asset": "occumed-western-australia.pmtiles" + }, + { + "id": "western-zone", + "asset": "occumed-western-zone.pmtiles" + }, + { + "id": "wielkopolskie", + "asset": "occumed-wielkopolskie.pmtiles" + }, + { + "id": "wiltshire", + "asset": "occumed-wiltshire.pmtiles" + }, + { + "id": "worcestershire", + "asset": "occumed-worcestershire.pmtiles" + }, + { + "id": "xinjiang", + "asset": "occumed-xinjiang.pmtiles" + }, + { + "id": "yemen", + "asset": "occumed-yemen.pmtiles" + }, + { + "id": "yukon", + "asset": "occumed-yukon.pmtiles" + }, + { + "id": "yunnan", + "asset": "occumed-yunnan.pmtiles" + }, + { + "id": "zachodniopomorskie", + "asset": "occumed-zachodniopomorskie.pmtiles" + }, + { + "id": "zambia", + "asset": "occumed-zambia.pmtiles" + }, + { + "id": "zeeland", + "asset": "occumed-zeeland.pmtiles" + }, + { + "id": "zhejiang", + "asset": "occumed-zhejiang.pmtiles" + }, + { + "id": "zimbabwe", + "asset": "occumed-zimbabwe.pmtiles" + }, + { + "id": "zlinsky", + "asset": "occumed-zlinsky.pmtiles" + }, + { + "id": "zuid-holland", + "asset": "occumed-zuid-holland.pmtiles" + } + ] +} diff --git a/diagnostics/world-release-coverage.json b/diagnostics/world-release-coverage.json new file mode 100644 index 00000000..f330d127 --- /dev/null +++ b/diagnostics/world-release-coverage.json @@ -0,0 +1,5505 @@ +{ + "version": 1, + "generatedAt": "2026-07-26T21:24:51.808Z", + "releaseTag": "occumed-world-v1", + "sourceSchema": "planetiler/occumed-basemap.yml", + "switchZoom": 6, + "attribution": "© OpenStreetMap contributors", + "archiveTransport": "same-origin-release-proxy", + "archiveProxyTemplate": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/{asset}", + "releaseBase": "https://github.com/Occumed79/Map/releases/download/occumed-world-v1", + "regions": [ + { + "id": "act", + "slug": "act", + "name": "Australian Capital Territory", + "continent": "australia-oceania", + "bounds": [ + 148.7583, + -35.92548, + 149.4018, + -35.12093 + ], + "asset": "occumed-act.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-act.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "afghanistan", + "slug": "afghanistan", + "name": "Afghanistan", + "continent": "asia", + "bounds": [ + 60.48761, + 29.36856, + 74.90017, + 38.50674 + ], + "asset": "occumed-afghanistan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-afghanistan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "albania", + "slug": "albania", + "name": "Albania", + "continent": "europe", + "bounds": [ + 18.89648, + 39.62738, + 21.06285, + 42.66313 + ], + "asset": "occumed-albania.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-albania.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "alberta", + "slug": "alberta", + "name": "Alberta", + "continent": "north-america", + "bounds": [ + -120.0043, + 48.99251, + -110.0018, + 60.00254 + ], + "asset": "occumed-alberta.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-alberta.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "algeria", + "slug": "algeria", + "name": "Algeria", + "continent": "africa", + "bounds": [ + -8.704895, + 18.92874, + 12.03598, + 37.77284 + ], + "asset": "occumed-algeria.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-algeria.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "alsace", + "slug": "alsace", + "name": "Alsace", + "continent": "europe", + "bounds": [ + 6.838921, + 47.41798, + 8.235465, + 49.07898 + ], + "asset": "occumed-alsace.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-alsace.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "american-oceania", + "slug": "american-oceania", + "name": "American Oceania", + "continent": "australia-oceania", + "bounds": [ + 141.6357, + -17.644, + -160.2799, + 22.02463 + ], + "asset": "occumed-american-oceania.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-american-oceania.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "andalucia", + "slug": "andalucia", + "name": "Andalucía", + "continent": "europe", + "bounds": [ + -7.52466, + 35.70638, + -1.332095, + 38.73347 + ], + "asset": "occumed-andalucia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-andalucia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "andorra", + "slug": "andorra", + "name": "Andorra", + "continent": "europe", + "bounds": [ + 1.412368, + 42.4276, + 1.787481, + 42.65717 + ], + "asset": "occumed-andorra.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-andorra.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "angola", + "slug": "angola", + "name": "Angola", + "continent": "africa", + "bounds": [ + 10.53848, + -18.06508, + 24.10297, + -4.327925 + ], + "asset": "occumed-angola.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-angola.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "anhui", + "slug": "anhui", + "name": "Anhui", + "continent": "asia", + "bounds": [ + 114.8693, + 29.38816, + 119.6566, + 34.65496 + ], + "asset": "occumed-anhui.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-anhui.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "antarctica", + "slug": "antarctica", + "name": "Antarctica", + "continent": "antarctica", + "bounds": [ + 180, + -90, + 180, + -60 + ], + "asset": "occumed-antarctica.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-antarctica.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "aquitaine", + "slug": "aquitaine", + "name": "Aquitaine", + "continent": "europe", + "bounds": [ + -1.842771, + 42.77334, + 1.450577, + 45.71724 + ], + "asset": "occumed-aquitaine.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-aquitaine.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "aragon", + "slug": "aragon", + "name": "Aragón", + "continent": "europe", + "bounds": [ + -2.17907, + 39.83833, + 0.772562, + 42.92677 + ], + "asset": "occumed-aragon.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-aragon.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "armenia", + "slug": "armenia", + "name": "Armenia", + "continent": "asia", + "bounds": [ + 43.43821, + 38.83743, + 46.64262, + 41.31029 + ], + "asset": "occumed-armenia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-armenia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "arnsberg-regbez", + "slug": "arnsberg-regbez", + "name": "Regierungsbezirk Arnsberg", + "continent": "europe", + "bounds": [ + 7.099633, + 50.67897, + 8.972531, + 51.74709 + ], + "asset": "occumed-arnsberg-regbez.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-arnsberg-regbez.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ashmore-cartier", + "slug": "ashmore-cartier", + "name": "Ashmore and Cartier Islands", + "continent": "australia-oceania", + "bounds": [ + 122.5681, + -12.8482, + 124.0416, + -11.89266 + ], + "asset": "occumed-ashmore-cartier.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ashmore-cartier.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "asturias", + "slug": "asturias", + "name": "Asturias", + "continent": "europe", + "bounds": [ + -7.188576, + 42.87886, + -4.39956, + 44.01101 + ], + "asset": "occumed-asturias.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-asturias.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "austria", + "slug": "austria", + "name": "Austria", + "continent": "europe", + "bounds": [ + 9.52678, + 46.36979, + 17.16408, + 49.02403 + ], + "asset": "occumed-austria.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-austria.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "auvergne", + "slug": "auvergne", + "name": "Auvergne", + "continent": "europe", + "bounds": [ + 2.060519, + 44.6146, + 4.492907, + 46.80668 + ], + "asset": "occumed-auvergne.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-auvergne.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "azerbaijan", + "slug": "azerbaijan", + "name": "Azerbaijan", + "continent": "asia", + "bounds": [ + 44.75006, + 38.24727, + 51.7231, + 42.67437 + ], + "asset": "occumed-azerbaijan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-azerbaijan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "azores", + "slug": "azores", + "name": "Azores", + "continent": "europe", + "bounds": [ + -31.57293, + 35.67791, + -23.71814, + 40.0757 + ], + "asset": "occumed-azores.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-azores.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bahamas", + "slug": "bahamas", + "name": "Bahamas", + "continent": "central-america", + "bounds": [ + -81.51857, + 20.27251, + -71.86673, + 27.97497 + ], + "asset": "occumed-bahamas.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bahamas.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bangladesh", + "slug": "bangladesh", + "name": "Bangladesh", + "continent": "asia", + "bounds": [ + 87.99765, + 18.58403, + 92.69714, + 26.64677 + ], + "asset": "occumed-bangladesh.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bangladesh.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "basse-normandie", + "slug": "basse-normandie", + "name": "Basse-Normandie", + "continent": "europe", + "bounds": [ + -2.087526, + 48.17802, + 0.979067, + 49.88523 + ], + "asset": "occumed-basse-normandie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-basse-normandie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bedfordshire", + "slug": "bedfordshire", + "name": "Bedfordshire", + "continent": "europe", + "bounds": [ + -0.704092, + 51.8036, + -0.142022, + 52.32483 + ], + "asset": "occumed-bedfordshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bedfordshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "beijing", + "slug": "beijing", + "name": "Beijing", + "continent": "asia", + "bounds": [ + 115.4155, + 39.44083, + 117.5095, + 41.06382 + ], + "asset": "occumed-beijing.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-beijing.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "belarus", + "slug": "belarus", + "name": "Belarus", + "continent": "europe", + "bounds": [ + 23.1748, + 51.23441, + 32.76947, + 56.17385 + ], + "asset": "occumed-belarus.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-belarus.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "belgium", + "slug": "belgium", + "name": "Belgium", + "continent": "europe", + "bounds": [ + 2.340725, + 49.49489, + 6.410265, + 51.59839 + ], + "asset": "occumed-belgium.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-belgium.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "belize", + "slug": "belize", + "name": "Belize", + "continent": "central-america", + "bounds": [ + -89.22892, + 15.88308, + -86.85983, + 18.4984 + ], + "asset": "occumed-belize.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-belize.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "benin", + "slug": "benin", + "name": "Benin", + "continent": "africa", + "bounds": [ + 0.761489, + 5.984817, + 3.861694, + 12.43658 + ], + "asset": "occumed-benin.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-benin.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "berkshire", + "slug": "berkshire", + "name": "Berkshire", + "continent": "europe", + "bounds": [ + -1.589073, + 51.32802, + -0.489118, + 51.57873 + ], + "asset": "occumed-berkshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-berkshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "berlin", + "slug": "berlin", + "name": "Berlin", + "continent": "europe", + "bounds": [ + 13.08283, + 52.33446, + 13.76225, + 52.6783 + ], + "asset": "occumed-berlin.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-berlin.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bermuda", + "slug": "bermuda", + "name": "Bermuda", + "continent": "europe", + "bounds": [ + -65.2005, + 32.02158, + -64.39406, + 32.62324 + ], + "asset": "occumed-bermuda.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bermuda.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bhutan", + "slug": "bhutan", + "name": "Bhutan", + "continent": "asia", + "bounds": [ + 88.73917, + 26.6948, + 92.13159, + 28.25372 + ], + "asset": "occumed-bhutan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bhutan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bolivia", + "slug": "bolivia", + "name": "Bolivia", + "continent": "south-america", + "bounds": [ + -69.65675, + -22.92551, + -57.43481, + -9.63866 + ], + "asset": "occumed-bolivia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bolivia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bosnia-herzegovina", + "slug": "bosnia-herzegovina", + "name": "Bosnia-Herzegovina", + "continent": "europe", + "bounds": [ + 15.7156, + 42.55239, + 19.62639, + 45.27803 + ], + "asset": "occumed-bosnia-herzegovina.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bosnia-herzegovina.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "botswana", + "slug": "botswana", + "name": "Botswana", + "continent": "africa", + "bounds": [ + 19.98745, + -26.91539, + 29.38549, + -17.77403 + ], + "asset": "occumed-botswana.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-botswana.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bourgogne", + "slug": "bourgogne", + "name": "Bourgogne", + "continent": "europe", + "bounds": [ + 2.843279, + 46.15484, + 5.519965, + 48.40136 + ], + "asset": "occumed-bourgogne.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bourgogne.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "brandenburg", + "slug": "brandenburg", + "name": "Brandenburg (mit Berlin)", + "continent": "europe", + "bounds": [ + 11.22404, + 51.35252, + 14.77481, + 53.5784 + ], + "asset": "occumed-brandenburg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-brandenburg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bremen", + "slug": "bremen", + "name": "Bremen", + "continent": "europe", + "bounds": [ + 8.480959, + 53.01034, + 8.991268, + 53.61063 + ], + "asset": "occumed-bremen.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bremen.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bretagne", + "slug": "bretagne", + "name": "Bretagne", + "continent": "europe", + "bounds": [ + -5.848854, + 47.07722, + -1.014538, + 49.40025 + ], + "asset": "occumed-bretagne.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bretagne.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bristol", + "slug": "bristol", + "name": "Bristol", + "continent": "europe", + "bounds": [ + -2.734665, + 51.39611, + -2.509528, + 51.54562 + ], + "asset": "occumed-bristol.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bristol.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "buckinghamshire", + "slug": "buckinghamshire", + "name": "Buckinghamshire", + "continent": "europe", + "bounds": [ + -1.140791, + 51.48571, + -0.482713, + 52.19561 + ], + "asset": "occumed-buckinghamshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-buckinghamshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "bulgaria", + "slug": "bulgaria", + "name": "Bulgaria", + "continent": "europe", + "bounds": [ + 22.34875, + 41.22681, + 29.18819, + 44.21777 + ], + "asset": "occumed-bulgaria.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-bulgaria.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "burkina-faso", + "slug": "burkina-faso", + "name": "Burkina Faso", + "continent": "africa", + "bounds": [ + -5.527409, + 9.384107, + 2.412529, + 15.09271 + ], + "asset": "occumed-burkina-faso.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-burkina-faso.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "burundi", + "slug": "burundi", + "name": "Burundi", + "continent": "africa", + "bounds": [ + 29.00018, + -4.481328, + 30.85115, + -2.307893 + ], + "asset": "occumed-burundi.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-burundi.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cambodia", + "slug": "cambodia", + "name": "Cambodia", + "continent": "asia", + "bounds": [ + 101.8522, + 8.858092, + 107.6397, + 14.71875 + ], + "asset": "occumed-cambodia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cambodia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cambridgeshire", + "slug": "cambridgeshire", + "name": "Cambridgeshire", + "continent": "europe", + "bounds": [ + -0.502126, + 52.00517, + 0.516191, + 52.74155 + ], + "asset": "occumed-cambridgeshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cambridgeshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cameroon", + "slug": "cameroon", + "name": "Cameroon", + "continent": "africa", + "bounds": [ + 8.33, + 1.645663, + 16.20312, + 13.09278 + ], + "asset": "occumed-cameroon.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cameroon.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "canary-islands", + "slug": "canary-islands", + "name": "Canary Islands", + "continent": "africa", + "bounds": [ + -18.92352, + 26.36117, + -12.47875, + 30.25648 + ], + "asset": "occumed-canary-islands.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-canary-islands.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cantabria", + "slug": "cantabria", + "name": "Cantabria", + "continent": "europe", + "bounds": [ + -4.861622, + 42.75458, + -3.144983, + 43.86548 + ], + "asset": "occumed-cantabria.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cantabria.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cape-verde", + "slug": "cape-verde", + "name": "Cape Verde", + "continent": "africa", + "bounds": [ + -26.32379, + 14.00485, + -21.39096, + 18.005 + ], + "asset": "occumed-cape-verde.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cape-verde.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "castilla-la-mancha", + "slug": "castilla-la-mancha", + "name": "Castilla-La Mancha", + "continent": "europe", + "bounds": [ + -5.41111, + 38.0201, + -0.912552, + 41.33223 + ], + "asset": "occumed-castilla-la-mancha.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-castilla-la-mancha.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "castilla-y-leon", + "slug": "castilla-y-leon", + "name": "Castilla y León", + "continent": "europe", + "bounds": [ + -7.080517, + 40.08044, + -1.766053, + 43.24095 + ], + "asset": "occumed-castilla-y-leon.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-castilla-y-leon.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cataluna", + "slug": "cataluna", + "name": "Cataluña", + "continent": "europe", + "bounds": [ + 0.156383, + 40.21245, + 4.174794, + 42.8632 + ], + "asset": "occumed-cataluna.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cataluna.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "central-african-republic", + "slug": "central-african-republic", + "name": "Central African Republic", + "continent": "africa", + "bounds": [ + 14.40908, + 2.208735, + 27.47578, + 11.03264 + ], + "asset": "occumed-central-african-republic.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-central-african-republic.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "central-fed-district--r1-c1", + "slug": "central-fed-district--r1-c1", + "name": "Central Federal District 1.1", + "continent": "central-fed-district", + "bounds": [ + 30.69976, + 49.50446, + 39.184995, + 54.57888 + ], + "asset": "occumed-central-fed-district--r1-c1.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-central-fed-district--r1-c1.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "central-zone", + "slug": "central-zone", + "name": "Central Zone", + "continent": "asia", + "bounds": [ + 74.01489, + 17.77092, + 84.64657, + 31.49075 + ], + "asset": "occumed-central-zone.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-central-zone.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "centre", + "slug": "centre", + "name": "Centre", + "continent": "europe", + "bounds": [ + 0.051538, + 46.34591, + 3.129925, + 48.9423 + ], + "asset": "occumed-centre.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-centre.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "centro", + "slug": "centro", + "name": "Centro", + "continent": "europe", + "bounds": [ + 9.306459, + 40.21443, + 14.66855, + 44.4797 + ], + "asset": "occumed-centro.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-centro.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "centro-oeste", + "slug": "centro-oeste", + "name": "Centro-Oeste", + "continent": "south-america", + "bounds": [ + -61.66496, + -24.18381, + -45.87758, + -7.317334 + ], + "asset": "occumed-centro-oeste.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-centro-oeste.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ceuta", + "slug": "ceuta", + "name": "Ceuta", + "continent": "europe", + "bounds": [ + -5.391024, + 35.86702, + -5.256615, + 35.95869 + ], + "asset": "occumed-ceuta.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ceuta.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "chad", + "slug": "chad", + "name": "Chad", + "continent": "africa", + "bounds": [ + 13.40129, + 7.428518, + 24.02527, + 23.53793 + ], + "asset": "occumed-chad.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-chad.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "champagne-ardenne", + "slug": "champagne-ardenne", + "name": "Champagne Ardenne", + "continent": "europe", + "bounds": [ + 3.382419, + 47.57553, + 5.892182, + 50.17007 + ], + "asset": "occumed-champagne-ardenne.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-champagne-ardenne.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cheshire", + "slug": "cheshire", + "name": "Cheshire", + "continent": "europe", + "bounds": [ + -3.129775, + 52.94553, + -1.973135, + 53.48263 + ], + "asset": "occumed-cheshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cheshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "chile", + "slug": "chile", + "name": "Chile", + "continent": "south-america", + "bounds": [ + -113.2233, + -58.45195, + -65.5141, + -17.45743 + ], + "asset": "occumed-chile.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-chile.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "chongqing", + "slug": "chongqing", + "name": "Chongqing", + "continent": "asia", + "bounds": [ + 105.283, + 28.15132, + 110.2004, + 32.20641 + ], + "asset": "occumed-chongqing.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-chongqing.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "christmas-island", + "slug": "christmas-island", + "name": "Christmas Island", + "continent": "australia-oceania", + "bounds": [ + 105.2993, + -10.82656, + 105.9946, + -10.171 + ], + "asset": "occumed-christmas-island.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-christmas-island.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "chubu", + "slug": "chubu", + "name": "Chūbu region", + "continent": "asia", + "bounds": [ + 135.4393, + 34.26649, + 139.909, + 38.90717 + ], + "asset": "occumed-chubu.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-chubu.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "chugoku", + "slug": "chugoku", + "name": "Chūgoku region", + "continent": "asia", + "bounds": [ + 129.8975, + 33.54225, + 134.5244, + 36.9681 + ], + "asset": "occumed-chugoku.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-chugoku.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cocos-islands", + "slug": "cocos-islands", + "name": "Cocos (Keeling) Islands", + "continent": "australia-oceania", + "bounds": [ + 96.45345, + -12.5527, + 97.24842, + -11.54681 + ], + "asset": "occumed-cocos-islands.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cocos-islands.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "colombia", + "slug": "colombia", + "name": "Colombia", + "continent": "south-america", + "bounds": [ + -83.23104, + -4.25732, + -66.81472, + 16.41924 + ], + "asset": "occumed-colombia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-colombia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "comores", + "slug": "comores", + "name": "Comores", + "continent": "africa", + "bounds": [ + 42.74981, + -12.969, + 45.59661, + -10.74181 + ], + "asset": "occumed-comores.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-comores.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "congo-brazzaville", + "slug": "congo-brazzaville", + "name": "Congo (Republic/Brazzaville)", + "continent": "africa", + "bounds": [ + 10.94417, + -5.195885, + 18.66783, + 3.740932 + ], + "asset": "occumed-congo-brazzaville.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-congo-brazzaville.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "congo-democratic-republic", + "slug": "congo-democratic-republic", + "name": "Congo (Democratic Republic/Kinshasa)", + "continent": "africa", + "bounds": [ + 11.88343, + -13.5006, + 31.33569, + 5.401396 + ], + "asset": "occumed-congo-democratic-republic.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-congo-democratic-republic.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cook-islands", + "slug": "cook-islands", + "name": "Cook Islands", + "continent": "australia-oceania", + "bounds": [ + -168.4661, + -25.28867, + -154.8056, + -5.800506 + ], + "asset": "occumed-cook-islands.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cook-islands.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "coral-sea-islands", + "slug": "coral-sea-islands", + "name": "Coral Sea Islands", + "continent": "australia-oceania", + "bounds": [ + 146.8651, + -30.57831, + 160.4218, + -14.98146 + ], + "asset": "occumed-coral-sea-islands.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-coral-sea-islands.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cornwall", + "slug": "cornwall", + "name": "Cornwall", + "continent": "europe", + "bounds": [ + -6.820424, + 49.57808, + -4.146631, + 50.93213 + ], + "asset": "occumed-cornwall.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cornwall.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "corse", + "slug": "corse", + "name": "Corse", + "continent": "europe", + "bounds": [ + 8.317882, + 41.31103, + 9.751243, + 43.16589 + ], + "asset": "occumed-corse.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-corse.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "costa-rica", + "slug": "costa-rica", + "name": "Costa Rica", + "continent": "central-america", + "bounds": [ + -87.82473, + 4.937746, + -82.34952, + 11.2237 + ], + "asset": "occumed-costa-rica.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-costa-rica.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "crimean-fed-district", + "slug": "crimean-fed-district", + "name": "Crimean Federal District", + "continent": "crimean-fed-district", + "bounds": [ + 32.15053, + 44.13411, + 36.68355, + 46.28118 + ], + "asset": "occumed-crimean-fed-district.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-crimean-fed-district.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "croatia", + "slug": "croatia", + "name": "Croatia", + "continent": "europe", + "bounds": [ + 13.08916, + 42.16483, + 19.45997, + 46.55756 + ], + "asset": "occumed-croatia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-croatia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cuba", + "slug": "cuba", + "name": "Cuba", + "continent": "central-america", + "bounds": [ + -85.4242, + 19.2533, + -73.70831, + 23.60427 + ], + "asset": "occumed-cuba.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cuba.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cumbria", + "slug": "cumbria", + "name": "Cumbria", + "continent": "europe", + "bounds": [ + -3.907471, + 53.90063, + -2.159588, + 55.18863 + ], + "asset": "occumed-cumbria.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cumbria.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "cyprus", + "slug": "cyprus", + "name": "Cyprus", + "continent": "europe", + "bounds": [ + 31.95244, + 34.23374, + 34.96147, + 36.00323 + ], + "asset": "occumed-cyprus.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-cyprus.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "denmark", + "slug": "denmark", + "name": "Denmark", + "continent": "europe", + "bounds": [ + 7.7011, + 54.44065, + 15.65449, + 58.06239 + ], + "asset": "occumed-denmark.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-denmark.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "derbyshire", + "slug": "derbyshire", + "name": "Derbyshire", + "continent": "europe", + "bounds": [ + -2.035756, + 52.6955, + -1.164792, + 53.54172 + ], + "asset": "occumed-derbyshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-derbyshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "detmold-regbez", + "slug": "detmold-regbez", + "name": "Regierungsbezirk Detmold", + "continent": "europe", + "bounds": [ + 8.074053, + 51.4369, + 9.468311, + 52.53345 + ], + "asset": "occumed-detmold-regbez.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-detmold-regbez.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "devon", + "slug": "devon", + "name": "Devon", + "continent": "europe", + "bounds": [ + -4.752335, + 50.11104, + -2.881604, + 51.30895 + ], + "asset": "occumed-devon.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-devon.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "djibouti", + "slug": "djibouti", + "name": "Djibouti", + "continent": "africa", + "bounds": [ + 41.76177, + 10.88824, + 43.84569, + 12.82615 + ], + "asset": "occumed-djibouti.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-djibouti.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "dolnoslaskie", + "slug": "dolnoslaskie", + "name": "Województwo dolnośląskie
(Lower Silesian Voivodeship)", + "continent": "europe", + "bounds": [ + 14.80839, + 50.08251, + 17.80584, + 51.81417 + ], + "asset": "occumed-dolnoslaskie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-dolnoslaskie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "dorset", + "slug": "dorset", + "name": "Dorset", + "continent": "europe", + "bounds": [ + -2.962969, + 50.49829, + -1.680036, + 51.0827 + ], + "asset": "occumed-dorset.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-dorset.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "drenthe", + "slug": "drenthe", + "name": "Drenthe", + "continent": "europe", + "bounds": [ + 6.118592, + 52.61093, + 7.095411, + 53.20513 + ], + "asset": "occumed-drenthe.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-drenthe.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "duesseldorf-regbez", + "slug": "duesseldorf-regbez", + "name": "Regierungsbezirk Düsseldorf", + "continent": "europe", + "bounds": [ + 5.941466, + 51.01422, + 7.314306, + 51.90781 + ], + "asset": "occumed-duesseldorf-regbez.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-duesseldorf-regbez.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "durham", + "slug": "durham", + "name": "Durham", + "continent": "europe", + "bounds": [ + -2.356677, + 54.4502, + -1.101584, + 54.91986 + ], + "asset": "occumed-durham.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-durham.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "east-sussex", + "slug": "east-sussex", + "name": "East Sussex", + "continent": "europe", + "bounds": [ + -0.136786, + 50.69996, + 0.869466, + 51.14781 + ], + "asset": "occumed-east-sussex.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-east-sussex.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "east-timor", + "slug": "east-timor", + "name": "East Timor", + "continent": "asia", + "bounds": [ + 123.7912, + -9.690103, + 127.5911, + -8.057869 + ], + "asset": "occumed-east-timor.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-east-timor.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "east-yorkshire-with-hull", + "slug": "east-yorkshire-with-hull", + "name": "East Yorkshire with Hull", + "continent": "europe", + "bounds": [ + -1.105174, + 53.55447, + 0.48944, + 54.21045 + ], + "asset": "occumed-east-yorkshire-with-hull.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-east-yorkshire-with-hull.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "eastern-zone", + "slug": "eastern-zone", + "name": "Eastern Zone", + "continent": "asia", + "bounds": [ + 81.36749, + 17.78056, + 89.91829, + 27.52837 + ], + "asset": "occumed-eastern-zone.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-eastern-zone.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ecuador", + "slug": "ecuador", + "name": "Ecuador", + "continent": "south-america", + "bounds": [ + -93.56487, + -5.024173, + -75.16149, + 2.843487 + ], + "asset": "occumed-ecuador.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ecuador.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "egypt", + "slug": "egypt", + "name": "Egypt", + "continent": "africa", + "bounds": [ + 24.62628, + 21.9838, + 37.16263, + 32.52518 + ], + "asset": "occumed-egypt.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-egypt.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "el-salvador", + "slug": "el-salvador", + "name": "El Salvador", + "continent": "central-america", + "bounds": [ + -90.50091, + 12.03598, + -87.58438, + 14.45762 + ], + "asset": "occumed-el-salvador.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-el-salvador.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "equatorial-guinea", + "slug": "equatorial-guinea", + "name": "Equatorial Guinea", + "continent": "africa", + "bounds": [ + 5.165631, + -1.792669, + 11.42338, + 4.147134 + ], + "asset": "occumed-equatorial-guinea.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-equatorial-guinea.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "eritrea", + "slug": "eritrea", + "name": "Eritrea", + "continent": "africa", + "bounds": [ + 36.4207, + 12.34385, + 43.33233, + 18.32962 + ], + "asset": "occumed-eritrea.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-eritrea.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "essex", + "slug": "essex", + "name": "Essex", + "continent": "europe", + "bounds": [ + -0.019651, + 51.45008, + 1.307251, + 52.09464 + ], + "asset": "occumed-essex.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-essex.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "estonia", + "slug": "estonia", + "name": "Estonia", + "continent": "europe", + "bounds": [ + 20.85166, + 57.49764, + 28.21426, + 59.99705 + ], + "asset": "occumed-estonia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-estonia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ethiopia", + "slug": "ethiopia", + "name": "Ethiopia", + "continent": "africa", + "bounds": [ + 32.96722, + 3.389192, + 48.00545, + 14.91626 + ], + "asset": "occumed-ethiopia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ethiopia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "extremadura", + "slug": "extremadura", + "name": "Extremadura", + "continent": "europe", + "bounds": [ + -7.54369, + 37.93851, + -4.64241, + 40.48913 + ], + "asset": "occumed-extremadura.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-extremadura.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "falklands", + "slug": "falklands", + "name": "Falkland Islands", + "continent": "europe", + "bounds": [ + -62.20142, + -53.40604, + -56.44453, + -50.67405 + ], + "asset": "occumed-falklands.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-falklands.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "faroe-islands", + "slug": "faroe-islands", + "name": "Faroe Islands", + "continent": "europe", + "bounds": [ + -8.690197, + 60.86632, + -5.515148, + 62.90523 + ], + "asset": "occumed-faroe-islands.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-faroe-islands.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "fiji", + "slug": "fiji", + "name": "Fiji", + "continent": "australia-oceania", + "bounds": [ + 172.7647, + -25.08127, + -176.2675, + -9.783321 + ], + "asset": "occumed-fiji.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-fiji.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "flevoland", + "slug": "flevoland", + "name": "Flevoland", + "continent": "europe", + "bounds": [ + 5.059593, + 52.24826, + 6.018276, + 52.84516 + ], + "asset": "occumed-flevoland.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-flevoland.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "franche-comte", + "slug": "franche-comte", + "name": "Franche Comte", + "continent": "europe", + "bounds": [ + 5.25076, + 46.25975, + 7.14439, + 48.02537 + ], + "asset": "occumed-franche-comte.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-franche-comte.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "freiburg-regbez", + "slug": "freiburg-regbez", + "name": "Regierungsbezirk Freiburg", + "continent": "europe", + "bounds": [ + 7.506494, + 47.53076, + 9.246965, + 48.72373 + ], + "asset": "occumed-freiburg-regbez.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-freiburg-regbez.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "friesland", + "slug": "friesland", + "name": "Friesland", + "continent": "europe", + "bounds": [ + 4.597294, + 52.76362, + 6.428358, + 53.68089 + ], + "asset": "occumed-friesland.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-friesland.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "fujian", + "slug": "fujian", + "name": "Fujian", + "continent": "asia", + "bounds": [ + 115.8409, + 23.18252, + 121.6277, + 28.32237 + ], + "asset": "occumed-fujian.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-fujian.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "gabon", + "slug": "gabon", + "name": "Gabon", + "continent": "africa", + "bounds": [ + 7.389727, + -5.995799, + 14.55139, + 2.325716 + ], + "asset": "occumed-gabon.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-gabon.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "galicia", + "slug": "galicia", + "name": "Galicia", + "continent": "europe", + "bounds": [ + -9.779014, + 41.80443, + -6.727066, + 44.14855 + ], + "asset": "occumed-galicia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-galicia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "gansu", + "slug": "gansu", + "name": "Gansu", + "continent": "asia", + "bounds": [ + 92.29907, + 32.58438, + 108.7193, + 42.81354 + ], + "asset": "occumed-gansu.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-gansu.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "gcc-states", + "slug": "gcc-states", + "name": "GCC States", + "continent": "asia", + "bounds": [ + 34.43489, + 15.24752, + 60.94748, + 32.19653 + ], + "asset": "occumed-gcc-states.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-gcc-states.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "gelderland", + "slug": "gelderland", + "name": "Gelderland", + "continent": "europe", + "bounds": [ + 4.992647, + 51.73231, + 6.835752, + 52.52322 + ], + "asset": "occumed-gelderland.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-gelderland.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "georgia", + "slug": "georgia", + "name": "Georgia", + "continent": "europe", + "bounds": [ + 39.88093, + 41.05117, + 46.73959, + 43.5899 + ], + "asset": "occumed-georgia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-georgia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ghana", + "slug": "ghana", + "name": "Ghana", + "continent": "africa", + "bounds": [ + -3.807399, + 3.704056, + 1.394038, + 11.17772 + ], + "asset": "occumed-ghana.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ghana.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "gloucestershire", + "slug": "gloucestershire", + "name": "Gloucestershire", + "continent": "europe", + "bounds": [ + -2.711909, + 51.41465, + -1.612605, + 52.11556 + ], + "asset": "occumed-gloucestershire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-gloucestershire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "greater-manchester", + "slug": "greater-manchester", + "name": "Greater Manchester", + "continent": "europe", + "bounds": [ + -2.732097, + 53.32613, + -1.90804, + 53.68742 + ], + "asset": "occumed-greater-manchester.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-greater-manchester.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "greece", + "slug": "greece", + "name": "Greece", + "continent": "europe", + "bounds": [ + 18.97064, + 34.59111, + 29.65683, + 41.74954 + ], + "asset": "occumed-greece.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-greece.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "greenland", + "slug": "greenland", + "name": "Greenland", + "continent": "north-america", + "bounds": [ + -75.3894, + 58.67169, + -9.454384, + 84.44358 + ], + "asset": "occumed-greenland.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-greenland.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "groningen", + "slug": "groningen", + "name": "Groningen", + "continent": "europe", + "bounds": [ + 6.166463, + 52.83734, + 7.230455, + 53.65732 + ], + "asset": "occumed-groningen.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-groningen.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guadeloupe", + "slug": "guadeloupe", + "name": "Guadeloupe", + "continent": "europe", + "bounds": [ + -62.15241, + 15.49074, + -60.60471, + 16.82426 + ], + "asset": "occumed-guadeloupe.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guadeloupe.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guangdong", + "slug": "guangdong", + "name": "Guangdong (with Hong Kong and Macau)", + "continent": "asia", + "bounds": [ + 109.3565, + 20.05851, + 117.665, + 25.52432 + ], + "asset": "occumed-guangdong.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guangdong.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guangxi", + "slug": "guangxi", + "name": "Guangxi", + "continent": "asia", + "bounds": [ + 104.4419, + 20.74224, + 112.0654, + 26.39648 + ], + "asset": "occumed-guangxi.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guangxi.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guatemala", + "slug": "guatemala", + "name": "Guatemala", + "continent": "central-america", + "bounds": [ + -92.73303, + 12.74168, + -87.95177, + 17.83533 + ], + "asset": "occumed-guatemala.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guatemala.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guernsey-jersey", + "slug": "guernsey-jersey", + "name": "Guernsey and Jersey", + "continent": "europe", + "bounds": [ + -3.573306, + 49.00381, + -1.791572, + 50.06948 + ], + "asset": "occumed-guernsey-jersey.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guernsey-jersey.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guinea", + "slug": "guinea", + "name": "Guinea", + "continent": "africa", + "bounds": [ + -16.85708, + 7.183332, + -7.627259, + 12.68322 + ], + "asset": "occumed-guinea.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guinea.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guinea-bissau", + "slug": "guinea-bissau", + "name": "Guinea-Bissau", + "continent": "africa", + "bounds": [ + -16.96427, + 10.14494, + -13.62923, + 12.6936 + ], + "asset": "occumed-guinea-bissau.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guinea-bissau.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guizhou", + "slug": "guizhou", + "name": "Guizhou", + "continent": "asia", + "bounds": [ + 103.5982, + 24.61706, + 109.5594, + 29.23204 + ], + "asset": "occumed-guizhou.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guizhou.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guyana", + "slug": "guyana", + "name": "Guyana", + "continent": "south-america", + "bounds": [ + -61.42101, + 1.149369, + -56.42321, + 9.182536 + ], + "asset": "occumed-guyana.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guyana.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "guyane", + "slug": "guyane", + "name": "Guyane", + "continent": "europe", + "bounds": [ + -54.62299, + 2.093117, + -50.8667, + 6.370288 + ], + "asset": "occumed-guyane.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-guyane.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hainan", + "slug": "hainan", + "name": "Hainan", + "continent": "asia", + "bounds": [ + 108.3153, + 14.29739, + 118.4373, + 20.40385 + ], + "asset": "occumed-hainan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hainan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "haiti-and-domrep", + "slug": "haiti-and-domrep", + "name": "Haiti and Dominican Republic", + "continent": "central-america", + "bounds": [ + -74.82529, + 16.99901, + -68.05482, + 21.45307 + ], + "asset": "occumed-haiti-and-domrep.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-haiti-and-domrep.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hamburg", + "slug": "hamburg", + "name": "Hamburg", + "continent": "europe", + "bounds": [ + 7.967833, + 53.39183, + 10.33196, + 54.06261 + ], + "asset": "occumed-hamburg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hamburg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hampshire", + "slug": "hampshire", + "name": "Hampshire", + "continent": "europe", + "bounds": [ + -1.959101, + 50.69041, + -0.726306, + 51.38712 + ], + "asset": "occumed-hampshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hampshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "haute-normandie", + "slug": "haute-normandie", + "name": "Haute-Normandie", + "continent": "europe", + "bounds": [ + 0.009482, + 48.66574, + 1.803956, + 50.08769 + ], + "asset": "occumed-haute-normandie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-haute-normandie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "heard-mcdonald", + "slug": "heard-mcdonald", + "name": "Heard Island and McDonald Islands", + "continent": "australia-oceania", + "bounds": [ + 71.99912, + -53.54549, + 74.45294, + -52.66308 + ], + "asset": "occumed-heard-mcdonald.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-heard-mcdonald.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hebei", + "slug": "hebei", + "name": "Hebei (with Beijing and Tianjin)", + "continent": "asia", + "bounds": [ + 113.451, + 36.04299, + 119.9982, + 42.62487 + ], + "asset": "occumed-hebei.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hebei.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "heilongjiang", + "slug": "heilongjiang", + "name": "Heilongjiang", + "continent": "asia", + "bounds": [ + 121.15, + 43.41078, + 134.8036, + 53.65559 + ], + "asset": "occumed-heilongjiang.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-heilongjiang.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "henan", + "slug": "henan", + "name": "Henan", + "continent": "asia", + "bounds": [ + 110.3458, + 31.37805, + 116.647, + 36.36801 + ], + "asset": "occumed-henan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-henan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "herefordshire", + "slug": "herefordshire", + "name": "Herefordshire", + "continent": "europe", + "bounds": [ + -3.142889, + 51.82618, + -2.338434, + 52.39531 + ], + "asset": "occumed-herefordshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-herefordshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hertfordshire", + "slug": "hertfordshire", + "name": "Hertfordshire", + "continent": "europe", + "bounds": [ + -0.746833, + 51.59798, + 0.197098, + 52.08224 + ], + "asset": "occumed-hertfordshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hertfordshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hessen", + "slug": "hessen", + "name": "Hessen", + "continent": "europe", + "bounds": [ + 7.768021, + 49.39321, + 10.24595, + 51.65916 + ], + "asset": "occumed-hessen.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hessen.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hokkaido", + "slug": "hokkaido", + "name": "Hokkaidō", + "continent": "asia", + "bounds": [ + 137.9346, + 41.15098, + 146.2476, + 45.8154 + ], + "asset": "occumed-hokkaido.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hokkaido.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "honduras", + "slug": "honduras", + "name": "Honduras", + "continent": "central-america", + "bounds": [ + -89.36005, + 12.96943, + -81.66138, + 17.93171 + ], + "asset": "occumed-honduras.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-honduras.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hong-kong", + "slug": "hong-kong", + "name": "Hong Kong", + "continent": "asia", + "bounds": [ + 113.813, + 22.13041, + 114.506, + 22.56904 + ], + "asset": "occumed-hong-kong.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hong-kong.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hubei", + "slug": "hubei", + "name": "Hubei", + "continent": "asia", + "bounds": [ + 108.3597, + 29.03006, + 116.1361, + 33.27343 + ], + "asset": "occumed-hubei.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hubei.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hunan", + "slug": "hunan", + "name": "Hunan", + "continent": "asia", + "bounds": [ + 108.7792, + 24.63266, + 114.2585, + 30.138 + ], + "asset": "occumed-hunan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hunan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "hungary", + "slug": "hungary", + "name": "Hungary", + "continent": "europe", + "bounds": [ + 16.10845, + 45.73207, + 22.90649, + 48.58921 + ], + "asset": "occumed-hungary.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-hungary.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ile-de-clipperton", + "slug": "ile-de-clipperton", + "name": "Île de Clipperton", + "continent": "australia-oceania", + "bounds": [ + -110.1215, + 9.595339, + -108.3746, + 11.15685 + ], + "asset": "occumed-ile-de-clipperton.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ile-de-clipperton.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ile-de-france", + "slug": "ile-de-france", + "name": "Ile-de-France", + "continent": "europe", + "bounds": [ + 1.445097, + 48.11918, + 3.560409, + 49.24271 + ], + "asset": "occumed-ile-de-france.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ile-de-france.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "inner-mongolia", + "slug": "inner-mongolia", + "name": "Inner Mongolia", + "continent": "asia", + "bounds": [ + 97.14328, + 37.39962, + 126.0767, + 53.44515 + ], + "asset": "occumed-inner-mongolia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-inner-mongolia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "interior-admreg", + "slug": "interior-admreg", + "name": "Interior Administrative Region", + "continent": "north-america", + "bounds": [ + -128.8637, + 49.60359, + -118.7691, + 53.55744 + ], + "asset": "occumed-interior-admreg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-interior-admreg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "iran", + "slug": "iran", + "name": "Iran", + "continent": "asia", + "bounds": [ + 44.02303, + 24.03947, + 63.35413, + 39.79045 + ], + "asset": "occumed-iran.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-iran.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "iraq", + "slug": "iraq", + "name": "Iraq", + "continent": "asia", + "bounds": [ + 38.784, + 29.01775, + 49.55108, + 37.39063 + ], + "asset": "occumed-iraq.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-iraq.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ireland-and-northern-ireland", + "slug": "ireland-and-northern-ireland", + "name": "Ireland and Northern Ireland", + "continent": "europe", + "bounds": [ + -14.40224, + 49.60002, + -5.059265, + 56.86553 + ], + "asset": "occumed-ireland-and-northern-ireland.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ireland-and-northern-ireland.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "island-admreg", + "slug": "island-admreg", + "name": "Island Administrative Region", + "continent": "north-america", + "bounds": [ + -129.3393, + 48.12648, + -122.9789, + 52.05756 + ], + "asset": "occumed-island-admreg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-island-admreg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "islas-baleares", + "slug": "islas-baleares", + "name": "Islas Baleares", + "continent": "europe", + "bounds": [ + 0.615229, + 38.05675, + 4.938349, + 40.7098 + ], + "asset": "occumed-islas-baleares.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-islas-baleares.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "isle-of-man", + "slug": "isle-of-man", + "name": "Isle of Man", + "continent": "europe", + "bounds": [ + -5.434554, + 53.73236, + -3.688718, + 54.6706 + ], + "asset": "occumed-isle-of-man.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-isle-of-man.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "isle-of-wight", + "slug": "isle-of-wight", + "name": "Isle of Wight", + "continent": "europe", + "bounds": [ + -1.659074, + 50.50555, + -1.03137, + 50.80102 + ], + "asset": "occumed-isle-of-wight.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-isle-of-wight.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "isole", + "slug": "isole", + "name": "Isole", + "continent": "europe", + "bounds": [ + 7.718453, + 35.07638, + 15.70887, + 41.51893 + ], + "asset": "occumed-isole.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-isole.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "israel-and-palestine", + "slug": "israel-and-palestine", + "name": "Israel and Palestine", + "continent": "asia", + "bounds": [ + 33.99994, + 29.4396, + 35.91531, + 33.45436 + ], + "asset": "occumed-israel-and-palestine.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-israel-and-palestine.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ivory-coast", + "slug": "ivory-coast", + "name": "Ivory Coast", + "continent": "africa", + "bounds": [ + -8.633881, + 4.141916, + -2.476215, + 10.75034 + ], + "asset": "occumed-ivory-coast.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ivory-coast.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "jamaica", + "slug": "jamaica", + "name": "Jamaica", + "continent": "central-america", + "bounds": [ + -78.85, + 16.35, + -75.51, + 19.16 + ], + "asset": "occumed-jamaica.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-jamaica.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "jiangsu", + "slug": "jiangsu", + "name": "Jiangsu", + "continent": "asia", + "bounds": [ + 116.3538, + 30.75899, + 122.9453, + 35.55507 + ], + "asset": "occumed-jiangsu.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-jiangsu.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "jiangxi", + "slug": "jiangxi", + "name": "Jiangxi", + "continent": "asia", + "bounds": [ + 113.5688, + 24.47809, + 118.4865, + 30.08841 + ], + "asset": "occumed-jiangxi.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-jiangxi.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "jihocesky", + "slug": "jihocesky", + "name": "Jihočeský kraj", + "continent": "europe", + "bounds": [ + 13.53386, + 48.54292, + 15.60644, + 49.62122 + ], + "asset": "occumed-jihocesky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-jihocesky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "jihomoravsky", + "slug": "jihomoravsky", + "name": "Jihomoravský kraj", + "continent": "europe", + "bounds": [ + 15.54023, + 48.61008, + 17.64952, + 49.63471 + ], + "asset": "occumed-jihomoravsky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-jihomoravsky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "jilin", + "slug": "jilin", + "name": "Jilin", + "continent": "asia", + "bounds": [ + 121.6276, + 40.78952, + 131.3514, + 46.31469 + ], + "asset": "occumed-jilin.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-jilin.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "jordan", + "slug": "jordan", + "name": "Jordan", + "continent": "asia", + "bounds": [ + 34.86886, + 29.18213, + 39.31022, + 33.37922 + ], + "asset": "occumed-jordan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-jordan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kalimantan", + "slug": "kalimantan", + "name": "Kalimantan", + "continent": "asia", + "bounds": [ + 104.9606, + -5.59958, + 119.9267, + 4.404166 + ], + "asset": "occumed-kalimantan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kalimantan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kaliningrad", + "slug": "kaliningrad", + "name": "Kaliningrad", + "continent": "kaliningrad", + "bounds": [ + 19.40837, + 54.31723, + 22.88747, + 55.3899 + ], + "asset": "occumed-kaliningrad.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kaliningrad.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kansai", + "slug": "kansai", + "name": "Kansai region (a.k.a. Kinki region)", + "continent": "asia", + "bounds": [ + 133.9644, + 33.07898, + 137.6573, + 36.4582 + ], + "asset": "occumed-kansai.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kansai.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kanto", + "slug": "kanto", + "name": "Kantō region", + "continent": "asia", + "bounds": [ + 134.5757, + 20.08228, + 154.4709, + 37.15988 + ], + "asset": "occumed-kanto.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kanto.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "karlovarsky", + "slug": "karlovarsky", + "name": "Karlovarský kraj", + "continent": "europe", + "bounds": [ + 12.08477, + 49.88988, + 13.30247, + 50.47322 + ], + "asset": "occumed-karlovarsky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-karlovarsky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "karlsruhe-regbez", + "slug": "karlsruhe-regbez", + "name": "Regierungsbezirk Karlsruhe", + "continent": "europe", + "bounds": [ + 7.949946, + 48.29792, + 9.605534, + 49.736 + ], + "asset": "occumed-karlsruhe-regbez.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-karlsruhe-regbez.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kazakhstan", + "slug": "kazakhstan", + "name": "Kazakhstan", + "continent": "asia", + "bounds": [ + 46.42304, + 40.55346, + 87.35359, + 55.50799 + ], + "asset": "occumed-kazakhstan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kazakhstan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kent", + "slug": "kent", + "name": "Kent", + "continent": "europe", + "bounds": [ + 0.030546, + 50.81013, + 1.521262, + 51.49664 + ], + "asset": "occumed-kent.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kent.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kenya", + "slug": "kenya", + "name": "Kenya", + "continent": "africa", + "bounds": [ + 33.8679, + -4.816276, + 41.97685, + 4.629931 + ], + "asset": "occumed-kenya.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kenya.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kiribati", + "slug": "kiribati", + "name": "Kiribati", + "continent": "australia-oceania", + "bounds": [ + 167.8684, + -13.83833, + -147.0336, + 6.472283 + ], + "asset": "occumed-kiribati.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kiribati.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kitikmeot", + "slug": "kitikmeot", + "name": "Kitikmeot Region", + "continent": "north-america", + "bounds": [ + -120.737, + 64.51803, + -88.98445, + 73.93962 + ], + "asset": "occumed-kitikmeot.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kitikmeot.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kivalliq", + "slug": "kivalliq", + "name": "Kivalliq Region", + "continent": "north-america", + "bounds": [ + -105.0092, + 56.95134, + -80.01994, + 67.00034 + ], + "asset": "occumed-kivalliq.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kivalliq.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "koeln-regbez", + "slug": "koeln-regbez", + "name": "Regierungsbezirk Köln", + "continent": "europe", + "bounds": [ + 5.864417, + 50.32088, + 7.794411, + 51.253 + ], + "asset": "occumed-koeln-regbez.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-koeln-regbez.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kootenay-admreg", + "slug": "kootenay-admreg", + "name": "Kootenay Administrative Region", + "continent": "north-america", + "bounds": [ + -119.3857, + 48.99463, + -114.049, + 51.85325 + ], + "asset": "occumed-kootenay-admreg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kootenay-admreg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kosovo", + "slug": "kosovo", + "name": "Kosovo", + "continent": "europe", + "bounds": [ + 20.01357, + 41.85408, + 21.79327, + 43.27753 + ], + "asset": "occumed-kosovo.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kosovo.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kralovehradecky", + "slug": "kralovehradecky", + "name": "Královéhradecký kraj", + "continent": "europe", + "bounds": [ + 15.10268, + 50.03735, + 16.59925, + 50.78739 + ], + "asset": "occumed-kralovehradecky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kralovehradecky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kujawsko-pomorskie", + "slug": "kujawsko-pomorskie", + "name": "Województwo kujawsko-pomorskie
(Kuyavian-Pomeranian Voivodeship)", + "continent": "europe", + "bounds": [ + 17.23935, + 52.32112, + 19.77239, + 53.7917 + ], + "asset": "occumed-kujawsko-pomorskie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kujawsko-pomorskie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kyrgyzstan", + "slug": "kyrgyzstan", + "name": "Kyrgyzstan", + "continent": "asia", + "bounds": [ + 69.25507, + 39.15136, + 80.2771, + 43.2812 + ], + "asset": "occumed-kyrgyzstan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kyrgyzstan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "kyushu", + "slug": "kyushu", + "name": "Kyūshū", + "continent": "asia", + "bounds": [ + 122.5814, + 21.38691, + 132.8044, + 35.09724 + ], + "asset": "occumed-kyushu.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-kyushu.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "la-rioja", + "slug": "la-rioja", + "name": "La Rioja", + "continent": "europe", + "bounds": [ + -3.140202, + 41.91403, + -1.673012, + 42.64621 + ], + "asset": "occumed-la-rioja.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-la-rioja.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lancashire", + "slug": "lancashire", + "name": "Lancashire", + "continent": "europe", + "bounds": [ + -3.092156, + 53.47507, + -2.0395, + 54.24645 + ], + "asset": "occumed-lancashire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lancashire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "languedoc-roussillon", + "slug": "languedoc-roussillon", + "name": "Languedoc-Roussillon", + "continent": "europe", + "bounds": [ + 1.686256, + 42.32755, + 4.847979, + 44.97821 + ], + "asset": "occumed-languedoc-roussillon.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-languedoc-roussillon.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "laos", + "slug": "laos", + "name": "Laos", + "continent": "asia", + "bounds": [ + 100.0828, + 13.90159, + 107.6503, + 22.52825 + ], + "asset": "occumed-laos.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-laos.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "latvia", + "slug": "latvia", + "name": "Latvia", + "continent": "europe", + "bounds": [ + 19.73348, + 55.66109, + 28.25501, + 58.0947 + ], + "asset": "occumed-latvia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-latvia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lebanon", + "slug": "lebanon", + "name": "Lebanon", + "continent": "asia", + "bounds": [ + 34.76799, + 33.05299, + 36.63666, + 34.80253 + ], + "asset": "occumed-lebanon.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lebanon.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "leicestershire", + "slug": "leicestershire", + "name": "Leicestershire", + "continent": "europe", + "bounds": [ + -1.596388, + 52.3936, + -0.663929, + 52.9776 + ], + "asset": "occumed-leicestershire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-leicestershire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lesotho", + "slug": "lesotho", + "name": "Lesotho", + "continent": "africa", + "bounds": [ + 27.0092, + -30.68472, + 29.46393, + -28.56734 + ], + "asset": "occumed-lesotho.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lesotho.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "liaoning", + "slug": "liaoning", + "name": "Liaoning", + "continent": "asia", + "bounds": [ + 118.8305, + 38.26191, + 125.7959, + 43.49303 + ], + "asset": "occumed-liaoning.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-liaoning.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "liberecky", + "slug": "liberecky", + "name": "Liberecký kraj", + "continent": "europe", + "bounds": [ + 14.34201, + 50.47113, + 15.63443, + 51.03171 + ], + "asset": "occumed-liberecky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-liberecky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "liberia", + "slug": "liberia", + "name": "Liberia", + "continent": "africa", + "bounds": [ + -14.95454, + -0.681003, + -7.24572, + 8.570158 + ], + "asset": "occumed-liberia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-liberia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "libya", + "slug": "libya", + "name": "Libya", + "continent": "africa", + "bounds": [ + 9.374405, + 19.45087, + 25.40726, + 33.57972 + ], + "asset": "occumed-libya.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-libya.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "liechtenstein", + "slug": "liechtenstein", + "name": "Liechtenstein", + "continent": "europe", + "bounds": [ + 9.471078, + 47.04774, + 9.636217, + 47.27128 + ], + "asset": "occumed-liechtenstein.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-liechtenstein.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "limburg", + "slug": "limburg", + "name": "Limburg", + "continent": "europe", + "bounds": [ + 5.563304, + 50.74753, + 6.22939, + 51.77992 + ], + "asset": "occumed-limburg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-limburg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "limousin", + "slug": "limousin", + "name": "Limousin", + "continent": "europe", + "bounds": [ + 0.627097, + 44.91842, + 2.61384, + 46.45781 + ], + "asset": "occumed-limousin.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-limousin.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lincolnshire", + "slug": "lincolnshire", + "name": "Lincolnshire", + "continent": "europe", + "bounds": [ + -0.950922, + 52.63954, + 0.494382, + 53.73003 + ], + "asset": "occumed-lincolnshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lincolnshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lithuania", + "slug": "lithuania", + "name": "Lithuania", + "continent": "europe", + "bounds": [ + 20.61859, + 53.89221, + 26.83873, + 56.45329 + ], + "asset": "occumed-lithuania.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lithuania.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lodzkie", + "slug": "lodzkie", + "name": "Województwo łódzkie
(Łódź Voivodeship)", + "continent": "europe", + "bounds": [ + 18.06227, + 50.83091, + 20.6691, + 52.40624 + ], + "asset": "occumed-lodzkie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lodzkie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lorraine", + "slug": "lorraine", + "name": "Lorraine", + "continent": "europe", + "bounds": [ + 4.886022, + 47.81188, + 7.640105, + 49.61946 + ], + "asset": "occumed-lorraine.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lorraine.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lubelskie", + "slug": "lubelskie", + "name": "Województwo lubelskie
(Lublin Voivodeship)", + "continent": "europe", + "bounds": [ + 21.60285, + 50.23654, + 24.16102, + 52.30035 + ], + "asset": "occumed-lubelskie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lubelskie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "lubuskie", + "slug": "lubuskie", + "name": "Województwo lubuskie
(Lubusz Voivodeship)", + "continent": "europe", + "bounds": [ + 14.49548, + 51.34865, + 16.42999, + 53.12806 + ], + "asset": "occumed-lubuskie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-lubuskie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "luxembourg", + "slug": "luxembourg", + "name": "Luxembourg", + "continent": "europe", + "bounds": [ + 5.733033, + 49.44553, + 6.532249, + 50.18496 + ], + "asset": "occumed-luxembourg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-luxembourg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "macau", + "slug": "macau", + "name": "Macau", + "continent": "asia", + "bounds": [ + 113.5272, + 22.07546, + 113.6325, + 22.21708 + ], + "asset": "occumed-macau.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-macau.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "macedonia", + "slug": "macedonia", + "name": "Macedonia", + "continent": "europe", + "bounds": [ + 20.44671, + 40.84759, + 23.04012, + 42.37969 + ], + "asset": "occumed-macedonia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-macedonia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "madagascar", + "slug": "madagascar", + "name": "Madagascar", + "continent": "africa", + "bounds": [ + 42.30124, + -26.5823, + 51.14843, + -11.02746 + ], + "asset": "occumed-madagascar.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-madagascar.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "madrid", + "slug": "madrid", + "name": "Madrid", + "continent": "europe", + "bounds": [ + -4.589539, + 39.88116, + -3.050423, + 41.16864 + ], + "asset": "occumed-madrid.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-madrid.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "malawi", + "slug": "malawi", + "name": "Malawi", + "continent": "africa", + "bounds": [ + 32.66441, + -17.13324, + 35.92941, + -9.362691 + ], + "asset": "occumed-malawi.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-malawi.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "malaysia-singapore-brunei", + "slug": "malaysia-singapore-brunei", + "name": "Malaysia, Singapore, and Brunei", + "continent": "asia", + "bounds": [ + 99.25611, + 0.830813, + 119.6683, + 7.736849 + ], + "asset": "occumed-malaysia-singapore-brunei.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-malaysia-singapore-brunei.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "maldives", + "slug": "maldives", + "name": "Maldives", + "continent": "asia", + "bounds": [ + 71.7, + -1.36, + 74.5, + 7.69 + ], + "asset": "occumed-maldives.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-maldives.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mali", + "slug": "mali", + "name": "Mali", + "continent": "africa", + "bounds": [ + -12.24701, + 10.1176, + 4.330257, + 25.09499 + ], + "asset": "occumed-mali.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mali.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "malopolskie", + "slug": "malopolskie", + "name": "Województwo małopolskie
(Lesser Poland Voivodeship)", + "continent": "europe", + "bounds": [ + 19.07492, + 49.16487, + 21.43328, + 50.53221 + ], + "asset": "occumed-malopolskie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-malopolskie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "malta", + "slug": "malta", + "name": "Malta", + "continent": "europe", + "bounds": [ + 14, + 35.51985, + 14.8561, + 36.33296 + ], + "asset": "occumed-malta.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-malta.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "maluku", + "slug": "maluku", + "name": "Maluku", + "continent": "asia", + "bounds": [ + 123.8928, + -9.524903, + 135.412, + 3.727232 + ], + "asset": "occumed-maluku.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-maluku.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "manitoba", + "slug": "manitoba", + "name": "Manitoba", + "continent": "north-america", + "bounds": [ + -102.014, + 48.99056, + -88.12183, + 60.00845 + ], + "asset": "occumed-manitoba.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-manitoba.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "marshall-islands", + "slug": "marshall-islands", + "name": "Marshall Islands", + "continent": "australia-oceania", + "bounds": [ + 156.8453, + 1.777314, + 175.5118, + 17.94606 + ], + "asset": "occumed-marshall-islands.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-marshall-islands.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "martinique", + "slug": "martinique", + "name": "Martinique", + "continent": "europe", + "bounds": [ + -61.63056, + 14.13392, + -60.42755, + 15.15167 + ], + "asset": "occumed-martinique.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-martinique.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mauritania", + "slug": "mauritania", + "name": "Mauritania", + "continent": "africa", + "bounds": [ + -17.35016, + 14.71578, + -4.816056, + 27.33613 + ], + "asset": "occumed-mauritania.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mauritania.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mauritius", + "slug": "mauritius", + "name": "Mauritius", + "continent": "africa", + "bounds": [ + 53.54727, + -22.2411, + 64.66991, + -9.183617 + ], + "asset": "occumed-mauritius.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mauritius.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mayotte", + "slug": "mayotte", + "name": "Mayotte", + "continent": "europe", + "bounds": [ + 44.62646, + -13.47243, + 45.6784, + -12.14406 + ], + "asset": "occumed-mayotte.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mayotte.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mazowieckie", + "slug": "mazowieckie", + "name": "Województwo mazowieckie
(Mazovian Voivodeship)", + "continent": "europe", + "bounds": [ + 19.23355, + 50.98451, + 23.15637, + 53.5116 + ], + "asset": "occumed-mazowieckie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mazowieckie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mecklenburg-vorpommern", + "slug": "mecklenburg-vorpommern", + "name": "Mecklenburg-Vorpommern", + "continent": "europe", + "bounds": [ + 10.58807, + 53.10619, + 14.42292, + 54.9837 + ], + "asset": "occumed-mecklenburg-vorpommern.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mecklenburg-vorpommern.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "melilla", + "slug": "melilla", + "name": "Melilla", + "continent": "europe", + "bounds": [ + -2.972424, + 35.26393, + -2.908201, + 35.32393 + ], + "asset": "occumed-melilla.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-melilla.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "merseyside", + "slug": "merseyside", + "name": "Merseyside", + "continent": "europe", + "bounds": [ + -3.342781, + 53.2854, + -2.575686, + 53.70528 + ], + "asset": "occumed-merseyside.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-merseyside.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "micronesia", + "slug": "micronesia", + "name": "Micronesia", + "continent": "australia-oceania", + "bounds": [ + 135.3124, + -1.147444, + 165.6345, + 13.21917 + ], + "asset": "occumed-micronesia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-micronesia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "midi-pyrenees", + "slug": "midi-pyrenees", + "name": "Midi-Pyrenees", + "continent": "europe", + "bounds": [ + -0.327537, + 42.56793, + 3.453264, + 45.04779 + ], + "asset": "occumed-midi-pyrenees.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-midi-pyrenees.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mittelfranken", + "slug": "mittelfranken", + "name": "Mittelfranken", + "continent": "europe", + "bounds": [ + 10.06565, + 48.85325, + 11.60553, + 49.79103 + ], + "asset": "occumed-mittelfranken.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mittelfranken.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "moldova", + "slug": "moldova", + "name": "Moldova", + "continent": "europe", + "bounds": [ + 26.61232, + 45.46164, + 30.19249, + 48.49397 + ], + "asset": "occumed-moldova.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-moldova.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "monaco", + "slug": "monaco", + "name": "Monaco", + "continent": "europe", + "bounds": [ + 7.408583, + 43.48382, + 7.595671, + 43.75293 + ], + "asset": "occumed-monaco.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-monaco.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mongolia", + "slug": "mongolia", + "name": "Mongolia", + "continent": "asia", + "bounds": [ + 87.70255, + 41.50035, + 120.0201, + 52.19582 + ], + "asset": "occumed-mongolia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mongolia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "montenegro", + "slug": "montenegro", + "name": "Montenegro", + "continent": "europe", + "bounds": [ + 18.17282, + 41.61621, + 20.35883, + 43.56217 + ], + "asset": "occumed-montenegro.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-montenegro.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "moravskoslezky", + "slug": "moravskoslezky", + "name": "Moravskoslezský kraj", + "continent": "europe", + "bounds": [ + 17.14468, + 49.37126, + 18.86321, + 50.3303 + ], + "asset": "occumed-moravskoslezky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-moravskoslezky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "morocco", + "slug": "morocco", + "name": "Morocco", + "continent": "africa", + "bounds": [ + -18.1835, + 20.40373, + -0.993576, + 36.06077 + ], + "asset": "occumed-morocco.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-morocco.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "mozambique", + "slug": "mozambique", + "name": "Mozambique", + "continent": "africa", + "bounds": [ + 30.20742, + -26.93837, + 42.53489, + -9.986206 + ], + "asset": "occumed-mozambique.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-mozambique.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "muenster-regbez", + "slug": "muenster-regbez", + "name": "Regierungsbezirk Münster", + "continent": "europe", + "bounds": [ + 6.38588, + 51.47971, + 8.321177, + 52.47682 + ], + "asset": "occumed-muenster-regbez.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-muenster-regbez.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "murcia", + "slug": "murcia", + "name": "Murcia", + "continent": "europe", + "bounds": [ + -2.351246, + 37.11215, + -0.247194, + 38.76024 + ], + "asset": "occumed-murcia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-murcia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "namibia", + "slug": "namibia", + "name": "Namibia", + "continent": "africa", + "bounds": [ + 9.784615, + -30.20686, + 25.26589, + -16.91682 + ], + "asset": "occumed-namibia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-namibia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nauru", + "slug": "nauru", + "name": "Nauru", + "continent": "australia-oceania", + "bounds": [ + 163.7052, + -3.771196, + 168.5599, + 2.693851 + ], + "asset": "occumed-nauru.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nauru.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "navarra", + "slug": "navarra", + "name": "Navarra", + "continent": "europe", + "bounds": [ + -2.502308, + 41.90611, + -0.716515, + 43.31655 + ], + "asset": "occumed-navarra.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-navarra.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nepal", + "slug": "nepal", + "name": "Nepal", + "continent": "asia", + "bounds": [ + 80.04913, + 26.3445, + 88.22213, + 30.47822 + ], + "asset": "occumed-nepal.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nepal.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "new-brunswick", + "slug": "new-brunswick", + "name": "New Brunswick", + "continent": "north-america", + "bounds": [ + -69.05975, + 44.19205, + -62.88575, + 48.38075 + ], + "asset": "occumed-new-brunswick.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-new-brunswick.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "new-caledonia", + "slug": "new-caledonia", + "name": "New Caledonia", + "continent": "australia-oceania", + "bounds": [ + 157.9, + -25, + 174.1, + -16.9 + ], + "asset": "occumed-new-caledonia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-new-caledonia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "new-south-wales", + "slug": "new-south-wales", + "name": "New South Wales (with ACT and JBT)", + "continent": "australia-oceania", + "bounds": [ + 140.9948, + -37.75984, + 160.0747, + -28.13898 + ], + "asset": "occumed-new-south-wales.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-new-south-wales.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "new-zealand", + "slug": "new-zealand", + "name": "New Zealand", + "continent": "australia-oceania", + "bounds": [ + 162.096, + -56.75268, + -173.5849, + -28.488 + ], + "asset": "occumed-new-zealand.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-new-zealand.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "newfoundland-and-labrador", + "slug": "newfoundland-and-labrador", + "name": "Newfoundland and Labrador", + "continent": "north-america", + "bounds": [ + -67.87079, + 44.45787, + -44.17684, + 60.50864 + ], + "asset": "occumed-newfoundland-and-labrador.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-newfoundland-and-labrador.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nicaragua", + "slug": "nicaragua", + "name": "Nicaragua", + "continent": "central-america", + "bounds": [ + -87.9774, + 10.70177, + -82.37865, + 15.1119 + ], + "asset": "occumed-nicaragua.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nicaragua.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "niederbayern", + "slug": "niederbayern", + "name": "Niederbayern", + "continent": "europe", + "bounds": [ + 11.59302, + 48.20179, + 13.84947, + 49.17605 + ], + "asset": "occumed-niederbayern.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-niederbayern.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "niger", + "slug": "niger", + "name": "Niger", + "continent": "africa", + "bounds": [ + 0.119721, + 11.68684, + 16.05605, + 23.56864 + ], + "asset": "occumed-niger.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-niger.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nigeria", + "slug": "nigeria", + "name": "Nigeria", + "continent": "africa", + "bounds": [ + 2.664528, + 2.674022, + 14.68057, + 13.89874 + ], + "asset": "occumed-nigeria.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nigeria.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ningxia", + "slug": "ningxia", + "name": "Ningxia", + "continent": "asia", + "bounds": [ + 104.275, + 35.23272, + 107.6571, + 39.38606 + ], + "asset": "occumed-ningxia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ningxia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "niue", + "slug": "niue", + "name": "Niue", + "continent": "australia-oceania", + "bounds": [ + -172.027, + -22.47347, + -166.2989, + -16.63667 + ], + "asset": "occumed-niue.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-niue.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "noord-brabant", + "slug": "noord-brabant", + "name": "Noord-Brabant", + "continent": "europe", + "bounds": [ + 4.189152, + 51.21808, + 6.049354, + 51.83181 + ], + "asset": "occumed-noord-brabant.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-noord-brabant.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "noord-holland", + "slug": "noord-holland", + "name": "Noord-Holland", + "continent": "europe", + "bounds": [ + 3.896906, + 52.16497, + 5.378479, + 53.28945 + ], + "asset": "occumed-noord-holland.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-noord-holland.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "norcal", + "slug": "norcal", + "name": "Northern California", + "continent": "north-america", + "bounds": [ + -125.8935, + 35.78528, + -115.6468, + 42.01618 + ], + "asset": "occumed-norcal.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-norcal.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nord-est", + "slug": "nord-est", + "name": "Nord-Est", + "continent": "europe", + "bounds": [ + 9.195461, + 43.72977, + 13.92878, + 47.10005 + ], + "asset": "occumed-nord-est.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nord-est.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nord-norge", + "slug": "nord-norge", + "name": "Nord-Norge
(Northern Norway)", + "continent": "europe", + "bounds": [ + 7.840204, + 64.93917, + 33.63965, + 72.4056 + ], + "asset": "occumed-nord-norge.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nord-norge.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nord-ovest", + "slug": "nord-ovest", + "name": "Nord-Ovest", + "continent": "europe", + "bounds": [ + 6.602696, + 43.48099, + 11.43336, + 46.64119 + ], + "asset": "occumed-nord-ovest.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nord-ovest.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nord-pas-de-calais", + "slug": "nord-pas-de-calais", + "name": "Nord-Pas-de-Calais", + "continent": "europe", + "bounds": [ + 1.278311, + 49.96764, + 4.236622, + 51.28121 + ], + "asset": "occumed-nord-pas-de-calais.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nord-pas-de-calais.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "norfolk", + "slug": "norfolk", + "name": "Norfolk", + "continent": "europe", + "bounds": [ + 0.15447, + 52.35478, + 1.992789, + 53.35573 + ], + "asset": "occumed-norfolk.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-norfolk.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "norfolk-island", + "slug": "norfolk-island", + "name": "Norfolk Island", + "continent": "australia-oceania", + "bounds": [ + 167.6245, + -29.46068, + 168.3456, + -28.75781 + ], + "asset": "occumed-norfolk-island.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-norfolk-island.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "norte", + "slug": "norte", + "name": "Norte", + "continent": "south-america", + "bounds": [ + -74.02313, + -13.73407, + -42.87915, + 5.522895 + ], + "asset": "occumed-norte.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-norte.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "north-admreg", + "slug": "north-admreg", + "name": "North Administrative Region", + "continent": "north-america", + "bounds": [ + -141.7761, + 51.0635, + -117.938, + 60.00678 + ], + "asset": "occumed-north-admreg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-north-admreg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "north-korea", + "slug": "north-korea", + "name": "North Korea", + "continent": "asia", + "bounds": [ + 123.697, + 37.61103, + 131.6447, + 43.02043 + ], + "asset": "occumed-north-korea.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-north-korea.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "north-yorkshire", + "slug": "north-yorkshire", + "name": "North Yorkshire", + "continent": "europe", + "bounds": [ + -2.567177, + 53.61999, + -0.040615, + 54.70222 + ], + "asset": "occumed-north-yorkshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-north-yorkshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "northamptonshire", + "slug": "northamptonshire", + "name": "Northamptonshire", + "continent": "europe", + "bounds": [ + -1.334028, + 51.9765, + -0.34068, + 52.64459 + ], + "asset": "occumed-northamptonshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-northamptonshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "northern-territory", + "slug": "northern-territory", + "name": "Northern Territory", + "continent": "australia-oceania", + "bounds": [ + 128.6705, + -26.00085, + 140.4241, + -9.971934 + ], + "asset": "occumed-northern-territory.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-northern-territory.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "northern-zone", + "slug": "northern-zone", + "name": "Northern Zone", + "continent": "asia", + "bounds": [ + 69.43908, + 23.04688, + 79.48883, + 35.73091 + ], + "asset": "occumed-northern-zone.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-northern-zone.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nottinghamshire", + "slug": "nottinghamshire", + "name": "Nottinghamshire", + "continent": "europe", + "bounds": [ + -1.344477, + 52.78153, + -0.666651, + 53.50315 + ], + "asset": "occumed-nottinghamshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nottinghamshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nova-scotia", + "slug": "nova-scotia", + "name": "Nova Scotia", + "continent": "north-america", + "bounds": [ + -67.24728, + 42.10691, + -58.22593, + 47.89793 + ], + "asset": "occumed-nova-scotia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nova-scotia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "nusa-tenggara", + "slug": "nusa-tenggara", + "name": "Nusa-Tenggara", + "continent": "asia", + "bounds": [ + 114.4089, + -11.60655, + 128.408, + -6.675509 + ], + "asset": "occumed-nusa-tenggara.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-nusa-tenggara.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "oberbayern", + "slug": "oberbayern", + "name": "Oberbayern", + "continent": "europe", + "bounds": [ + 10.71268, + 47.3913, + 13.10973, + 49.09052 + ], + "asset": "occumed-oberbayern.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-oberbayern.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "oberfranken", + "slug": "oberfranken", + "name": "Oberfranken", + "continent": "europe", + "bounds": [ + 10.43816, + 49.5854, + 12.27356, + 50.52571 + ], + "asset": "occumed-oberfranken.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-oberfranken.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "oberpfalz", + "slug": "oberpfalz", + "name": "Oberpfalz", + "continent": "europe", + "bounds": [ + 11.18231, + 48.76243, + 13.17628, + 50.08323 + ], + "asset": "occumed-oberpfalz.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-oberpfalz.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "okanagan-admreg", + "slug": "okanagan-admreg", + "name": "Okanagan Administrative Region", + "continent": "north-america", + "bounds": [ + -121.1, + 48.99456, + -116.8259, + 52.57309 + ], + "asset": "occumed-okanagan-admreg.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-okanagan-admreg.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "olomoucky", + "slug": "olomoucky", + "name": "Olomoucký kraj", + "continent": "europe", + "bounds": [ + 16.70909, + 49.26735, + 17.92035, + 50.45234 + ], + "asset": "occumed-olomoucky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-olomoucky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "ostlandet", + "slug": "ostlandet", + "name": "Østlandet
(Eastern Norway)", + "continent": "europe", + "bounds": [ + 7.095391, + 58.5968, + 12.88071, + 62.69734 + ], + "asset": "occumed-ostlandet.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-ostlandet.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "overijssel", + "slug": "overijssel", + "name": "Overijssel", + "continent": "europe", + "bounds": [ + 5.776793, + 52.11349, + 7.075066, + 52.85539 + ], + "asset": "occumed-overijssel.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-overijssel.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "oxfordshire", + "slug": "oxfordshire", + "name": "Oxfordshire", + "continent": "europe", + "bounds": [ + -1.719533, + 51.46057, + -0.86985, + 52.16807 + ], + "asset": "occumed-oxfordshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-oxfordshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "pais-vasco", + "slug": "pais-vasco", + "name": "País Vasco", + "continent": "europe", + "bounds": [ + -3.454342, + 42.46919, + -1.666284, + 43.74729 + ], + "asset": "occumed-pais-vasco.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-pais-vasco.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "pakistan", + "slug": "pakistan", + "name": "Pakistan", + "continent": "asia", + "bounds": [ + 60.82168, + 23.3763, + 77.22427, + 37.10667 + ], + "asset": "occumed-pakistan.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-pakistan.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "papua", + "slug": "papua", + "name": "Papua", + "continent": "asia", + "bounds": [ + 128.2819, + -9.495116, + 141.0217, + 2.075967 + ], + "asset": "occumed-papua.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-papua.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "papua-new-guinea", + "slug": "papua-new-guinea", + "name": "Papua New Guinea", + "continent": "australia-oceania", + "bounds": [ + 139.2014, + -14.74845, + 162.8034, + 2.587814 + ], + "asset": "occumed-papua-new-guinea.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-papua-new-guinea.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "paraguay", + "slug": "paraguay", + "name": "Paraguay", + "continent": "south-america", + "bounds": [ + -62.69475, + -27.65675, + -54.20176, + -19.24012 + ], + "asset": "occumed-paraguay.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-paraguay.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "pardubicky", + "slug": "pardubicky", + "name": "Pardubický kraj", + "continent": "europe", + "bounds": [ + 15.3626, + 49.57176, + 16.86804, + 50.21306 + ], + "asset": "occumed-pardubicky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-pardubicky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "peru", + "slug": "peru", + "name": "Peru", + "continent": "south-america", + "bounds": [ + -86.02509, + -20.30552, + -68.55439, + 0.060049 + ], + "asset": "occumed-peru.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-peru.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "philippines", + "slug": "philippines", + "name": "Philippines", + "continent": "asia", + "bounds": [ + 112.1661, + 4.382696, + 127.0742, + 21.53021 + ], + "asset": "occumed-philippines.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-philippines.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "picardie", + "slug": "picardie", + "name": "Picardie", + "continent": "europe", + "bounds": [ + 1.360085, + 48.83599, + 4.256744, + 50.37125 + ], + "asset": "occumed-picardie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-picardie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "pitcairn-islands", + "slug": "pitcairn-islands", + "name": "Pitcairn Islands", + "continent": "australia-oceania", + "bounds": [ + -133.0664, + -27.66403, + -118.3448, + -21.59613 + ], + "asset": "occumed-pitcairn-islands.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-pitcairn-islands.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "plzensky", + "slug": "plzensky", + "name": "Plzeňský kraj", + "continent": "europe", + "bounds": [ + 12.38887, + 48.93387, + 13.84247, + 50.10566 + ], + "asset": "occumed-plzensky.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-plzensky.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "podlaskie", + "slug": "podlaskie", + "name": "Województwo podlaskie
(Podlaskie Voivodeship)", + "continent": "europe", + "bounds": [ + 21.58465, + 52.27112, + 23.96141, + 54.4254 + ], + "asset": "occumed-podlaskie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-podlaskie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "poitou-charentes", + "slug": "poitou-charentes", + "name": "Poitou-Charentes", + "continent": "europe", + "bounds": [ + -1.898565, + 45.0868, + 1.214991, + 47.17837 + ], + "asset": "occumed-poitou-charentes.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-poitou-charentes.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "polynesie-francaise", + "slug": "polynesie-francaise", + "name": "Polynésie française (French Polynesia)", + "continent": "australia-oceania", + "bounds": [ + -158.5547, + -31.54105, + -132.5391, + -4.915789 + ], + "asset": "occumed-polynesie-francaise.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-polynesie-francaise.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "pomorskie", + "slug": "pomorskie", + "name": "Województwo pomorskie
(Pomeranian Voivodeship)", + "continent": "europe", + "bounds": [ + 16.68699, + 53.4806, + 19.66069, + 55.07949 + ], + "asset": "occumed-pomorskie.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-pomorskie.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "portugal", + "slug": "portugal", + "name": "Portugal", + "continent": "europe", + "bounds": [ + -31.6, + 32, + -6.179513, + 42.1639 + ], + "asset": "occumed-portugal.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-portugal.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "prince-edward-island", + "slug": "prince-edward-island", + "name": "Prince Edward Island", + "continent": "north-america", + "bounds": [ + -64.60236, + 45.82497, + -61.24878, + 47.68573 + ], + "asset": "occumed-prince-edward-island.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-prince-edward-island.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "provence-alpes-cote-d-azur", + "slug": "provence-alpes-cote-d-azur", + "name": "Provence Alpes-Cote-d'Azur", + "continent": "europe", + "bounds": [ + 4.144746, + 42.31539, + 7.748528, + 45.12887 + ], + "asset": "occumed-provence-alpes-cote-d-azur.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-provence-alpes-cote-d-azur.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "qinghai", + "slug": "qinghai", + "name": "Qinghai", + "continent": "asia", + "bounds": [ + 89.39, + 31.58673, + 103.0727, + 39.22162 + ], + "asset": "occumed-qinghai.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-qinghai.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "reunion", + "slug": "reunion", + "name": "Reunion", + "continent": "europe", + "bounds": [ + 54.94688, + -21.72922, + 56.11999, + -20.58589 + ], + "asset": "occumed-reunion.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-reunion.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "rheinland-pfalz", + "slug": "rheinland-pfalz", + "name": "Rheinland-Pfalz", + "continent": "europe", + "bounds": [ + 6.109129, + 48.96377, + 8.511228, + 50.94404 + ], + "asset": "occumed-rheinland-pfalz.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-rheinland-pfalz.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "rhone-alpes", + "slug": "rhone-alpes", + "name": "Rhone-Alpes", + "continent": "europe", + "bounds": [ + 3.686075, + 44.11274, + 7.19206, + 46.52248 + ], + "asset": "occumed-rhone-alpes.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-rhone-alpes.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "rutland", + "slug": "rutland", + "name": "Rutland", + "continent": "europe", + "bounds": [ + -0.822934, + 52.52355, + -0.427654, + 52.76109 + ], + "asset": "occumed-rutland.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-rutland.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "saarland", + "slug": "saarland", + "name": "Saarland", + "continent": "europe", + "bounds": [ + 6.354475, + 49.10807, + 7.406287, + 49.64146 + ], + "asset": "occumed-saarland.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-saarland.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "sachsen", + "slug": "sachsen", + "name": "Sachsen", + "continent": "europe", + "bounds": [ + 11.86685, + 50.16658, + 15.05078, + 51.68735 + ], + "asset": "occumed-sachsen.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-sachsen.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "sachsen-anhalt", + "slug": "sachsen-anhalt", + "name": "Sachsen-Anhalt", + "continent": "europe", + "bounds": [ + 10.54725, + 50.92887, + 13.21268, + 53.0566 + ], + "asset": "occumed-sachsen-anhalt.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-sachsen-anhalt.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "samoa", + "slug": "samoa", + "name": "Samoa", + "continent": "australia-oceania", + "bounds": [ + -174.5114, + -15.87838, + -170.5427, + -10.96083 + ], + "asset": "occumed-samoa.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-samoa.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "schleswig-holstein", + "slug": "schleswig-holstein", + "name": "Schleswig-Holstein", + "continent": "europe", + "bounds": [ + 7.46458, + 53.3569, + 11.79931, + 55.14634 + ], + "asset": "occumed-schleswig-holstein.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-schleswig-holstein.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "schwaben", + "slug": "schwaben", + "name": "Schwaben", + "continent": "europe", + "bounds": [ + 9.512461, + 47.26543, + 11.31348, + 49.0366 + ], + "asset": "occumed-schwaben.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-schwaben.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "seychelles", + "slug": "seychelles", + "name": "Seychelles", + "continent": "africa", + "bounds": [ + 45.68495, + -12.55844, + 57.57433, + -3.17239 + ], + "asset": "occumed-seychelles.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-seychelles.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "shaanxi", + "slug": "shaanxi", + "name": "Shaanxi", + "continent": "asia", + "bounds": [ + 105.4801, + 31.695, + 111.2479, + 39.58902 + ], + "asset": "occumed-shaanxi.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-shaanxi.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "shanghai", + "slug": "shanghai", + "name": "Shanghai", + "continent": "asia", + "bounds": [ + 120.847, + 30.6391, + 123.679, + 31.88455 + ], + "asset": "occumed-shanghai.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-shanghai.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "shropshire", + "slug": "shropshire", + "name": "Shropshire", + "continent": "europe", + "bounds": [ + -3.235577, + 52.30616, + -2.23354, + 52.99693 + ], + "asset": "occumed-shropshire.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-shropshire.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "slovenia", + "slug": "slovenia", + "name": "Slovenia", + "continent": "europe", + "bounds": [ + 13.30509, + 45.42081, + 16.60034, + 46.87956 + ], + "asset": "occumed-slovenia.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-slovenia.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "socal", + "slug": "socal", + "name": "Southern California", + "continent": "north-america", + "bounds": [ + -121.4401, + 32.48438, + -114.1291, + 35.81055 + ], + "asset": "occumed-socal.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-socal.pmtiles", + "minzoom": 6, + "maxzoom": 16 + }, + { + "id": "south-africa", + "slug": "south-africa", + "name": "South Africa", + "continent": "africa", + "bounds": [ + 15.99606, + -47.58493, + 39.24259, + -22.11736 + ], + "asset": "occumed-south-africa.pmtiles", + "url": "__OCCUMED_PUBLIC_ORIGIN__/world-tiles/occumed-south-africa.pmtiles", + "minzoom": 6, + "maxzoom": 16 + } + ], + "plannedRegionCount": 535, + "availableRegionCount": 330, + "missingRegionCount": 205, + "missingRegions": [ + "argentina", + "central-fed-district--r1-c2", + "central-fed-district--r2-c1", + "central-fed-district--r2-c2", + "enfield", + "far-eastern-fed-district", + "finland", + "iceland", + "java--r1-c1", + "java--r1-c2", + "java--r1-c3", + "java--r2-c1", + "java--r2-c2", + "java--r2-c3", + "mexico", + "myanmar", + "niedersachsen", + "nordeste", + "north-caucasus-fed-district", + "north-eastern-zone", + "northumberland", + "northwest-territories", + "northwestern-fed-district", + "ontario--r1-c1", + "ontario--r1-c2", + "ontario--r2-c1", + "ontario--r2-c2", + "opolskie", + "palau", + "panama", + "pays-de-la-loire", + "podkarpackie", + "praha", + "qikiqtaaluk", + "quebec--r1-c1", + "quebec--r1-c2", + "quebec--r2-c1", + "quebec--r2-c2", + "queensland", + "romania", + "rwanda", + "saint-helena-ascension-and-tristan-da-cunha", + "sao-tome-and-principe", + "saskatchewan", + "scotland", + "senegal-and-gambia", + "serbia", + "shandong", + "shanxi", + "shikoku", + "siberian-fed-district", + "sichuan", + "sierra-leone", + "slaskie", + "slovakia", + "solomon-islands", + "somalia", + "somerset", + "sorlandet", + "south-australia", + "south-fed-district", + "south-korea", + "south-sudan", + "south-yorkshire", + "southcoast-admreg", + "southern-zone", + "sri-lanka", + "staffordshire", + "stredocesky", + "stuttgart-regbez", + "sud", + "sudan", + "sudeste--r1-c1", + "sudeste--r1-c2", + "sudeste--r1-c3", + "sudeste--r2-c1", + "sudeste--r2-c2", + "sudeste--r2-c3", + "suffolk", + "sul", + "sulawesi", + "sumatra", + "suriname", + "surrey", + "svalbard-janmayen", + "swaziland", + "sweden", + "swietokrzyskie", + "switzerland", + "syria", + "taiwan", + "tajikistan", + "tanzania", + "tasmania", + "thailand", + "thueringen", + "tianjin", + "tibet", + "togo", + "tohoku", + "tokelau", + "tonga", + "trondelag", + "tuebingen-regbez", + "tunisia", + "turkey", + "turkmenistan", + "tuvalu", + "tyne-and-wear", + "uganda", + "ukraine--r1-c1", + "ukraine--r1-c2", + "ukraine--r1-c3", + "ukraine--r2-c1", + "ukraine--r2-c2", + "ukraine--r2-c3", + "unterfranken", + "ural-fed-district", + "uruguay", + "us/alabama", + "us/alaska", + "us/arizona", + "us/arkansas", + "us/colorado", + "us/connecticut", + "us/delaware", + "us/district-of-columbia", + "us/florida", + "us/georgia", + "us/hawaii", + "us/idaho", + "us/illinois", + "us/indiana", + "us/iowa", + "us/kansas", + "us/kentucky", + "us/louisiana", + "us/maine", + "us/maryland", + "us/massachusetts", + "us/michigan", + "us/minnesota", + "us/mississippi", + "us/missouri", + "us/montana", + "us/nebraska", + "us/nevada", + "us/new-hampshire", + "us/new-jersey", + "us/new-mexico", + "us/new-york", + "us/north-carolina", + "us/north-dakota", + "us/ohio", + "us/oklahoma", + "us/oregon", + "us/pennsylvania", + "us/puerto-rico", + "us/rhode-island", + "us/south-carolina", + "us/south-dakota", + "us/tennessee", + "us/texas", + "us/us-virgin-islands", + "us/utah", + "us/vermont", + "us/virginia", + "us/washington", + "us/west-virginia", + "us/wisconsin", + "us/wyoming", + "ustecky", + "utrecht", + "uzbekistan", + "valencia", + "vanuatu", + "venezuela", + "vestlandet", + "victoria", + "vietnam", + "volga-fed-district", + "vysocina", + "wales", + "wallis-et-futuna", + "warminsko-mazurskie", + "warwickshire", + "west-midlands", + "west-sussex", + "west-yorkshire", + "western-australia", + "western-zone", + "wielkopolskie", + "wiltshire", + "worcestershire", + "xinjiang", + "yemen", + "yukon", + "yunnan", + "zachodniopomorskie", + "zambia", + "zeeland", + "zhejiang", + "zimbabwe", + "zlinsky", + "zuid-holland" + ], + "releaseAssetCount": 1000, + "capturedAt": "2026-07-26T21:24:51.885Z" +} diff --git a/diagnostics/world-release-inventory.trigger b/diagnostics/world-release-inventory.trigger new file mode 100644 index 00000000..3ea98d2f --- /dev/null +++ b/diagnostics/world-release-inventory.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-27T01:17:00Z +purpose=user_requested_exact_post_repair_release_inventory diff --git a/diagnostics/world-release-inventory/canonical-world-plan.json b/diagnostics/world-release-inventory/canonical-world-plan.json new file mode 100644 index 00000000..c583912c --- /dev/null +++ b/diagnostics/world-release-inventory/canonical-world-plan.json @@ -0,0 +1,11603 @@ +{ + "include": [ + { + "id": "act", + "slug": "act", + "name": "Australian Capital Territory", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/act-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "act", + "source_size_bytes": 18636920, + "west": 148.7583, + "south": -35.92548, + "east": 149.4018, + "north": -35.12093, + "asset_name": "occumed-act.pmtiles", + "metadata_name": "occumed-act.json" + }, + { + "id": "afghanistan", + "slug": "afghanistan", + "name": "Afghanistan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/afghanistan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "afghanistan", + "source_size_bytes": 112258563, + "west": 60.48761, + "south": 29.36856, + "east": 74.90017, + "north": 38.50674, + "asset_name": "occumed-afghanistan.pmtiles", + "metadata_name": "occumed-afghanistan.json" + }, + { + "id": "albania", + "slug": "albania", + "name": "Albania", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/albania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "albania", + "source_size_bytes": 53757326, + "west": 18.89648, + "south": 39.62738, + "east": 21.06285, + "north": 42.66313, + "asset_name": "occumed-albania.pmtiles", + "metadata_name": "occumed-albania.json" + }, + { + "id": "alberta", + "slug": "alberta", + "name": "Alberta", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/alberta-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "alberta", + "source_size_bytes": 346236939, + "west": -120.0043, + "south": 48.99251, + "east": -110.0018, + "north": 60.00254, + "asset_name": "occumed-alberta.pmtiles", + "metadata_name": "occumed-alberta.json" + }, + { + "id": "algeria", + "slug": "algeria", + "name": "Algeria", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/algeria-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "algeria", + "source_size_bytes": 299029073, + "west": -8.704895, + "south": 18.92874, + "east": 12.03598, + "north": 37.77284, + "asset_name": "occumed-algeria.pmtiles", + "metadata_name": "occumed-algeria.json" + }, + { + "id": "alsace", + "slug": "alsace", + "name": "Alsace", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/alsace-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "alsace", + "source_size_bytes": 129992490, + "west": 6.838921, + "south": 47.41798, + "east": 8.235465, + "north": 49.07898, + "asset_name": "occumed-alsace.pmtiles", + "metadata_name": "occumed-alsace.json" + }, + { + "id": "american-oceania", + "slug": "american-oceania", + "name": "American Oceania", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/american-oceania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "american-oceania", + "source_size_bytes": 5346040, + "west": 141.6357, + "south": -17.644, + "east": -160.2799, + "north": 22.02463, + "asset_name": "occumed-american-oceania.pmtiles", + "metadata_name": "occumed-american-oceania.json" + }, + { + "id": "andalucia", + "slug": "andalucia", + "name": "Andalucía", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/andalucia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "andalucia", + "source_size_bytes": 191380110, + "west": -7.52466, + "south": 35.70638, + "east": -1.332095, + "north": 38.73347, + "asset_name": "occumed-andalucia.pmtiles", + "metadata_name": "occumed-andalucia.json" + }, + { + "id": "andorra", + "slug": "andorra", + "name": "Andorra", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/andorra-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "andorra", + "source_size_bytes": 3424584, + "west": 1.412368, + "south": 42.4276, + "east": 1.787481, + "north": 42.65717, + "asset_name": "occumed-andorra.pmtiles", + "metadata_name": "occumed-andorra.json" + }, + { + "id": "angola", + "slug": "angola", + "name": "Angola", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/angola-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "angola", + "source_size_bytes": 84877655, + "west": 10.53848, + "south": -18.06508, + "east": 24.10297, + "north": -4.327925, + "asset_name": "occumed-angola.pmtiles", + "metadata_name": "occumed-angola.json" + }, + { + "id": "anhui", + "slug": "anhui", + "name": "Anhui", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/anhui-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "anhui", + "source_size_bytes": 43109284, + "west": 114.8693, + "south": 29.38816, + "east": 119.6566, + "north": 34.65496, + "asset_name": "occumed-anhui.pmtiles", + "metadata_name": "occumed-anhui.json" + }, + { + "id": "antarctica", + "slug": "antarctica", + "name": "Antarctica", + "continent": "antarctica", + "pbf_url": "https://download.geofabrik.de/antarctica-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "antarctica", + "source_size_bytes": 33091371, + "west": 180, + "south": -90, + "east": 180, + "north": -60, + "asset_name": "occumed-antarctica.pmtiles", + "metadata_name": "occumed-antarctica.json" + }, + { + "id": "aquitaine", + "slug": "aquitaine", + "name": "Aquitaine", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/aquitaine-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "aquitaine", + "source_size_bytes": 294054231, + "west": -1.842771, + "south": 42.77334, + "east": 1.450577, + "north": 45.71724, + "asset_name": "occumed-aquitaine.pmtiles", + "metadata_name": "occumed-aquitaine.json" + }, + { + "id": "aragon", + "slug": "aragon", + "name": "Aragón", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/aragon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "aragon", + "source_size_bytes": 93130634, + "west": -2.17907, + "south": 39.83833, + "east": 0.772562, + "north": 42.92677, + "asset_name": "occumed-aragon.pmtiles", + "metadata_name": "occumed-aragon.json" + }, + { + "id": "argentina--r1-c1", + "slug": "argentina--r1-c1", + "name": "Argentina 1.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/argentina-latest.osm.pbf", + "extract_bbox": "-73.61453,-55.68296,-63.624935,-38.704355", + "source_region_id": "argentina", + "source_size_bytes": 425449502, + "west": -73.61453, + "south": -55.68296, + "east": -63.624935, + "north": -38.704355, + "asset_name": "occumed-argentina--r1-c1.pmtiles", + "metadata_name": "occumed-argentina--r1-c1.json" + }, + { + "id": "argentina--r1-c2", + "slug": "argentina--r1-c2", + "name": "Argentina 1.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/argentina-latest.osm.pbf", + "extract_bbox": "-63.624935,-55.68296,-53.63534,-38.704355", + "source_region_id": "argentina", + "source_size_bytes": 425449502, + "west": -63.624935, + "south": -55.68296, + "east": -53.63534, + "north": -38.704355, + "asset_name": "occumed-argentina--r1-c2.pmtiles", + "metadata_name": "occumed-argentina--r1-c2.json" + }, + { + "id": "argentina--r2-c1", + "slug": "argentina--r2-c1", + "name": "Argentina 2.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/argentina-latest.osm.pbf", + "extract_bbox": "-73.61453,-38.704355,-63.624935,-21.72575", + "source_region_id": "argentina", + "source_size_bytes": 425449502, + "west": -73.61453, + "south": -38.704355, + "east": -63.624935, + "north": -21.72575, + "asset_name": "occumed-argentina--r2-c1.pmtiles", + "metadata_name": "occumed-argentina--r2-c1.json" + }, + { + "id": "argentina--r2-c2", + "slug": "argentina--r2-c2", + "name": "Argentina 2.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/argentina-latest.osm.pbf", + "extract_bbox": "-63.624935,-38.704355,-53.63534,-21.72575", + "source_region_id": "argentina", + "source_size_bytes": 425449502, + "west": -63.624935, + "south": -38.704355, + "east": -53.63534, + "north": -21.72575, + "asset_name": "occumed-argentina--r2-c2.pmtiles", + "metadata_name": "occumed-argentina--r2-c2.json" + }, + { + "id": "armenia", + "slug": "armenia", + "name": "Armenia", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/armenia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "armenia", + "source_size_bytes": 52783501, + "west": 43.43821, + "south": 38.83743, + "east": 46.64262, + "north": 41.31029, + "asset_name": "occumed-armenia.pmtiles", + "metadata_name": "occumed-armenia.json" + }, + { + "id": "arnsberg-regbez", + "slug": "arnsberg-regbez", + "name": "Regierungsbezirk Arnsberg", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/nordrhein-westfalen/arnsberg-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "arnsberg-regbez", + "source_size_bytes": 193868014, + "west": 7.099633, + "south": 50.67897, + "east": 8.972531, + "north": 51.74709, + "asset_name": "occumed-arnsberg-regbez.pmtiles", + "metadata_name": "occumed-arnsberg-regbez.json" + }, + { + "id": "ashmore-cartier", + "slug": "ashmore-cartier", + "name": "Ashmore and Cartier Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/ashmore-cartier-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ashmore-cartier", + "source_size_bytes": 22591, + "west": 122.5681, + "south": -12.8482, + "east": 124.0416, + "north": -11.89266, + "asset_name": "occumed-ashmore-cartier.pmtiles", + "metadata_name": "occumed-ashmore-cartier.json" + }, + { + "id": "asturias", + "slug": "asturias", + "name": "Asturias", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/asturias-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "asturias", + "source_size_bytes": 36050797, + "west": -7.188576, + "south": 42.87886, + "east": -4.39956, + "north": 44.01101, + "asset_name": "occumed-asturias.pmtiles", + "metadata_name": "occumed-asturias.json" + }, + { + "id": "austria--r1-c1", + "slug": "austria--r1-c1", + "name": "Austria 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "9.52678,46.36979,12.072547,47.69691", + "source_region_id": "austria", + "source_size_bytes": 805161044, + "west": 9.52678, + "south": 46.36979, + "east": 12.072547, + "north": 47.69691, + "asset_name": "occumed-austria--r1-c1.pmtiles", + "metadata_name": "occumed-austria--r1-c1.json" + }, + { + "id": "austria--r1-c2", + "slug": "austria--r1-c2", + "name": "Austria 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "12.072547,46.36979,14.618313,47.69691", + "source_region_id": "austria", + "source_size_bytes": 805161044, + "west": 12.072547, + "south": 46.36979, + "east": 14.618313, + "north": 47.69691, + "asset_name": "occumed-austria--r1-c2.pmtiles", + "metadata_name": "occumed-austria--r1-c2.json" + }, + { + "id": "austria--r1-c3", + "slug": "austria--r1-c3", + "name": "Austria 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "14.618313,46.36979,17.16408,47.69691", + "source_region_id": "austria", + "source_size_bytes": 805161044, + "west": 14.618313, + "south": 46.36979, + "east": 17.16408, + "north": 47.69691, + "asset_name": "occumed-austria--r1-c3.pmtiles", + "metadata_name": "occumed-austria--r1-c3.json" + }, + { + "id": "austria--r2-c1", + "slug": "austria--r2-c1", + "name": "Austria 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "9.52678,47.69691,12.072547,49.02403", + "source_region_id": "austria", + "source_size_bytes": 805161044, + "west": 9.52678, + "south": 47.69691, + "east": 12.072547, + "north": 49.02403, + "asset_name": "occumed-austria--r2-c1.pmtiles", + "metadata_name": "occumed-austria--r2-c1.json" + }, + { + "id": "austria--r2-c2", + "slug": "austria--r2-c2", + "name": "Austria 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "12.072547,47.69691,14.618313,49.02403", + "source_region_id": "austria", + "source_size_bytes": 805161044, + "west": 12.072547, + "south": 47.69691, + "east": 14.618313, + "north": 49.02403, + "asset_name": "occumed-austria--r2-c2.pmtiles", + "metadata_name": "occumed-austria--r2-c2.json" + }, + { + "id": "austria--r2-c3", + "slug": "austria--r2-c3", + "name": "Austria 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/austria-latest.osm.pbf", + "extract_bbox": "14.618313,47.69691,17.16408,49.02403", + "source_region_id": "austria", + "source_size_bytes": 805161044, + "west": 14.618313, + "south": 47.69691, + "east": 17.16408, + "north": 49.02403, + "asset_name": "occumed-austria--r2-c3.pmtiles", + "metadata_name": "occumed-austria--r2-c3.json" + }, + { + "id": "auvergne", + "slug": "auvergne", + "name": "Auvergne", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/auvergne-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "auvergne", + "source_size_bytes": 153794733, + "west": 2.060519, + "south": 44.6146, + "east": 4.492907, + "north": 46.80668, + "asset_name": "occumed-auvergne.pmtiles", + "metadata_name": "occumed-auvergne.json" + }, + { + "id": "azerbaijan", + "slug": "azerbaijan", + "name": "Azerbaijan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/azerbaijan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "azerbaijan", + "source_size_bytes": 45570083, + "west": 44.75006, + "south": 38.24727, + "east": 51.7231, + "north": 42.67437, + "asset_name": "occumed-azerbaijan.pmtiles", + "metadata_name": "occumed-azerbaijan.json" + }, + { + "id": "azores", + "slug": "azores", + "name": "Azores", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/azores-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "azores", + "source_size_bytes": 17592345, + "west": -31.57293, + "south": 35.67791, + "east": -23.71814, + "north": 40.0757, + "asset_name": "occumed-azores.pmtiles", + "metadata_name": "occumed-azores.json" + }, + { + "id": "bahamas", + "slug": "bahamas", + "name": "Bahamas", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/bahamas-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bahamas", + "source_size_bytes": 14175394, + "west": -81.51857, + "south": 20.27251, + "east": -71.86673, + "north": 27.97497, + "asset_name": "occumed-bahamas.pmtiles", + "metadata_name": "occumed-bahamas.json" + }, + { + "id": "bangladesh", + "slug": "bangladesh", + "name": "Bangladesh", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/bangladesh-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bangladesh", + "source_size_bytes": 349810734, + "west": 87.99765, + "south": 18.58403, + "east": 92.69714, + "north": 26.64677, + "asset_name": "occumed-bangladesh.pmtiles", + "metadata_name": "occumed-bangladesh.json" + }, + { + "id": "basse-normandie", + "slug": "basse-normandie", + "name": "Basse-Normandie", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/basse-normandie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "basse-normandie", + "source_size_bytes": 142710000, + "west": -2.087526, + "south": 48.17802, + "east": 0.979067, + "north": 49.88523, + "asset_name": "occumed-basse-normandie.pmtiles", + "metadata_name": "occumed-basse-normandie.json" + }, + { + "id": "bedfordshire", + "slug": "bedfordshire", + "name": "Bedfordshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/bedfordshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bedfordshire", + "source_size_bytes": 14766125, + "west": -0.704092, + "south": 51.8036, + "east": -0.142022, + "north": 52.32483, + "asset_name": "occumed-bedfordshire.pmtiles", + "metadata_name": "occumed-bedfordshire.json" + }, + { + "id": "beijing", + "slug": "beijing", + "name": "Beijing", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/beijing-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "beijing", + "source_size_bytes": 36452430, + "west": 115.4155, + "south": 39.44083, + "east": 117.5095, + "north": 41.06382, + "asset_name": "occumed-beijing.pmtiles", + "metadata_name": "occumed-beijing.json" + }, + { + "id": "belarus", + "slug": "belarus", + "name": "Belarus", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belarus-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "belarus", + "source_size_bytes": 346980647, + "west": 23.1748, + "south": 51.23441, + "east": 32.76947, + "north": 56.17385, + "asset_name": "occumed-belarus.pmtiles", + "metadata_name": "occumed-belarus.json" + }, + { + "id": "belgium--r1-c1", + "slug": "belgium--r1-c1", + "name": "Belgium 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "2.340725,49.49489,3.697238,50.54664", + "source_region_id": "belgium", + "source_size_bytes": 690290980, + "west": 2.340725, + "south": 49.49489, + "east": 3.697238, + "north": 50.54664, + "asset_name": "occumed-belgium--r1-c1.pmtiles", + "metadata_name": "occumed-belgium--r1-c1.json" + }, + { + "id": "belgium--r1-c2", + "slug": "belgium--r1-c2", + "name": "Belgium 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "3.697238,49.49489,5.053752,50.54664", + "source_region_id": "belgium", + "source_size_bytes": 690290980, + "west": 3.697238, + "south": 49.49489, + "east": 5.053752, + "north": 50.54664, + "asset_name": "occumed-belgium--r1-c2.pmtiles", + "metadata_name": "occumed-belgium--r1-c2.json" + }, + { + "id": "belgium--r1-c3", + "slug": "belgium--r1-c3", + "name": "Belgium 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "5.053752,49.49489,6.410265,50.54664", + "source_region_id": "belgium", + "source_size_bytes": 690290980, + "west": 5.053752, + "south": 49.49489, + "east": 6.410265, + "north": 50.54664, + "asset_name": "occumed-belgium--r1-c3.pmtiles", + "metadata_name": "occumed-belgium--r1-c3.json" + }, + { + "id": "belgium--r2-c1", + "slug": "belgium--r2-c1", + "name": "Belgium 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "2.340725,50.54664,3.697238,51.59839", + "source_region_id": "belgium", + "source_size_bytes": 690290980, + "west": 2.340725, + "south": 50.54664, + "east": 3.697238, + "north": 51.59839, + "asset_name": "occumed-belgium--r2-c1.pmtiles", + "metadata_name": "occumed-belgium--r2-c1.json" + }, + { + "id": "belgium--r2-c2", + "slug": "belgium--r2-c2", + "name": "Belgium 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "3.697238,50.54664,5.053752,51.59839", + "source_region_id": "belgium", + "source_size_bytes": 690290980, + "west": 3.697238, + "south": 50.54664, + "east": 5.053752, + "north": 51.59839, + "asset_name": "occumed-belgium--r2-c2.pmtiles", + "metadata_name": "occumed-belgium--r2-c2.json" + }, + { + "id": "belgium--r2-c3", + "slug": "belgium--r2-c3", + "name": "Belgium 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/belgium-latest.osm.pbf", + "extract_bbox": "5.053752,50.54664,6.410265,51.59839", + "source_region_id": "belgium", + "source_size_bytes": 690290980, + "west": 5.053752, + "south": 50.54664, + "east": 6.410265, + "north": 51.59839, + "asset_name": "occumed-belgium--r2-c3.pmtiles", + "metadata_name": "occumed-belgium--r2-c3.json" + }, + { + "id": "belize", + "slug": "belize", + "name": "Belize", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/belize-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "belize", + "source_size_bytes": 18201932, + "west": -89.22892, + "south": 15.88308, + "east": -86.85983, + "north": 18.4984, + "asset_name": "occumed-belize.pmtiles", + "metadata_name": "occumed-belize.json" + }, + { + "id": "benin", + "slug": "benin", + "name": "Benin", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/benin-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "benin", + "source_size_bytes": 47886643, + "west": 0.761489, + "south": 5.984817, + "east": 3.861694, + "north": 12.43658, + "asset_name": "occumed-benin.pmtiles", + "metadata_name": "occumed-benin.json" + }, + { + "id": "berkshire", + "slug": "berkshire", + "name": "Berkshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/berkshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "berkshire", + "source_size_bytes": 22362489, + "west": -1.589073, + "south": 51.32802, + "east": -0.489118, + "north": 51.57873, + "asset_name": "occumed-berkshire.pmtiles", + "metadata_name": "occumed-berkshire.json" + }, + { + "id": "berlin", + "slug": "berlin", + "name": "Berlin", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "berlin", + "source_size_bytes": 98675182, + "west": 13.08283, + "south": 52.33446, + "east": 13.76225, + "north": 52.6783, + "asset_name": "occumed-berlin.pmtiles", + "metadata_name": "occumed-berlin.json" + }, + { + "id": "bermuda", + "slug": "bermuda", + "name": "Bermuda", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/bermuda-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bermuda", + "source_size_bytes": 2032339, + "west": -65.2005, + "south": 32.02158, + "east": -64.39406, + "north": 32.62324, + "asset_name": "occumed-bermuda.pmtiles", + "metadata_name": "occumed-bermuda.json" + }, + { + "id": "bhutan", + "slug": "bhutan", + "name": "Bhutan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/bhutan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bhutan", + "source_size_bytes": 23579835, + "west": 88.73917, + "south": 26.6948, + "east": 92.13159, + "north": 28.25372, + "asset_name": "occumed-bhutan.pmtiles", + "metadata_name": "occumed-bhutan.json" + }, + { + "id": "bolivia", + "slug": "bolivia", + "name": "Bolivia", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/bolivia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bolivia", + "source_size_bytes": 172271415, + "west": -69.65675, + "south": -22.92551, + "east": -57.43481, + "north": -9.63866, + "asset_name": "occumed-bolivia.pmtiles", + "metadata_name": "occumed-bolivia.json" + }, + { + "id": "bosnia-herzegovina", + "slug": "bosnia-herzegovina", + "name": "Bosnia-Herzegovina", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/bosnia-herzegovina-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bosnia-herzegovina", + "source_size_bytes": 159432166, + "west": 15.7156, + "south": 42.55239, + "east": 19.62639, + "north": 45.27803, + "asset_name": "occumed-bosnia-herzegovina.pmtiles", + "metadata_name": "occumed-bosnia-herzegovina.json" + }, + { + "id": "botswana", + "slug": "botswana", + "name": "Botswana", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/botswana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "botswana", + "source_size_bytes": 87925223, + "west": 19.98745, + "south": -26.91539, + "east": 29.38549, + "north": -17.77403, + "asset_name": "occumed-botswana.pmtiles", + "metadata_name": "occumed-botswana.json" + }, + { + "id": "bourgogne", + "slug": "bourgogne", + "name": "Bourgogne", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/bourgogne-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bourgogne", + "source_size_bytes": 198872310, + "west": 2.843279, + "south": 46.15484, + "east": 5.519965, + "north": 48.40136, + "asset_name": "occumed-bourgogne.pmtiles", + "metadata_name": "occumed-bourgogne.json" + }, + { + "id": "brandenburg", + "slug": "brandenburg", + "name": "Brandenburg (mit Berlin)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/brandenburg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "brandenburg", + "source_size_bytes": 298041386, + "west": 11.22404, + "south": 51.35252, + "east": 14.77481, + "north": 53.5784, + "asset_name": "occumed-brandenburg.pmtiles", + "metadata_name": "occumed-brandenburg.json" + }, + { + "id": "bremen", + "slug": "bremen", + "name": "Bremen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bremen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bremen", + "source_size_bytes": 21089446, + "west": 8.480959, + "south": 53.01034, + "east": 8.991268, + "north": 53.61063, + "asset_name": "occumed-bremen.pmtiles", + "metadata_name": "occumed-bremen.json" + }, + { + "id": "bretagne", + "slug": "bretagne", + "name": "Bretagne", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/bretagne-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bretagne", + "source_size_bytes": 326679370, + "west": -5.848854, + "south": 47.07722, + "east": -1.014538, + "north": 49.40025, + "asset_name": "occumed-bretagne.pmtiles", + "metadata_name": "occumed-bretagne.json" + }, + { + "id": "bristol", + "slug": "bristol", + "name": "Bristol", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/bristol-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bristol", + "source_size_bytes": 13155251, + "west": -2.734665, + "south": 51.39611, + "east": -2.509528, + "north": 51.54562, + "asset_name": "occumed-bristol.pmtiles", + "metadata_name": "occumed-bristol.json" + }, + { + "id": "buckinghamshire", + "slug": "buckinghamshire", + "name": "Buckinghamshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/buckinghamshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "buckinghamshire", + "source_size_bytes": 22302510, + "west": -1.140791, + "south": 51.48571, + "east": -0.482713, + "north": 52.19561, + "asset_name": "occumed-buckinghamshire.pmtiles", + "metadata_name": "occumed-buckinghamshire.json" + }, + { + "id": "bulgaria", + "slug": "bulgaria", + "name": "Bulgaria", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/bulgaria-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "bulgaria", + "source_size_bytes": 170246976, + "west": 22.34875, + "south": 41.22681, + "east": 29.18819, + "north": 44.21777, + "asset_name": "occumed-bulgaria.pmtiles", + "metadata_name": "occumed-bulgaria.json" + }, + { + "id": "burkina-faso", + "slug": "burkina-faso", + "name": "Burkina Faso", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/burkina-faso-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "burkina-faso", + "source_size_bytes": 84446318, + "west": -5.527409, + "south": 9.384107, + "east": 2.412529, + "north": 15.09271, + "asset_name": "occumed-burkina-faso.pmtiles", + "metadata_name": "occumed-burkina-faso.json" + }, + { + "id": "burundi", + "slug": "burundi", + "name": "Burundi", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/burundi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "burundi", + "source_size_bytes": 46189885, + "west": 29.00018, + "south": -4.481328, + "east": 30.85115, + "north": -2.307893, + "asset_name": "occumed-burundi.pmtiles", + "metadata_name": "occumed-burundi.json" + }, + { + "id": "cambodia", + "slug": "cambodia", + "name": "Cambodia", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/cambodia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cambodia", + "source_size_bytes": 40258434, + "west": 101.8522, + "south": 8.858092, + "east": 107.6397, + "north": 14.71875, + "asset_name": "occumed-cambodia.pmtiles", + "metadata_name": "occumed-cambodia.json" + }, + { + "id": "cambridgeshire", + "slug": "cambridgeshire", + "name": "Cambridgeshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/cambridgeshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cambridgeshire", + "source_size_bytes": 34353407, + "west": -0.502126, + "south": 52.00517, + "east": 0.516191, + "north": 52.74155, + "asset_name": "occumed-cambridgeshire.pmtiles", + "metadata_name": "occumed-cambridgeshire.json" + }, + { + "id": "cameroon", + "slug": "cameroon", + "name": "Cameroon", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/cameroon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cameroon", + "source_size_bytes": 222962152, + "west": 8.33, + "south": 1.645663, + "east": 16.20312, + "north": 13.09278, + "asset_name": "occumed-cameroon.pmtiles", + "metadata_name": "occumed-cameroon.json" + }, + { + "id": "canary-islands", + "slug": "canary-islands", + "name": "Canary Islands", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/canary-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "canary-islands", + "source_size_bytes": 59574148, + "west": -18.92352, + "south": 26.36117, + "east": -12.47875, + "north": 30.25648, + "asset_name": "occumed-canary-islands.pmtiles", + "metadata_name": "occumed-canary-islands.json" + }, + { + "id": "cantabria", + "slug": "cantabria", + "name": "Cantabria", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/cantabria-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cantabria", + "source_size_bytes": 35204298, + "west": -4.861622, + "south": 42.75458, + "east": -3.144983, + "north": 43.86548, + "asset_name": "occumed-cantabria.pmtiles", + "metadata_name": "occumed-cantabria.json" + }, + { + "id": "cape-verde", + "slug": "cape-verde", + "name": "Cape Verde", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/cape-verde-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cape-verde", + "source_size_bytes": 11677631, + "west": -26.32379, + "south": 14.00485, + "east": -21.39096, + "north": 18.005, + "asset_name": "occumed-cape-verde.pmtiles", + "metadata_name": "occumed-cape-verde.json" + }, + { + "id": "castilla-la-mancha", + "slug": "castilla-la-mancha", + "name": "Castilla-La Mancha", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/castilla-la-mancha-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "castilla-la-mancha", + "source_size_bytes": 104784767, + "west": -5.41111, + "south": 38.0201, + "east": -0.912552, + "north": 41.33223, + "asset_name": "occumed-castilla-la-mancha.pmtiles", + "metadata_name": "occumed-castilla-la-mancha.json" + }, + { + "id": "castilla-y-leon", + "slug": "castilla-y-leon", + "name": "Castilla y León", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/castilla-y-leon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "castilla-y-leon", + "source_size_bytes": 173654523, + "west": -7.080517, + "south": 40.08044, + "east": -1.766053, + "north": 43.24095, + "asset_name": "occumed-castilla-y-leon.pmtiles", + "metadata_name": "occumed-castilla-y-leon.json" + }, + { + "id": "cataluna", + "slug": "cataluna", + "name": "Cataluña", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/cataluna-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cataluna", + "source_size_bytes": 266052489, + "west": 0.156383, + "south": 40.21245, + "east": 4.174794, + "north": 42.8632, + "asset_name": "occumed-cataluna.pmtiles", + "metadata_name": "occumed-cataluna.json" + }, + { + "id": "central-african-republic", + "slug": "central-african-republic", + "name": "Central African Republic", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/central-african-republic-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "central-african-republic", + "source_size_bytes": 99356086, + "west": 14.40908, + "south": 2.208735, + "east": 27.47578, + "north": 11.03264, + "asset_name": "occumed-central-african-republic.pmtiles", + "metadata_name": "occumed-central-african-republic.json" + }, + { + "id": "central-fed-district--r1-c1", + "slug": "central-fed-district--r1-c1", + "name": "Central Federal District 1.1", + "continent": "central-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/central-fed-district-latest.osm.pbf", + "extract_bbox": "30.69976,49.50446,39.184995,54.57888", + "source_region_id": "central-fed-district", + "source_size_bytes": 870284469, + "west": 30.69976, + "south": 49.50446, + "east": 39.184995, + "north": 54.57888, + "asset_name": "occumed-central-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-central-fed-district--r1-c1.json" + }, + { + "id": "central-fed-district--r1-c2", + "slug": "central-fed-district--r1-c2", + "name": "Central Federal District 1.2", + "continent": "central-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/central-fed-district-latest.osm.pbf", + "extract_bbox": "39.184995,49.50446,47.67023,54.57888", + "source_region_id": "central-fed-district", + "source_size_bytes": 870284469, + "west": 39.184995, + "south": 49.50446, + "east": 47.67023, + "north": 54.57888, + "asset_name": "occumed-central-fed-district--r1-c2.pmtiles", + "metadata_name": "occumed-central-fed-district--r1-c2.json" + }, + { + "id": "central-fed-district--r2-c1", + "slug": "central-fed-district--r2-c1", + "name": "Central Federal District 2.1", + "continent": "central-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/central-fed-district-latest.osm.pbf", + "extract_bbox": "30.69976,54.57888,39.184995,59.6533", + "source_region_id": "central-fed-district", + "source_size_bytes": 870284469, + "west": 30.69976, + "south": 54.57888, + "east": 39.184995, + "north": 59.6533, + "asset_name": "occumed-central-fed-district--r2-c1.pmtiles", + "metadata_name": "occumed-central-fed-district--r2-c1.json" + }, + { + "id": "central-fed-district--r2-c2", + "slug": "central-fed-district--r2-c2", + "name": "Central Federal District 2.2", + "continent": "central-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/central-fed-district-latest.osm.pbf", + "extract_bbox": "39.184995,54.57888,47.67023,59.6533", + "source_region_id": "central-fed-district", + "source_size_bytes": 870284469, + "west": 39.184995, + "south": 54.57888, + "east": 47.67023, + "north": 59.6533, + "asset_name": "occumed-central-fed-district--r2-c2.pmtiles", + "metadata_name": "occumed-central-fed-district--r2-c2.json" + }, + { + "id": "central-zone", + "slug": "central-zone", + "name": "Central Zone", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/central-zone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "central-zone", + "source_size_bytes": 350139586, + "west": 74.01489, + "south": 17.77092, + "east": 84.64657, + "north": 31.49075, + "asset_name": "occumed-central-zone.pmtiles", + "metadata_name": "occumed-central-zone.json" + }, + { + "id": "centre", + "slug": "centre", + "name": "Centre", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/centre-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "centre", + "source_size_bytes": 241299460, + "west": 0.051538, + "south": 46.34591, + "east": 3.129925, + "north": 48.9423, + "asset_name": "occumed-centre.pmtiles", + "metadata_name": "occumed-centre.json" + }, + { + "id": "centro", + "slug": "centro", + "name": "Centro", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/centro-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "centro", + "source_size_bytes": 380912140, + "west": 9.306459, + "south": 40.21443, + "east": 14.66855, + "north": 44.4797, + "asset_name": "occumed-centro.pmtiles", + "metadata_name": "occumed-centro.json" + }, + { + "id": "centro-oeste", + "slug": "centro-oeste", + "name": "Centro-Oeste", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/centro-oeste-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "centro-oeste", + "source_size_bytes": 200549092, + "west": -61.66496, + "south": -24.18381, + "east": -45.87758, + "north": -7.317334, + "asset_name": "occumed-centro-oeste.pmtiles", + "metadata_name": "occumed-centro-oeste.json" + }, + { + "id": "ceuta", + "slug": "ceuta", + "name": "Ceuta", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/ceuta-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ceuta", + "source_size_bytes": 588629, + "west": -5.391024, + "south": 35.86702, + "east": -5.256615, + "north": 35.95869, + "asset_name": "occumed-ceuta.pmtiles", + "metadata_name": "occumed-ceuta.json" + }, + { + "id": "chad", + "slug": "chad", + "name": "Chad", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/chad-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "chad", + "source_size_bytes": 134579040, + "west": 13.40129, + "south": 7.428518, + "east": 24.02527, + "north": 23.53793, + "asset_name": "occumed-chad.pmtiles", + "metadata_name": "occumed-chad.json" + }, + { + "id": "champagne-ardenne", + "slug": "champagne-ardenne", + "name": "Champagne Ardenne", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/champagne-ardenne-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "champagne-ardenne", + "source_size_bytes": 104693596, + "west": 3.382419, + "south": 47.57553, + "east": 5.892182, + "north": 50.17007, + "asset_name": "occumed-champagne-ardenne.pmtiles", + "metadata_name": "occumed-champagne-ardenne.json" + }, + { + "id": "cheshire", + "slug": "cheshire", + "name": "Cheshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/cheshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cheshire", + "source_size_bytes": 37799604, + "west": -3.129775, + "south": 52.94553, + "east": -1.973135, + "north": 53.48263, + "asset_name": "occumed-cheshire.pmtiles", + "metadata_name": "occumed-cheshire.json" + }, + { + "id": "chile", + "slug": "chile", + "name": "Chile", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/chile-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "chile", + "source_size_bytes": 345243480, + "west": -113.2233, + "south": -58.45195, + "east": -65.5141, + "north": -17.45743, + "asset_name": "occumed-chile.pmtiles", + "metadata_name": "occumed-chile.json" + }, + { + "id": "chongqing", + "slug": "chongqing", + "name": "Chongqing", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/chongqing-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "chongqing", + "source_size_bytes": 30539620, + "west": 105.283, + "south": 28.15132, + "east": 110.2004, + "north": 32.20641, + "asset_name": "occumed-chongqing.pmtiles", + "metadata_name": "occumed-chongqing.json" + }, + { + "id": "christmas-island", + "slug": "christmas-island", + "name": "Christmas Island", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/christmas-island-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "christmas-island", + "source_size_bytes": 220771, + "west": 105.2993, + "south": -10.82656, + "east": 105.9946, + "north": -10.171, + "asset_name": "occumed-christmas-island.pmtiles", + "metadata_name": "occumed-christmas-island.json" + }, + { + "id": "chubu--r1-c1", + "slug": "chubu--r1-c1", + "name": "Chūbu region 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chubu-latest.osm.pbf", + "extract_bbox": "135.4393,34.26649,137.67415,36.58683", + "source_region_id": "chubu", + "source_size_bytes": 506530075, + "west": 135.4393, + "south": 34.26649, + "east": 137.67415, + "north": 36.58683, + "asset_name": "occumed-chubu--r1-c1.pmtiles", + "metadata_name": "occumed-chubu--r1-c1.json" + }, + { + "id": "chubu--r1-c2", + "slug": "chubu--r1-c2", + "name": "Chūbu region 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chubu-latest.osm.pbf", + "extract_bbox": "137.67415,34.26649,139.909,36.58683", + "source_region_id": "chubu", + "source_size_bytes": 506530075, + "west": 137.67415, + "south": 34.26649, + "east": 139.909, + "north": 36.58683, + "asset_name": "occumed-chubu--r1-c2.pmtiles", + "metadata_name": "occumed-chubu--r1-c2.json" + }, + { + "id": "chubu--r2-c1", + "slug": "chubu--r2-c1", + "name": "Chūbu region 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chubu-latest.osm.pbf", + "extract_bbox": "135.4393,36.58683,137.67415,38.90717", + "source_region_id": "chubu", + "source_size_bytes": 506530075, + "west": 135.4393, + "south": 36.58683, + "east": 137.67415, + "north": 38.90717, + "asset_name": "occumed-chubu--r2-c1.pmtiles", + "metadata_name": "occumed-chubu--r2-c1.json" + }, + { + "id": "chubu--r2-c2", + "slug": "chubu--r2-c2", + "name": "Chūbu region 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chubu-latest.osm.pbf", + "extract_bbox": "137.67415,36.58683,139.909,38.90717", + "source_region_id": "chubu", + "source_size_bytes": 506530075, + "west": 137.67415, + "south": 36.58683, + "east": 139.909, + "north": 38.90717, + "asset_name": "occumed-chubu--r2-c2.pmtiles", + "metadata_name": "occumed-chubu--r2-c2.json" + }, + { + "id": "chugoku", + "slug": "chugoku", + "name": "Chūgoku region", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/chugoku-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "chugoku", + "source_size_bytes": 227897833, + "west": 129.8975, + "south": 33.54225, + "east": 134.5244, + "north": 36.9681, + "asset_name": "occumed-chugoku.pmtiles", + "metadata_name": "occumed-chugoku.json" + }, + { + "id": "cocos-islands", + "slug": "cocos-islands", + "name": "Cocos (Keeling) Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/cocos-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cocos-islands", + "source_size_bytes": 264306, + "west": 96.45345, + "south": -12.5527, + "east": 97.24842, + "north": -11.54681, + "asset_name": "occumed-cocos-islands.pmtiles", + "metadata_name": "occumed-cocos-islands.json" + }, + { + "id": "colombia", + "slug": "colombia", + "name": "Colombia", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/colombia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "colombia", + "source_size_bytes": 322628515, + "west": -83.23104, + "south": -4.25732, + "east": -66.81472, + "north": 16.41924, + "asset_name": "occumed-colombia.pmtiles", + "metadata_name": "occumed-colombia.json" + }, + { + "id": "comores", + "slug": "comores", + "name": "Comores", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/comores-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "comores", + "source_size_bytes": 3974879, + "west": 42.74981, + "south": -12.969, + "east": 45.59661, + "north": -10.74181, + "asset_name": "occumed-comores.pmtiles", + "metadata_name": "occumed-comores.json" + }, + { + "id": "congo-brazzaville", + "slug": "congo-brazzaville", + "name": "Congo (Republic/Brazzaville)", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-brazzaville-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "congo-brazzaville", + "source_size_bytes": 32334935, + "west": 10.94417, + "south": -5.195885, + "east": 18.66783, + "north": 3.740932, + "asset_name": "occumed-congo-brazzaville.pmtiles", + "metadata_name": "occumed-congo-brazzaville.json" + }, + { + "id": "congo-democratic-republic--r1-c1", + "slug": "congo-democratic-republic--r1-c1", + "name": "Congo (Democratic Republic/Kinshasa) 1.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "11.88343,-13.5006,18.367517,-4.049602", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414259701, + "west": 11.88343, + "south": -13.5006, + "east": 18.367517, + "north": -4.049602, + "asset_name": "occumed-congo-democratic-republic--r1-c1.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r1-c1.json" + }, + { + "id": "congo-democratic-republic--r1-c2", + "slug": "congo-democratic-republic--r1-c2", + "name": "Congo (Democratic Republic/Kinshasa) 1.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "18.367517,-13.5006,24.851603,-4.049602", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414259701, + "west": 18.367517, + "south": -13.5006, + "east": 24.851603, + "north": -4.049602, + "asset_name": "occumed-congo-democratic-republic--r1-c2.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r1-c2.json" + }, + { + "id": "congo-democratic-republic--r1-c3", + "slug": "congo-democratic-republic--r1-c3", + "name": "Congo (Democratic Republic/Kinshasa) 1.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "24.851603,-13.5006,31.33569,-4.049602", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414259701, + "west": 24.851603, + "south": -13.5006, + "east": 31.33569, + "north": -4.049602, + "asset_name": "occumed-congo-democratic-republic--r1-c3.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r1-c3.json" + }, + { + "id": "congo-democratic-republic--r2-c1", + "slug": "congo-democratic-republic--r2-c1", + "name": "Congo (Democratic Republic/Kinshasa) 2.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "11.88343,-4.049602,18.367517,5.401396", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414259701, + "west": 11.88343, + "south": -4.049602, + "east": 18.367517, + "north": 5.401396, + "asset_name": "occumed-congo-democratic-republic--r2-c1.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r2-c1.json" + }, + { + "id": "congo-democratic-republic--r2-c2", + "slug": "congo-democratic-republic--r2-c2", + "name": "Congo (Democratic Republic/Kinshasa) 2.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "18.367517,-4.049602,24.851603,5.401396", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414259701, + "west": 18.367517, + "south": -4.049602, + "east": 24.851603, + "north": 5.401396, + "asset_name": "occumed-congo-democratic-republic--r2-c2.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r2-c2.json" + }, + { + "id": "congo-democratic-republic--r2-c3", + "slug": "congo-democratic-republic--r2-c3", + "name": "Congo (Democratic Republic/Kinshasa) 2.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/congo-democratic-republic-latest.osm.pbf", + "extract_bbox": "24.851603,-4.049602,31.33569,5.401396", + "source_region_id": "congo-democratic-republic", + "source_size_bytes": 414259701, + "west": 24.851603, + "south": -4.049602, + "east": 31.33569, + "north": 5.401396, + "asset_name": "occumed-congo-democratic-republic--r2-c3.pmtiles", + "metadata_name": "occumed-congo-democratic-republic--r2-c3.json" + }, + { + "id": "cook-islands", + "slug": "cook-islands", + "name": "Cook Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/cook-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cook-islands", + "source_size_bytes": 960299, + "west": -168.4661, + "south": -25.28867, + "east": -154.8056, + "north": -5.800506, + "asset_name": "occumed-cook-islands.pmtiles", + "metadata_name": "occumed-cook-islands.json" + }, + { + "id": "coral-sea-islands", + "slug": "coral-sea-islands", + "name": "Coral Sea Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/coral-sea-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "coral-sea-islands", + "source_size_bytes": 180607, + "west": 146.8651, + "south": -30.57831, + "east": 160.4218, + "north": -14.98146, + "asset_name": "occumed-coral-sea-islands.pmtiles", + "metadata_name": "occumed-coral-sea-islands.json" + }, + { + "id": "cornwall", + "slug": "cornwall", + "name": "Cornwall", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/cornwall-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cornwall", + "source_size_bytes": 33706042, + "west": -6.820424, + "south": 49.57808, + "east": -4.146631, + "north": 50.93213, + "asset_name": "occumed-cornwall.pmtiles", + "metadata_name": "occumed-cornwall.json" + }, + { + "id": "corse", + "slug": "corse", + "name": "Corse", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/corse-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "corse", + "source_size_bytes": 33970497, + "west": 8.317882, + "south": 41.31103, + "east": 9.751243, + "north": 43.16589, + "asset_name": "occumed-corse.pmtiles", + "metadata_name": "occumed-corse.json" + }, + { + "id": "costa-rica", + "slug": "costa-rica", + "name": "Costa Rica", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/costa-rica-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "costa-rica", + "source_size_bytes": 38784723, + "west": -87.82473, + "south": 4.937746, + "east": -82.34952, + "north": 11.2237, + "asset_name": "occumed-costa-rica.pmtiles", + "metadata_name": "occumed-costa-rica.json" + }, + { + "id": "crimean-fed-district", + "slug": "crimean-fed-district", + "name": "Crimean Federal District", + "continent": "crimean-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/crimean-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "crimean-fed-district", + "source_size_bytes": 40346078, + "west": 32.15053, + "south": 44.13411, + "east": 36.68355, + "north": 46.28118, + "asset_name": "occumed-crimean-fed-district.pmtiles", + "metadata_name": "occumed-crimean-fed-district.json" + }, + { + "id": "croatia", + "slug": "croatia", + "name": "Croatia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/croatia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "croatia", + "source_size_bytes": 197808009, + "west": 13.08916, + "south": 42.16483, + "east": 19.45997, + "north": 46.55756, + "asset_name": "occumed-croatia.pmtiles", + "metadata_name": "occumed-croatia.json" + }, + { + "id": "cuba", + "slug": "cuba", + "name": "Cuba", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/cuba-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cuba", + "source_size_bytes": 61064323, + "west": -85.4242, + "south": 19.2533, + "east": -73.70831, + "north": 23.60427, + "asset_name": "occumed-cuba.pmtiles", + "metadata_name": "occumed-cuba.json" + }, + { + "id": "cumbria", + "slug": "cumbria", + "name": "Cumbria", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/cumbria-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cumbria", + "source_size_bytes": 45210862, + "west": -3.907471, + "south": 53.90063, + "east": -2.159588, + "north": 55.18863, + "asset_name": "occumed-cumbria.pmtiles", + "metadata_name": "occumed-cumbria.json" + }, + { + "id": "cyprus", + "slug": "cyprus", + "name": "Cyprus", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/cyprus-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "cyprus", + "source_size_bytes": 36834082, + "west": 31.95244, + "south": 34.23374, + "east": 34.96147, + "north": 36.00323, + "asset_name": "occumed-cyprus.pmtiles", + "metadata_name": "occumed-cyprus.json" + }, + { + "id": "denmark--r1-c1", + "slug": "denmark--r1-c1", + "name": "Denmark 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "7.7011,54.44065,10.35223,56.25152", + "source_region_id": "denmark", + "source_size_bytes": 491717067, + "west": 7.7011, + "south": 54.44065, + "east": 10.35223, + "north": 56.25152, + "asset_name": "occumed-denmark--r1-c1.pmtiles", + "metadata_name": "occumed-denmark--r1-c1.json" + }, + { + "id": "denmark--r1-c2", + "slug": "denmark--r1-c2", + "name": "Denmark 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "10.35223,54.44065,13.00336,56.25152", + "source_region_id": "denmark", + "source_size_bytes": 491717067, + "west": 10.35223, + "south": 54.44065, + "east": 13.00336, + "north": 56.25152, + "asset_name": "occumed-denmark--r1-c2.pmtiles", + "metadata_name": "occumed-denmark--r1-c2.json" + }, + { + "id": "denmark--r1-c3", + "slug": "denmark--r1-c3", + "name": "Denmark 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "13.00336,54.44065,15.65449,56.25152", + "source_region_id": "denmark", + "source_size_bytes": 491717067, + "west": 13.00336, + "south": 54.44065, + "east": 15.65449, + "north": 56.25152, + "asset_name": "occumed-denmark--r1-c3.pmtiles", + "metadata_name": "occumed-denmark--r1-c3.json" + }, + { + "id": "denmark--r2-c1", + "slug": "denmark--r2-c1", + "name": "Denmark 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "7.7011,56.25152,10.35223,58.06239", + "source_region_id": "denmark", + "source_size_bytes": 491717067, + "west": 7.7011, + "south": 56.25152, + "east": 10.35223, + "north": 58.06239, + "asset_name": "occumed-denmark--r2-c1.pmtiles", + "metadata_name": "occumed-denmark--r2-c1.json" + }, + { + "id": "denmark--r2-c2", + "slug": "denmark--r2-c2", + "name": "Denmark 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "10.35223,56.25152,13.00336,58.06239", + "source_region_id": "denmark", + "source_size_bytes": 491717067, + "west": 10.35223, + "south": 56.25152, + "east": 13.00336, + "north": 58.06239, + "asset_name": "occumed-denmark--r2-c2.pmtiles", + "metadata_name": "occumed-denmark--r2-c2.json" + }, + { + "id": "denmark--r2-c3", + "slug": "denmark--r2-c3", + "name": "Denmark 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/denmark-latest.osm.pbf", + "extract_bbox": "13.00336,56.25152,15.65449,58.06239", + "source_region_id": "denmark", + "source_size_bytes": 491717067, + "west": 13.00336, + "south": 56.25152, + "east": 15.65449, + "north": 58.06239, + "asset_name": "occumed-denmark--r2-c3.pmtiles", + "metadata_name": "occumed-denmark--r2-c3.json" + }, + { + "id": "derbyshire", + "slug": "derbyshire", + "name": "Derbyshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/derbyshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "derbyshire", + "source_size_bytes": 43475029, + "west": -2.035756, + "south": 52.6955, + "east": -1.164792, + "north": 53.54172, + "asset_name": "occumed-derbyshire.pmtiles", + "metadata_name": "occumed-derbyshire.json" + }, + { + "id": "detmold-regbez", + "slug": "detmold-regbez", + "name": "Regierungsbezirk Detmold", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/nordrhein-westfalen/detmold-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "detmold-regbez", + "source_size_bytes": 135345962, + "west": 8.074053, + "south": 51.4369, + "east": 9.468311, + "north": 52.53345, + "asset_name": "occumed-detmold-regbez.pmtiles", + "metadata_name": "occumed-detmold-regbez.json" + }, + { + "id": "devon", + "slug": "devon", + "name": "Devon", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/devon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "devon", + "source_size_bytes": 57345331, + "west": -4.752335, + "south": 50.11104, + "east": -2.881604, + "north": 51.30895, + "asset_name": "occumed-devon.pmtiles", + "metadata_name": "occumed-devon.json" + }, + { + "id": "djibouti", + "slug": "djibouti", + "name": "Djibouti", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/djibouti-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "djibouti", + "source_size_bytes": 7002194, + "west": 41.76177, + "south": 10.88824, + "east": 43.84569, + "north": 12.82615, + "asset_name": "occumed-djibouti.pmtiles", + "metadata_name": "occumed-djibouti.json" + }, + { + "id": "dolnoslaskie", + "slug": "dolnoslaskie", + "name": "Województwo dolnośląskie
(Lower Silesian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/dolnoslaskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "dolnoslaskie", + "source_size_bytes": 178540953, + "west": 14.80839, + "south": 50.08251, + "east": 17.80584, + "north": 51.81417, + "asset_name": "occumed-dolnoslaskie.pmtiles", + "metadata_name": "occumed-dolnoslaskie.json" + }, + { + "id": "dorset", + "slug": "dorset", + "name": "Dorset", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/dorset-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "dorset", + "source_size_bytes": 29957430, + "west": -2.962969, + "south": 50.49829, + "east": -1.680036, + "north": 51.0827, + "asset_name": "occumed-dorset.pmtiles", + "metadata_name": "occumed-dorset.json" + }, + { + "id": "drenthe", + "slug": "drenthe", + "name": "Drenthe", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/drenthe-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "drenthe", + "source_size_bytes": 62870242, + "west": 6.118592, + "south": 52.61093, + "east": 7.095411, + "north": 53.20513, + "asset_name": "occumed-drenthe.pmtiles", + "metadata_name": "occumed-drenthe.json" + }, + { + "id": "duesseldorf-regbez", + "slug": "duesseldorf-regbez", + "name": "Regierungsbezirk Düsseldorf", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/nordrhein-westfalen/duesseldorf-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "duesseldorf-regbez", + "source_size_bytes": 214754973, + "west": 5.941466, + "south": 51.01422, + "east": 7.314306, + "north": 51.90781, + "asset_name": "occumed-duesseldorf-regbez.pmtiles", + "metadata_name": "occumed-duesseldorf-regbez.json" + }, + { + "id": "durham", + "slug": "durham", + "name": "Durham", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/durham-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "durham", + "source_size_bytes": 23236960, + "west": -2.356677, + "south": 54.4502, + "east": -1.101584, + "north": 54.91986, + "asset_name": "occumed-durham.pmtiles", + "metadata_name": "occumed-durham.json" + }, + { + "id": "east-sussex", + "slug": "east-sussex", + "name": "East Sussex", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/east-sussex-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "east-sussex", + "source_size_bytes": 21099984, + "west": -0.136786, + "south": 50.69996, + "east": 0.869466, + "north": 51.14781, + "asset_name": "occumed-east-sussex.pmtiles", + "metadata_name": "occumed-east-sussex.json" + }, + { + "id": "east-timor", + "slug": "east-timor", + "name": "East Timor", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/east-timor-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "east-timor", + "source_size_bytes": 17763185, + "west": 123.7912, + "south": -9.690103, + "east": 127.5911, + "north": -8.057869, + "asset_name": "occumed-east-timor.pmtiles", + "metadata_name": "occumed-east-timor.json" + }, + { + "id": "east-yorkshire-with-hull", + "slug": "east-yorkshire-with-hull", + "name": "East Yorkshire with Hull", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/east-yorkshire-with-hull-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "east-yorkshire-with-hull", + "source_size_bytes": 19208627, + "west": -1.105174, + "south": 53.55447, + "east": 0.48944, + "north": 54.21045, + "asset_name": "occumed-east-yorkshire-with-hull.pmtiles", + "metadata_name": "occumed-east-yorkshire-with-hull.json" + }, + { + "id": "eastern-zone", + "slug": "eastern-zone", + "name": "Eastern Zone", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/eastern-zone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "eastern-zone", + "source_size_bytes": 246280106, + "west": 81.36749, + "south": 17.78056, + "east": 89.91829, + "north": 27.52837, + "asset_name": "occumed-eastern-zone.pmtiles", + "metadata_name": "occumed-eastern-zone.json" + }, + { + "id": "ecuador", + "slug": "ecuador", + "name": "Ecuador", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/ecuador-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ecuador", + "source_size_bytes": 124235248, + "west": -93.56487, + "south": -5.024173, + "east": -75.16149, + "north": 2.843487, + "asset_name": "occumed-ecuador.pmtiles", + "metadata_name": "occumed-ecuador.json" + }, + { + "id": "egypt", + "slug": "egypt", + "name": "Egypt", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/egypt-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "egypt", + "source_size_bytes": 177535501, + "west": 24.62628, + "south": 21.9838, + "east": 37.16263, + "north": 32.52518, + "asset_name": "occumed-egypt.pmtiles", + "metadata_name": "occumed-egypt.json" + }, + { + "id": "el-salvador", + "slug": "el-salvador", + "name": "El Salvador", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/el-salvador-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "el-salvador", + "source_size_bytes": 34802843, + "west": -90.50091, + "south": 12.03598, + "east": -87.58438, + "north": 14.45762, + "asset_name": "occumed-el-salvador.pmtiles", + "metadata_name": "occumed-el-salvador.json" + }, + { + "id": "enfield", + "slug": "enfield", + "name": "Enfield", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/london/enfield-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "enfield", + "source_size_bytes": 2940, + "west": -0.185433, + "south": 51.60542, + "east": -0.008839, + "north": 51.69193, + "asset_name": "occumed-enfield.pmtiles", + "metadata_name": "occumed-enfield.json" + }, + { + "id": "equatorial-guinea", + "slug": "equatorial-guinea", + "name": "Equatorial Guinea", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/equatorial-guinea-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "equatorial-guinea", + "source_size_bytes": 6522068, + "west": 5.165631, + "south": -1.792669, + "east": 11.42338, + "north": 4.147134, + "asset_name": "occumed-equatorial-guinea.pmtiles", + "metadata_name": "occumed-equatorial-guinea.json" + }, + { + "id": "eritrea", + "slug": "eritrea", + "name": "Eritrea", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/eritrea-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "eritrea", + "source_size_bytes": 31016504, + "west": 36.4207, + "south": 12.34385, + "east": 43.33233, + "north": 18.32962, + "asset_name": "occumed-eritrea.pmtiles", + "metadata_name": "occumed-eritrea.json" + }, + { + "id": "essex", + "slug": "essex", + "name": "Essex", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/essex-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "essex", + "source_size_bytes": 49267277, + "west": -0.019651, + "south": 51.45008, + "east": 1.307251, + "north": 52.09464, + "asset_name": "occumed-essex.pmtiles", + "metadata_name": "occumed-essex.json" + }, + { + "id": "estonia", + "slug": "estonia", + "name": "Estonia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/estonia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "estonia", + "source_size_bytes": 121649796, + "west": 20.85166, + "south": 57.49764, + "east": 28.21426, + "north": 59.99705, + "asset_name": "occumed-estonia.pmtiles", + "metadata_name": "occumed-estonia.json" + }, + { + "id": "ethiopia", + "slug": "ethiopia", + "name": "Ethiopia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/ethiopia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ethiopia", + "source_size_bytes": 138950496, + "west": 32.96722, + "south": 3.389192, + "east": 48.00545, + "north": 14.91626, + "asset_name": "occumed-ethiopia.pmtiles", + "metadata_name": "occumed-ethiopia.json" + }, + { + "id": "extremadura", + "slug": "extremadura", + "name": "Extremadura", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/extremadura-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "extremadura", + "source_size_bytes": 39530126, + "west": -7.54369, + "south": 37.93851, + "east": -4.64241, + "north": 40.48913, + "asset_name": "occumed-extremadura.pmtiles", + "metadata_name": "occumed-extremadura.json" + }, + { + "id": "falklands", + "slug": "falklands", + "name": "Falkland Islands", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/falklands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "falklands", + "source_size_bytes": 5517304, + "west": -62.20142, + "south": -53.40604, + "east": -56.44453, + "north": -50.67405, + "asset_name": "occumed-falklands.pmtiles", + "metadata_name": "occumed-falklands.json" + }, + { + "id": "far-eastern-fed-district", + "slug": "far-eastern-fed-district", + "name": "Far Eastern Federal District", + "continent": "far-eastern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/far-eastern-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "far-eastern-fed-district", + "source_size_bytes": 382069908, + "west": 105.4219, + "south": 37.34659, + "east": -168.6841, + "north": 82.00023, + "asset_name": "occumed-far-eastern-fed-district.pmtiles", + "metadata_name": "occumed-far-eastern-fed-district.json" + }, + { + "id": "faroe-islands", + "slug": "faroe-islands", + "name": "Faroe Islands", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/faroe-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "faroe-islands", + "source_size_bytes": 7720380, + "west": -8.690197, + "south": 60.86632, + "east": -5.515148, + "north": 62.90523, + "asset_name": "occumed-faroe-islands.pmtiles", + "metadata_name": "occumed-faroe-islands.json" + }, + { + "id": "fiji", + "slug": "fiji", + "name": "Fiji", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/fiji-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "fiji", + "source_size_bytes": 17220346, + "west": 172.7647, + "south": -25.08127, + "east": -176.2675, + "north": -9.783321, + "asset_name": "occumed-fiji.pmtiles", + "metadata_name": "occumed-fiji.json" + }, + { + "id": "finland--r1-c1", + "slug": "finland--r1-c1", + "name": "Finland 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/finland-latest.osm.pbf", + "extract_bbox": "19.02427,59.28783,25.320085,64.69371", + "source_region_id": "finland", + "source_size_bytes": 736323969, + "west": 19.02427, + "south": 59.28783, + "east": 25.320085, + "north": 64.69371, + "asset_name": "occumed-finland--r1-c1.pmtiles", + "metadata_name": "occumed-finland--r1-c1.json" + }, + { + "id": "finland--r1-c2", + "slug": "finland--r1-c2", + "name": "Finland 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/finland-latest.osm.pbf", + "extract_bbox": "25.320085,59.28783,31.6159,64.69371", + "source_region_id": "finland", + "source_size_bytes": 736323969, + "west": 25.320085, + "south": 59.28783, + "east": 31.6159, + "north": 64.69371, + "asset_name": "occumed-finland--r1-c2.pmtiles", + "metadata_name": "occumed-finland--r1-c2.json" + }, + { + "id": "finland--r2-c1", + "slug": "finland--r2-c1", + "name": "Finland 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/finland-latest.osm.pbf", + "extract_bbox": "19.02427,64.69371,25.320085,70.09959", + "source_region_id": "finland", + "source_size_bytes": 736323969, + "west": 19.02427, + "south": 64.69371, + "east": 25.320085, + "north": 70.09959, + "asset_name": "occumed-finland--r2-c1.pmtiles", + "metadata_name": "occumed-finland--r2-c1.json" + }, + { + "id": "finland--r2-c2", + "slug": "finland--r2-c2", + "name": "Finland 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/finland-latest.osm.pbf", + "extract_bbox": "25.320085,64.69371,31.6159,70.09959", + "source_region_id": "finland", + "source_size_bytes": 736323969, + "west": 25.320085, + "south": 64.69371, + "east": 31.6159, + "north": 70.09959, + "asset_name": "occumed-finland--r2-c2.pmtiles", + "metadata_name": "occumed-finland--r2-c2.json" + }, + { + "id": "flevoland", + "slug": "flevoland", + "name": "Flevoland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/flevoland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "flevoland", + "source_size_bytes": 34417472, + "west": 5.059593, + "south": 52.24826, + "east": 6.018276, + "north": 52.84516, + "asset_name": "occumed-flevoland.pmtiles", + "metadata_name": "occumed-flevoland.json" + }, + { + "id": "franche-comte", + "slug": "franche-comte", + "name": "Franche Comte", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/franche-comte-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "franche-comte", + "source_size_bytes": 123573775, + "west": 5.25076, + "south": 46.25975, + "east": 7.14439, + "north": 48.02537, + "asset_name": "occumed-franche-comte.pmtiles", + "metadata_name": "occumed-franche-comte.json" + }, + { + "id": "freiburg-regbez", + "slug": "freiburg-regbez", + "name": "Regierungsbezirk Freiburg", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/baden-wuerttemberg/freiburg-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "freiburg-regbez", + "source_size_bytes": 158129106, + "west": 7.506494, + "south": 47.53076, + "east": 9.246965, + "north": 48.72373, + "asset_name": "occumed-freiburg-regbez.pmtiles", + "metadata_name": "occumed-freiburg-regbez.json" + }, + { + "id": "friesland", + "slug": "friesland", + "name": "Friesland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/friesland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "friesland", + "source_size_bytes": 88175741, + "west": 4.597294, + "south": 52.76362, + "east": 6.428358, + "north": 53.68089, + "asset_name": "occumed-friesland.pmtiles", + "metadata_name": "occumed-friesland.json" + }, + { + "id": "fujian", + "slug": "fujian", + "name": "Fujian", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/fujian-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "fujian", + "source_size_bytes": 41421696, + "west": 115.8409, + "south": 23.18252, + "east": 121.6277, + "north": 28.32237, + "asset_name": "occumed-fujian.pmtiles", + "metadata_name": "occumed-fujian.json" + }, + { + "id": "gabon", + "slug": "gabon", + "name": "Gabon", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/gabon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "gabon", + "source_size_bytes": 25354767, + "west": 7.389727, + "south": -5.995799, + "east": 14.55139, + "north": 2.325716, + "asset_name": "occumed-gabon.pmtiles", + "metadata_name": "occumed-gabon.json" + }, + { + "id": "galicia", + "slug": "galicia", + "name": "Galicia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/galicia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "galicia", + "source_size_bytes": 110119952, + "west": -9.779014, + "south": 41.80443, + "east": -6.727066, + "north": 44.14855, + "asset_name": "occumed-galicia.pmtiles", + "metadata_name": "occumed-galicia.json" + }, + { + "id": "gansu", + "slug": "gansu", + "name": "Gansu", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/gansu-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "gansu", + "source_size_bytes": 56618734, + "west": 92.29907, + "south": 32.58438, + "east": 108.7193, + "north": 42.81354, + "asset_name": "occumed-gansu.pmtiles", + "metadata_name": "occumed-gansu.json" + }, + { + "id": "gcc-states", + "slug": "gcc-states", + "name": "GCC States", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/gcc-states-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "gcc-states", + "source_size_bytes": 251781585, + "west": 34.43489, + "south": 15.24752, + "east": 60.94748, + "north": 32.19653, + "asset_name": "occumed-gcc-states.pmtiles", + "metadata_name": "occumed-gcc-states.json" + }, + { + "id": "gelderland", + "slug": "gelderland", + "name": "Gelderland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/gelderland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "gelderland", + "source_size_bytes": 193935279, + "west": 4.992647, + "south": 51.73231, + "east": 6.835752, + "north": 52.52322, + "asset_name": "occumed-gelderland.pmtiles", + "metadata_name": "occumed-gelderland.json" + }, + { + "id": "georgia", + "slug": "georgia", + "name": "Georgia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/georgia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "georgia", + "source_size_bytes": 100307554, + "west": 39.88093, + "south": 41.05117, + "east": 46.73959, + "north": 43.5899, + "asset_name": "occumed-georgia.pmtiles", + "metadata_name": "occumed-georgia.json" + }, + { + "id": "ghana", + "slug": "ghana", + "name": "Ghana", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/ghana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ghana", + "source_size_bytes": 114151530, + "west": -3.807399, + "south": 3.704056, + "east": 1.394038, + "north": 11.17772, + "asset_name": "occumed-ghana.pmtiles", + "metadata_name": "occumed-ghana.json" + }, + { + "id": "gloucestershire", + "slug": "gloucestershire", + "name": "Gloucestershire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/gloucestershire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "gloucestershire", + "source_size_bytes": 40512716, + "west": -2.711909, + "south": 51.41465, + "east": -1.612605, + "north": 52.11556, + "asset_name": "occumed-gloucestershire.pmtiles", + "metadata_name": "occumed-gloucestershire.json" + }, + { + "id": "greater-manchester", + "slug": "greater-manchester", + "name": "Greater Manchester", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/greater-manchester-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "greater-manchester", + "source_size_bytes": 50521387, + "west": -2.732097, + "south": 53.32613, + "east": -1.90804, + "north": 53.68742, + "asset_name": "occumed-greater-manchester.pmtiles", + "metadata_name": "occumed-greater-manchester.json" + }, + { + "id": "greece", + "slug": "greece", + "name": "Greece", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/greece-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "greece", + "source_size_bytes": 338542701, + "west": 18.97064, + "south": 34.59111, + "east": 29.65683, + "north": 41.74954, + "asset_name": "occumed-greece.pmtiles", + "metadata_name": "occumed-greece.json" + }, + { + "id": "greenland", + "slug": "greenland", + "name": "Greenland", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/greenland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "greenland", + "source_size_bytes": 25629858, + "west": -75.3894, + "south": 58.67169, + "east": -9.454384, + "north": 84.44358, + "asset_name": "occumed-greenland.pmtiles", + "metadata_name": "occumed-greenland.json" + }, + { + "id": "groningen", + "slug": "groningen", + "name": "Groningen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/groningen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "groningen", + "source_size_bytes": 56285406, + "west": 6.166463, + "south": 52.83734, + "east": 7.230455, + "north": 53.65732, + "asset_name": "occumed-groningen.pmtiles", + "metadata_name": "occumed-groningen.json" + }, + { + "id": "guadeloupe", + "slug": "guadeloupe", + "name": "Guadeloupe", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/guadeloupe-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guadeloupe", + "source_size_bytes": 24201724, + "west": -62.15241, + "south": 15.49074, + "east": -60.60471, + "north": 16.82426, + "asset_name": "occumed-guadeloupe.pmtiles", + "metadata_name": "occumed-guadeloupe.json" + }, + { + "id": "guangdong", + "slug": "guangdong", + "name": "Guangdong (with Hong Kong and Macau)", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/guangdong-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guangdong", + "source_size_bytes": 169457924, + "west": 109.3565, + "south": 20.05851, + "east": 117.665, + "north": 25.52432, + "asset_name": "occumed-guangdong.pmtiles", + "metadata_name": "occumed-guangdong.json" + }, + { + "id": "guangxi", + "slug": "guangxi", + "name": "Guangxi", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/guangxi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guangxi", + "source_size_bytes": 51701520, + "west": 104.4419, + "south": 20.74224, + "east": 112.0654, + "north": 26.39648, + "asset_name": "occumed-guangxi.pmtiles", + "metadata_name": "occumed-guangxi.json" + }, + { + "id": "guatemala", + "slug": "guatemala", + "name": "Guatemala", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/guatemala-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guatemala", + "source_size_bytes": 131134388, + "west": -92.73303, + "south": 12.74168, + "east": -87.95177, + "north": 17.83533, + "asset_name": "occumed-guatemala.pmtiles", + "metadata_name": "occumed-guatemala.json" + }, + { + "id": "guernsey-jersey", + "slug": "guernsey-jersey", + "name": "Guernsey and Jersey", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/guernsey-jersey-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guernsey-jersey", + "source_size_bytes": 3879450, + "west": -3.573306, + "south": 49.00381, + "east": -1.791572, + "north": 50.06948, + "asset_name": "occumed-guernsey-jersey.pmtiles", + "metadata_name": "occumed-guernsey-jersey.json" + }, + { + "id": "guinea", + "slug": "guinea", + "name": "Guinea", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/guinea-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guinea", + "source_size_bytes": 117328647, + "west": -16.85708, + "south": 7.183332, + "east": -7.627259, + "north": 12.68322, + "asset_name": "occumed-guinea.pmtiles", + "metadata_name": "occumed-guinea.json" + }, + { + "id": "guinea-bissau", + "slug": "guinea-bissau", + "name": "Guinea-Bissau", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/guinea-bissau-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guinea-bissau", + "source_size_bytes": 11146893, + "west": -16.96427, + "south": 10.14494, + "east": -13.62923, + "north": 12.6936, + "asset_name": "occumed-guinea-bissau.pmtiles", + "metadata_name": "occumed-guinea-bissau.json" + }, + { + "id": "guizhou", + "slug": "guizhou", + "name": "Guizhou", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/guizhou-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guizhou", + "source_size_bytes": 28387486, + "west": 103.5982, + "south": 24.61706, + "east": 109.5594, + "north": 29.23204, + "asset_name": "occumed-guizhou.pmtiles", + "metadata_name": "occumed-guizhou.json" + }, + { + "id": "guyana", + "slug": "guyana", + "name": "Guyana", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/guyana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guyana", + "source_size_bytes": 15516444, + "west": -61.42101, + "south": 1.149369, + "east": -56.42321, + "north": 9.182536, + "asset_name": "occumed-guyana.pmtiles", + "metadata_name": "occumed-guyana.json" + }, + { + "id": "guyane", + "slug": "guyane", + "name": "Guyane", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/guyane-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "guyane", + "source_size_bytes": 14336405, + "west": -54.62299, + "south": 2.093117, + "east": -50.8667, + "north": 6.370288, + "asset_name": "occumed-guyane.pmtiles", + "metadata_name": "occumed-guyane.json" + }, + { + "id": "hainan", + "slug": "hainan", + "name": "Hainan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/hainan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hainan", + "source_size_bytes": 9779652, + "west": 108.3153, + "south": 14.29739, + "east": 118.4373, + "north": 20.40385, + "asset_name": "occumed-hainan.pmtiles", + "metadata_name": "occumed-hainan.json" + }, + { + "id": "haiti-and-domrep", + "slug": "haiti-and-domrep", + "name": "Haiti and Dominican Republic", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/haiti-and-domrep-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "haiti-and-domrep", + "source_size_bytes": 88407946, + "west": -74.82529, + "south": 16.99901, + "east": -68.05482, + "north": 21.45307, + "asset_name": "occumed-haiti-and-domrep.pmtiles", + "metadata_name": "occumed-haiti-and-domrep.json" + }, + { + "id": "hamburg", + "slug": "hamburg", + "name": "Hamburg", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/hamburg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hamburg", + "source_size_bytes": 53418038, + "west": 7.967833, + "south": 53.39183, + "east": 10.33196, + "north": 54.06261, + "asset_name": "occumed-hamburg.pmtiles", + "metadata_name": "occumed-hamburg.json" + }, + { + "id": "hampshire", + "slug": "hampshire", + "name": "Hampshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/hampshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hampshire", + "source_size_bytes": 61582407, + "west": -1.959101, + "south": 50.69041, + "east": -0.726306, + "north": 51.38712, + "asset_name": "occumed-hampshire.pmtiles", + "metadata_name": "occumed-hampshire.json" + }, + { + "id": "haute-normandie", + "slug": "haute-normandie", + "name": "Haute-Normandie", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/haute-normandie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "haute-normandie", + "source_size_bytes": 106090408, + "west": 0.009482, + "south": 48.66574, + "east": 1.803956, + "north": 50.08769, + "asset_name": "occumed-haute-normandie.pmtiles", + "metadata_name": "occumed-haute-normandie.json" + }, + { + "id": "heard-mcdonald", + "slug": "heard-mcdonald", + "name": "Heard Island and McDonald Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/heard-mcdonald-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "heard-mcdonald", + "source_size_bytes": 96420, + "west": 71.99912, + "south": -53.54549, + "east": 74.45294, + "north": -52.66308, + "asset_name": "occumed-heard-mcdonald.pmtiles", + "metadata_name": "occumed-heard-mcdonald.json" + }, + { + "id": "hebei", + "slug": "hebei", + "name": "Hebei (with Beijing and Tianjin)", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/hebei-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hebei", + "source_size_bytes": 106670345, + "west": 113.451, + "south": 36.04299, + "east": 119.9982, + "north": 42.62487, + "asset_name": "occumed-hebei.pmtiles", + "metadata_name": "occumed-hebei.json" + }, + { + "id": "heilongjiang", + "slug": "heilongjiang", + "name": "Heilongjiang", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/heilongjiang-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "heilongjiang", + "source_size_bytes": 36214822, + "west": 121.15, + "south": 43.41078, + "east": 134.8036, + "north": 53.65559, + "asset_name": "occumed-heilongjiang.pmtiles", + "metadata_name": "occumed-heilongjiang.json" + }, + { + "id": "henan", + "slug": "henan", + "name": "Henan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/henan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "henan", + "source_size_bytes": 48253362, + "west": 110.3458, + "south": 31.37805, + "east": 116.647, + "north": 36.36801, + "asset_name": "occumed-henan.pmtiles", + "metadata_name": "occumed-henan.json" + }, + { + "id": "herefordshire", + "slug": "herefordshire", + "name": "Herefordshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/herefordshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "herefordshire", + "source_size_bytes": 11119868, + "west": -3.142889, + "south": 51.82618, + "east": -2.338434, + "north": 52.39531, + "asset_name": "occumed-herefordshire.pmtiles", + "metadata_name": "occumed-herefordshire.json" + }, + { + "id": "hertfordshire", + "slug": "hertfordshire", + "name": "Hertfordshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/hertfordshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hertfordshire", + "source_size_bytes": 37942494, + "west": -0.746833, + "south": 51.59798, + "east": 0.197098, + "north": 52.08224, + "asset_name": "occumed-hertfordshire.pmtiles", + "metadata_name": "occumed-hertfordshire.json" + }, + { + "id": "hessen", + "slug": "hessen", + "name": "Hessen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/hessen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hessen", + "source_size_bytes": 342230114, + "west": 7.768021, + "south": 49.39321, + "east": 10.24595, + "north": 51.65916, + "asset_name": "occumed-hessen.pmtiles", + "metadata_name": "occumed-hessen.json" + }, + { + "id": "hokkaido", + "slug": "hokkaido", + "name": "Hokkaidō", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/hokkaido-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hokkaido", + "source_size_bytes": 187734902, + "west": 137.9346, + "south": 41.15098, + "east": 146.2476, + "north": 45.8154, + "asset_name": "occumed-hokkaido.pmtiles", + "metadata_name": "occumed-hokkaido.json" + }, + { + "id": "honduras", + "slug": "honduras", + "name": "Honduras", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/honduras-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "honduras", + "source_size_bytes": 73426393, + "west": -89.36005, + "south": 12.96943, + "east": -81.66138, + "north": 17.93171, + "asset_name": "occumed-honduras.pmtiles", + "metadata_name": "occumed-honduras.json" + }, + { + "id": "hong-kong", + "slug": "hong-kong", + "name": "Hong Kong", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/hong-kong-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hong-kong", + "source_size_bytes": 37353825, + "west": 113.813, + "south": 22.13041, + "east": 114.506, + "north": 22.56904, + "asset_name": "occumed-hong-kong.pmtiles", + "metadata_name": "occumed-hong-kong.json" + }, + { + "id": "hubei", + "slug": "hubei", + "name": "Hubei", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/hubei-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hubei", + "source_size_bytes": 55068169, + "west": 108.3597, + "south": 29.03006, + "east": 116.1361, + "north": 33.27343, + "asset_name": "occumed-hubei.pmtiles", + "metadata_name": "occumed-hubei.json" + }, + { + "id": "hunan", + "slug": "hunan", + "name": "Hunan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/hunan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hunan", + "source_size_bytes": 49724198, + "west": 108.7792, + "south": 24.63266, + "east": 114.2585, + "north": 30.138, + "asset_name": "occumed-hunan.pmtiles", + "metadata_name": "occumed-hunan.json" + }, + { + "id": "hungary", + "slug": "hungary", + "name": "Hungary", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/hungary-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "hungary", + "source_size_bytes": 320802288, + "west": 16.10845, + "south": 45.73207, + "east": 22.90649, + "north": 48.58921, + "asset_name": "occumed-hungary.pmtiles", + "metadata_name": "occumed-hungary.json" + }, + { + "id": "iceland", + "slug": "iceland", + "name": "Iceland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/iceland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "iceland", + "source_size_bytes": 64465805, + "west": -25.7, + "south": 62.84553, + "east": -12.41708, + "north": 67.50085, + "asset_name": "occumed-iceland.pmtiles", + "metadata_name": "occumed-iceland.json" + }, + { + "id": "ile-de-clipperton", + "slug": "ile-de-clipperton", + "name": "Île de Clipperton", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/ile-de-clipperton-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ile-de-clipperton", + "source_size_bytes": 42483, + "west": -110.1215, + "south": 9.595339, + "east": -108.3746, + "north": 11.15685, + "asset_name": "occumed-ile-de-clipperton.pmtiles", + "metadata_name": "occumed-ile-de-clipperton.json" + }, + { + "id": "ile-de-france", + "slug": "ile-de-france", + "name": "Ile-de-France", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/ile-de-france-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ile-de-france", + "source_size_bytes": 335711300, + "west": 1.445097, + "south": 48.11918, + "east": 3.560409, + "north": 49.24271, + "asset_name": "occumed-ile-de-france.pmtiles", + "metadata_name": "occumed-ile-de-france.json" + }, + { + "id": "inner-mongolia", + "slug": "inner-mongolia", + "name": "Inner Mongolia", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/inner-mongolia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "inner-mongolia", + "source_size_bytes": 41689627, + "west": 97.14328, + "south": 37.39962, + "east": 126.0767, + "north": 53.44515, + "asset_name": "occumed-inner-mongolia.pmtiles", + "metadata_name": "occumed-inner-mongolia.json" + }, + { + "id": "interior-admreg", + "slug": "interior-admreg", + "name": "Interior Administrative Region", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/interior-admreg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "interior-admreg", + "source_size_bytes": 162472973, + "west": -128.8637, + "south": 49.60359, + "east": -118.7691, + "north": 53.55744, + "asset_name": "occumed-interior-admreg.pmtiles", + "metadata_name": "occumed-interior-admreg.json" + }, + { + "id": "iran", + "slug": "iran", + "name": "Iran", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/iran-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "iran", + "source_size_bytes": 228323733, + "west": 44.02303, + "south": 24.03947, + "east": 63.35413, + "north": 39.79045, + "asset_name": "occumed-iran.pmtiles", + "metadata_name": "occumed-iran.json" + }, + { + "id": "iraq", + "slug": "iraq", + "name": "Iraq", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/iraq-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "iraq", + "source_size_bytes": 89891539, + "west": 38.784, + "south": 29.01775, + "east": 49.55108, + "north": 37.39063, + "asset_name": "occumed-iraq.pmtiles", + "metadata_name": "occumed-iraq.json" + }, + { + "id": "ireland-and-northern-ireland--r1-c1", + "slug": "ireland-and-northern-ireland--r1-c1", + "name": "Ireland and Northern Ireland 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf", + "extract_bbox": "-14.40224,49.60002,-9.730753,53.232775", + "source_region_id": "ireland-and-northern-ireland", + "source_size_bytes": 408051669, + "west": -14.40224, + "south": 49.60002, + "east": -9.730753, + "north": 53.232775, + "asset_name": "occumed-ireland-and-northern-ireland--r1-c1.pmtiles", + "metadata_name": "occumed-ireland-and-northern-ireland--r1-c1.json" + }, + { + "id": "ireland-and-northern-ireland--r1-c2", + "slug": "ireland-and-northern-ireland--r1-c2", + "name": "Ireland and Northern Ireland 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf", + "extract_bbox": "-9.730753,49.60002,-5.059265,53.232775", + "source_region_id": "ireland-and-northern-ireland", + "source_size_bytes": 408051669, + "west": -9.730753, + "south": 49.60002, + "east": -5.059265, + "north": 53.232775, + "asset_name": "occumed-ireland-and-northern-ireland--r1-c2.pmtiles", + "metadata_name": "occumed-ireland-and-northern-ireland--r1-c2.json" + }, + { + "id": "ireland-and-northern-ireland--r2-c1", + "slug": "ireland-and-northern-ireland--r2-c1", + "name": "Ireland and Northern Ireland 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf", + "extract_bbox": "-14.40224,53.232775,-9.730753,56.86553", + "source_region_id": "ireland-and-northern-ireland", + "source_size_bytes": 408051669, + "west": -14.40224, + "south": 53.232775, + "east": -9.730753, + "north": 56.86553, + "asset_name": "occumed-ireland-and-northern-ireland--r2-c1.pmtiles", + "metadata_name": "occumed-ireland-and-northern-ireland--r2-c1.json" + }, + { + "id": "ireland-and-northern-ireland--r2-c2", + "slug": "ireland-and-northern-ireland--r2-c2", + "name": "Ireland and Northern Ireland 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf", + "extract_bbox": "-9.730753,53.232775,-5.059265,56.86553", + "source_region_id": "ireland-and-northern-ireland", + "source_size_bytes": 408051669, + "west": -9.730753, + "south": 53.232775, + "east": -5.059265, + "north": 56.86553, + "asset_name": "occumed-ireland-and-northern-ireland--r2-c2.pmtiles", + "metadata_name": "occumed-ireland-and-northern-ireland--r2-c2.json" + }, + { + "id": "island-admreg", + "slug": "island-admreg", + "name": "Island Administrative Region", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/island-admreg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "island-admreg", + "source_size_bytes": 109516402, + "west": -129.3393, + "south": 48.12648, + "east": -122.9789, + "north": 52.05756, + "asset_name": "occumed-island-admreg.pmtiles", + "metadata_name": "occumed-island-admreg.json" + }, + { + "id": "islas-baleares", + "slug": "islas-baleares", + "name": "Islas Baleares", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/islas-baleares-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "islas-baleares", + "source_size_bytes": 46011293, + "west": 0.615229, + "south": 38.05675, + "east": 4.938349, + "north": 40.7098, + "asset_name": "occumed-islas-baleares.pmtiles", + "metadata_name": "occumed-islas-baleares.json" + }, + { + "id": "isle-of-man", + "slug": "isle-of-man", + "name": "Isle of Man", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/isle-of-man-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "isle-of-man", + "source_size_bytes": 6011499, + "west": -5.434554, + "south": 53.73236, + "east": -3.688718, + "north": 54.6706, + "asset_name": "occumed-isle-of-man.pmtiles", + "metadata_name": "occumed-isle-of-man.json" + }, + { + "id": "isle-of-wight", + "slug": "isle-of-wight", + "name": "Isle of Wight", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/isle-of-wight-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "isle-of-wight", + "source_size_bytes": 8916325, + "west": -1.659074, + "south": 50.50555, + "east": -1.03137, + "north": 50.80102, + "asset_name": "occumed-isle-of-wight.pmtiles", + "metadata_name": "occumed-isle-of-wight.json" + }, + { + "id": "isole", + "slug": "isole", + "name": "Isole", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/isole-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "isole", + "source_size_bytes": 213204145, + "west": 7.718453, + "south": 35.07638, + "east": 15.70887, + "north": 41.51893, + "asset_name": "occumed-isole.pmtiles", + "metadata_name": "occumed-isole.json" + }, + { + "id": "israel-and-palestine", + "slug": "israel-and-palestine", + "name": "Israel and Palestine", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/israel-and-palestine-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "israel-and-palestine", + "source_size_bytes": 120123936, + "west": 33.99994, + "south": 29.4396, + "east": 35.91531, + "north": 33.45436, + "asset_name": "occumed-israel-and-palestine.pmtiles", + "metadata_name": "occumed-israel-and-palestine.json" + }, + { + "id": "ivory-coast", + "slug": "ivory-coast", + "name": "Ivory Coast", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/ivory-coast-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ivory-coast", + "source_size_bytes": 89309025, + "west": -8.633881, + "south": 4.141916, + "east": -2.476215, + "north": 10.75034, + "asset_name": "occumed-ivory-coast.pmtiles", + "metadata_name": "occumed-ivory-coast.json" + }, + { + "id": "jamaica", + "slug": "jamaica", + "name": "Jamaica", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/jamaica-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "jamaica", + "source_size_bytes": 38591761, + "west": -78.85, + "south": 16.35, + "east": -75.51, + "north": 19.16, + "asset_name": "occumed-jamaica.pmtiles", + "metadata_name": "occumed-jamaica.json" + }, + { + "id": "java--r1-c1", + "slug": "java--r1-c1", + "name": "Java 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "104.1394,-9.541155,108.286733,-6.746545", + "source_region_id": "java", + "source_size_bytes": 894859057, + "west": 104.1394, + "south": -9.541155, + "east": 108.286733, + "north": -6.746545, + "asset_name": "occumed-java--r1-c1.pmtiles", + "metadata_name": "occumed-java--r1-c1.json" + }, + { + "id": "java--r1-c2", + "slug": "java--r1-c2", + "name": "Java 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "108.286733,-9.541155,112.434067,-6.746545", + "source_region_id": "java", + "source_size_bytes": 894859057, + "west": 108.286733, + "south": -9.541155, + "east": 112.434067, + "north": -6.746545, + "asset_name": "occumed-java--r1-c2.pmtiles", + "metadata_name": "occumed-java--r1-c2.json" + }, + { + "id": "java--r1-c3", + "slug": "java--r1-c3", + "name": "Java 1.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "112.434067,-9.541155,116.5814,-6.746545", + "source_region_id": "java", + "source_size_bytes": 894859057, + "west": 112.434067, + "south": -9.541155, + "east": 116.5814, + "north": -6.746545, + "asset_name": "occumed-java--r1-c3.pmtiles", + "metadata_name": "occumed-java--r1-c3.json" + }, + { + "id": "java--r2-c1", + "slug": "java--r2-c1", + "name": "Java 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "104.1394,-6.746545,108.286733,-3.951935", + "source_region_id": "java", + "source_size_bytes": 894859057, + "west": 104.1394, + "south": -6.746545, + "east": 108.286733, + "north": -3.951935, + "asset_name": "occumed-java--r2-c1.pmtiles", + "metadata_name": "occumed-java--r2-c1.json" + }, + { + "id": "java--r2-c2", + "slug": "java--r2-c2", + "name": "Java 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "108.286733,-6.746545,112.434067,-3.951935", + "source_region_id": "java", + "source_size_bytes": 894859057, + "west": 108.286733, + "south": -6.746545, + "east": 112.434067, + "north": -3.951935, + "asset_name": "occumed-java--r2-c2.pmtiles", + "metadata_name": "occumed-java--r2-c2.json" + }, + { + "id": "java--r2-c3", + "slug": "java--r2-c3", + "name": "Java 2.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/java-latest.osm.pbf", + "extract_bbox": "112.434067,-6.746545,116.5814,-3.951935", + "source_region_id": "java", + "source_size_bytes": 894859057, + "west": 112.434067, + "south": -6.746545, + "east": 116.5814, + "north": -3.951935, + "asset_name": "occumed-java--r2-c3.pmtiles", + "metadata_name": "occumed-java--r2-c3.json" + }, + { + "id": "jiangsu", + "slug": "jiangsu", + "name": "Jiangsu", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/jiangsu-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "jiangsu", + "source_size_bytes": 78569866, + "west": 116.3538, + "south": 30.75899, + "east": 122.9453, + "north": 35.55507, + "asset_name": "occumed-jiangsu.pmtiles", + "metadata_name": "occumed-jiangsu.json" + }, + { + "id": "jiangxi", + "slug": "jiangxi", + "name": "Jiangxi", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/jiangxi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "jiangxi", + "source_size_bytes": 49231012, + "west": 113.5688, + "south": 24.47809, + "east": 118.4865, + "north": 30.08841, + "asset_name": "occumed-jiangxi.pmtiles", + "metadata_name": "occumed-jiangxi.json" + }, + { + "id": "jihocesky", + "slug": "jihocesky", + "name": "Jihočeský kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/jihocesky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "jihocesky", + "source_size_bytes": 96237058, + "west": 13.53386, + "south": 48.54292, + "east": 15.60644, + "north": 49.62122, + "asset_name": "occumed-jihocesky.pmtiles", + "metadata_name": "occumed-jihocesky.json" + }, + { + "id": "jihomoravsky", + "slug": "jihomoravsky", + "name": "Jihomoravský kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/jihomoravsky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "jihomoravsky", + "source_size_bytes": 90939945, + "west": 15.54023, + "south": 48.61008, + "east": 17.64952, + "north": 49.63471, + "asset_name": "occumed-jihomoravsky.pmtiles", + "metadata_name": "occumed-jihomoravsky.json" + }, + { + "id": "jilin", + "slug": "jilin", + "name": "Jilin", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/jilin-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "jilin", + "source_size_bytes": 26771487, + "west": 121.6276, + "south": 40.78952, + "east": 131.3514, + "north": 46.31469, + "asset_name": "occumed-jilin.pmtiles", + "metadata_name": "occumed-jilin.json" + }, + { + "id": "jordan", + "slug": "jordan", + "name": "Jordan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/jordan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "jordan", + "source_size_bytes": 31005046, + "west": 34.86886, + "south": 29.18213, + "east": 39.31022, + "north": 33.37922, + "asset_name": "occumed-jordan.pmtiles", + "metadata_name": "occumed-jordan.json" + }, + { + "id": "kalimantan", + "slug": "kalimantan", + "name": "Kalimantan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/kalimantan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kalimantan", + "source_size_bytes": 147156760, + "west": 104.9606, + "south": -5.59958, + "east": 119.9267, + "north": 4.404166, + "asset_name": "occumed-kalimantan.pmtiles", + "metadata_name": "occumed-kalimantan.json" + }, + { + "id": "kaliningrad", + "slug": "kaliningrad", + "name": "Kaliningrad", + "continent": "kaliningrad", + "pbf_url": "https://download.geofabrik.de/russia/kaliningrad-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kaliningrad", + "source_size_bytes": 28089569, + "west": 19.40837, + "south": 54.31723, + "east": 22.88747, + "north": 55.3899, + "asset_name": "occumed-kaliningrad.pmtiles", + "metadata_name": "occumed-kaliningrad.json" + }, + { + "id": "kansai", + "slug": "kansai", + "name": "Kansai region (a.k.a. Kinki region)", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kansai-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kansai", + "source_size_bytes": 348493110, + "west": 133.9644, + "south": 33.07898, + "east": 137.6573, + "north": 36.4582, + "asset_name": "occumed-kansai.pmtiles", + "metadata_name": "occumed-kansai.json" + }, + { + "id": "kanto--r1-c1", + "slug": "kanto--r1-c1", + "name": "Kantō region 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "134.5757,20.08228,141.207433,28.62108", + "source_region_id": "kanto", + "source_size_bytes": 480115601, + "west": 134.5757, + "south": 20.08228, + "east": 141.207433, + "north": 28.62108, + "asset_name": "occumed-kanto--r1-c1.pmtiles", + "metadata_name": "occumed-kanto--r1-c1.json" + }, + { + "id": "kanto--r1-c2", + "slug": "kanto--r1-c2", + "name": "Kantō region 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "141.207433,20.08228,147.839167,28.62108", + "source_region_id": "kanto", + "source_size_bytes": 480115601, + "west": 141.207433, + "south": 20.08228, + "east": 147.839167, + "north": 28.62108, + "asset_name": "occumed-kanto--r1-c2.pmtiles", + "metadata_name": "occumed-kanto--r1-c2.json" + }, + { + "id": "kanto--r1-c3", + "slug": "kanto--r1-c3", + "name": "Kantō region 1.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "147.839167,20.08228,154.4709,28.62108", + "source_region_id": "kanto", + "source_size_bytes": 480115601, + "west": 147.839167, + "south": 20.08228, + "east": 154.4709, + "north": 28.62108, + "asset_name": "occumed-kanto--r1-c3.pmtiles", + "metadata_name": "occumed-kanto--r1-c3.json" + }, + { + "id": "kanto--r2-c1", + "slug": "kanto--r2-c1", + "name": "Kantō region 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "134.5757,28.62108,141.207433,37.15988", + "source_region_id": "kanto", + "source_size_bytes": 480115601, + "west": 134.5757, + "south": 28.62108, + "east": 141.207433, + "north": 37.15988, + "asset_name": "occumed-kanto--r2-c1.pmtiles", + "metadata_name": "occumed-kanto--r2-c1.json" + }, + { + "id": "kanto--r2-c2", + "slug": "kanto--r2-c2", + "name": "Kantō region 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "141.207433,28.62108,147.839167,37.15988", + "source_region_id": "kanto", + "source_size_bytes": 480115601, + "west": 141.207433, + "south": 28.62108, + "east": 147.839167, + "north": 37.15988, + "asset_name": "occumed-kanto--r2-c2.pmtiles", + "metadata_name": "occumed-kanto--r2-c2.json" + }, + { + "id": "kanto--r2-c3", + "slug": "kanto--r2-c3", + "name": "Kantō region 2.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kanto-latest.osm.pbf", + "extract_bbox": "147.839167,28.62108,154.4709,37.15988", + "source_region_id": "kanto", + "source_size_bytes": 480115601, + "west": 147.839167, + "south": 28.62108, + "east": 154.4709, + "north": 37.15988, + "asset_name": "occumed-kanto--r2-c3.pmtiles", + "metadata_name": "occumed-kanto--r2-c3.json" + }, + { + "id": "karlovarsky", + "slug": "karlovarsky", + "name": "Karlovarský kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/karlovarsky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "karlovarsky", + "source_size_bytes": 30278765, + "west": 12.08477, + "south": 49.88988, + "east": 13.30247, + "north": 50.47322, + "asset_name": "occumed-karlovarsky.pmtiles", + "metadata_name": "occumed-karlovarsky.json" + }, + { + "id": "karlsruhe-regbez", + "slug": "karlsruhe-regbez", + "name": "Regierungsbezirk Karlsruhe", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/baden-wuerttemberg/karlsruhe-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "karlsruhe-regbez", + "source_size_bytes": 153403357, + "west": 7.949946, + "south": 48.29792, + "east": 9.605534, + "north": 49.736, + "asset_name": "occumed-karlsruhe-regbez.pmtiles", + "metadata_name": "occumed-karlsruhe-regbez.json" + }, + { + "id": "kazakhstan", + "slug": "kazakhstan", + "name": "Kazakhstan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/kazakhstan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kazakhstan", + "source_size_bytes": 219485013, + "west": 46.42304, + "south": 40.55346, + "east": 87.35359, + "north": 55.50799, + "asset_name": "occumed-kazakhstan.pmtiles", + "metadata_name": "occumed-kazakhstan.json" + }, + { + "id": "kent", + "slug": "kent", + "name": "Kent", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/kent-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kent", + "source_size_bytes": 52456548, + "west": 0.030546, + "south": 50.81013, + "east": 1.521262, + "north": 51.49664, + "asset_name": "occumed-kent.pmtiles", + "metadata_name": "occumed-kent.json" + }, + { + "id": "kenya", + "slug": "kenya", + "name": "Kenya", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/kenya-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kenya", + "source_size_bytes": 348755793, + "west": 33.8679, + "south": -4.816276, + "east": 41.97685, + "north": 4.629931, + "asset_name": "occumed-kenya.pmtiles", + "metadata_name": "occumed-kenya.json" + }, + { + "id": "kiribati", + "slug": "kiribati", + "name": "Kiribati", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/kiribati-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kiribati", + "source_size_bytes": 2419229, + "west": 167.8684, + "south": -13.83833, + "east": -147.0336, + "north": 6.472283, + "asset_name": "occumed-kiribati.pmtiles", + "metadata_name": "occumed-kiribati.json" + }, + { + "id": "kitikmeot--r1-c1", + "slug": "kitikmeot--r1-c1", + "name": "Kitikmeot Region 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-120.737,64.51803,-110.152817,69.228825", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -120.737, + "south": 64.51803, + "east": -110.152817, + "north": 69.228825, + "asset_name": "occumed-kitikmeot--r1-c1.pmtiles", + "metadata_name": "occumed-kitikmeot--r1-c1.json" + }, + { + "id": "kitikmeot--r1-c2", + "slug": "kitikmeot--r1-c2", + "name": "Kitikmeot Region 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-110.152817,64.51803,-99.568633,69.228825", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -110.152817, + "south": 64.51803, + "east": -99.568633, + "north": 69.228825, + "asset_name": "occumed-kitikmeot--r1-c2.pmtiles", + "metadata_name": "occumed-kitikmeot--r1-c2.json" + }, + { + "id": "kitikmeot--r1-c3", + "slug": "kitikmeot--r1-c3", + "name": "Kitikmeot Region 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-99.568633,64.51803,-88.98445,69.228825", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -99.568633, + "south": 64.51803, + "east": -88.98445, + "north": 69.228825, + "asset_name": "occumed-kitikmeot--r1-c3.pmtiles", + "metadata_name": "occumed-kitikmeot--r1-c3.json" + }, + { + "id": "kitikmeot--r2-c1", + "slug": "kitikmeot--r2-c1", + "name": "Kitikmeot Region 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-120.737,69.228825,-110.152817,73.93962", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -120.737, + "south": 69.228825, + "east": -110.152817, + "north": 73.93962, + "asset_name": "occumed-kitikmeot--r2-c1.pmtiles", + "metadata_name": "occumed-kitikmeot--r2-c1.json" + }, + { + "id": "kitikmeot--r2-c2", + "slug": "kitikmeot--r2-c2", + "name": "Kitikmeot Region 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-110.152817,69.228825,-99.568633,73.93962", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -110.152817, + "south": 69.228825, + "east": -99.568633, + "north": 73.93962, + "asset_name": "occumed-kitikmeot--r2-c2.pmtiles", + "metadata_name": "occumed-kitikmeot--r2-c2.json" + }, + { + "id": "kitikmeot--r2-c3", + "slug": "kitikmeot--r2-c3", + "name": "Kitikmeot Region 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kitikmeot-latest.osm.pbf", + "extract_bbox": "-99.568633,69.228825,-88.98445,73.93962", + "source_region_id": "kitikmeot", + "source_size_bytes": 417234996, + "west": -99.568633, + "south": 69.228825, + "east": -88.98445, + "north": 73.93962, + "asset_name": "occumed-kitikmeot--r2-c3.pmtiles", + "metadata_name": "occumed-kitikmeot--r2-c3.json" + }, + { + "id": "kivalliq--r1-c1", + "slug": "kivalliq--r1-c1", + "name": "Kivalliq Region 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-105.0092,56.95134,-96.679447,61.97584", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -105.0092, + "south": 56.95134, + "east": -96.679447, + "north": 61.97584, + "asset_name": "occumed-kivalliq--r1-c1.pmtiles", + "metadata_name": "occumed-kivalliq--r1-c1.json" + }, + { + "id": "kivalliq--r1-c2", + "slug": "kivalliq--r1-c2", + "name": "Kivalliq Region 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-96.679447,56.95134,-88.349693,61.97584", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -96.679447, + "south": 56.95134, + "east": -88.349693, + "north": 61.97584, + "asset_name": "occumed-kivalliq--r1-c2.pmtiles", + "metadata_name": "occumed-kivalliq--r1-c2.json" + }, + { + "id": "kivalliq--r1-c3", + "slug": "kivalliq--r1-c3", + "name": "Kivalliq Region 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-88.349693,56.95134,-80.01994,61.97584", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -88.349693, + "south": 56.95134, + "east": -80.01994, + "north": 61.97584, + "asset_name": "occumed-kivalliq--r1-c3.pmtiles", + "metadata_name": "occumed-kivalliq--r1-c3.json" + }, + { + "id": "kivalliq--r2-c1", + "slug": "kivalliq--r2-c1", + "name": "Kivalliq Region 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-105.0092,61.97584,-96.679447,67.00034", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -105.0092, + "south": 61.97584, + "east": -96.679447, + "north": 67.00034, + "asset_name": "occumed-kivalliq--r2-c1.pmtiles", + "metadata_name": "occumed-kivalliq--r2-c1.json" + }, + { + "id": "kivalliq--r2-c2", + "slug": "kivalliq--r2-c2", + "name": "Kivalliq Region 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-96.679447,61.97584,-88.349693,67.00034", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -96.679447, + "south": 61.97584, + "east": -88.349693, + "north": 67.00034, + "asset_name": "occumed-kivalliq--r2-c2.pmtiles", + "metadata_name": "occumed-kivalliq--r2-c2.json" + }, + { + "id": "kivalliq--r2-c3", + "slug": "kivalliq--r2-c3", + "name": "Kivalliq Region 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/kivalliq-latest.osm.pbf", + "extract_bbox": "-88.349693,61.97584,-80.01994,67.00034", + "source_region_id": "kivalliq", + "source_size_bytes": 492042070, + "west": -88.349693, + "south": 61.97584, + "east": -80.01994, + "north": 67.00034, + "asset_name": "occumed-kivalliq--r2-c3.pmtiles", + "metadata_name": "occumed-kivalliq--r2-c3.json" + }, + { + "id": "koeln-regbez", + "slug": "koeln-regbez", + "name": "Regierungsbezirk Köln", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/nordrhein-westfalen/koeln-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "koeln-regbez", + "source_size_bytes": 223503591, + "west": 5.864417, + "south": 50.32088, + "east": 7.794411, + "north": 51.253, + "asset_name": "occumed-koeln-regbez.pmtiles", + "metadata_name": "occumed-koeln-regbez.json" + }, + { + "id": "kootenay-admreg", + "slug": "kootenay-admreg", + "name": "Kootenay Administrative Region", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/kootenay-admreg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kootenay-admreg", + "source_size_bytes": 63636915, + "west": -119.3857, + "south": 48.99463, + "east": -114.049, + "north": 51.85325, + "asset_name": "occumed-kootenay-admreg.pmtiles", + "metadata_name": "occumed-kootenay-admreg.json" + }, + { + "id": "kosovo", + "slug": "kosovo", + "name": "Kosovo", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/kosovo-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kosovo", + "source_size_bytes": 30584960, + "west": 20.01357, + "south": 41.85408, + "east": 21.79327, + "north": 43.27753, + "asset_name": "occumed-kosovo.pmtiles", + "metadata_name": "occumed-kosovo.json" + }, + { + "id": "kralovehradecky", + "slug": "kralovehradecky", + "name": "Královéhradecký kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/kralovehradecky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kralovehradecky", + "source_size_bytes": 59665701, + "west": 15.10268, + "south": 50.03735, + "east": 16.59925, + "north": 50.78739, + "asset_name": "occumed-kralovehradecky.pmtiles", + "metadata_name": "occumed-kralovehradecky.json" + }, + { + "id": "kujawsko-pomorskie", + "slug": "kujawsko-pomorskie", + "name": "Województwo kujawsko-pomorskie
(Kuyavian-Pomeranian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/kujawsko-pomorskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kujawsko-pomorskie", + "source_size_bytes": 103309867, + "west": 17.23935, + "south": 52.32112, + "east": 19.77239, + "north": 53.7917, + "asset_name": "occumed-kujawsko-pomorskie.pmtiles", + "metadata_name": "occumed-kujawsko-pomorskie.json" + }, + { + "id": "kyrgyzstan", + "slug": "kyrgyzstan", + "name": "Kyrgyzstan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/kyrgyzstan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kyrgyzstan", + "source_size_bytes": 52689189, + "west": 69.25507, + "south": 39.15136, + "east": 80.2771, + "north": 43.2812, + "asset_name": "occumed-kyrgyzstan.pmtiles", + "metadata_name": "occumed-kyrgyzstan.json" + }, + { + "id": "kyushu", + "slug": "kyushu", + "name": "Kyūshū", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/kyushu-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "kyushu", + "source_size_bytes": 308493888, + "west": 122.5814, + "south": 21.38691, + "east": 132.8044, + "north": 35.09724, + "asset_name": "occumed-kyushu.pmtiles", + "metadata_name": "occumed-kyushu.json" + }, + { + "id": "la-rioja", + "slug": "la-rioja", + "name": "La Rioja", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/la-rioja-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "la-rioja", + "source_size_bytes": 12694887, + "west": -3.140202, + "south": 41.91403, + "east": -1.673012, + "north": 42.64621, + "asset_name": "occumed-la-rioja.pmtiles", + "metadata_name": "occumed-la-rioja.json" + }, + { + "id": "lancashire", + "slug": "lancashire", + "name": "Lancashire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/lancashire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lancashire", + "source_size_bytes": 41031185, + "west": -3.092156, + "south": 53.47507, + "east": -2.0395, + "north": 54.24645, + "asset_name": "occumed-lancashire.pmtiles", + "metadata_name": "occumed-lancashire.json" + }, + { + "id": "languedoc-roussillon", + "slug": "languedoc-roussillon", + "name": "Languedoc-Roussillon", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/languedoc-roussillon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "languedoc-roussillon", + "source_size_bytes": 267596913, + "west": 1.686256, + "south": 42.32755, + "east": 4.847979, + "north": 44.97821, + "asset_name": "occumed-languedoc-roussillon.pmtiles", + "metadata_name": "occumed-languedoc-roussillon.json" + }, + { + "id": "laos", + "slug": "laos", + "name": "Laos", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/laos-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "laos", + "source_size_bytes": 53209799, + "west": 100.0828, + "south": 13.90159, + "east": 107.6503, + "north": 22.52825, + "asset_name": "occumed-laos.pmtiles", + "metadata_name": "occumed-laos.json" + }, + { + "id": "latvia", + "slug": "latvia", + "name": "Latvia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/latvia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "latvia", + "source_size_bytes": 139026643, + "west": 19.73348, + "south": 55.66109, + "east": 28.25501, + "north": 58.0947, + "asset_name": "occumed-latvia.pmtiles", + "metadata_name": "occumed-latvia.json" + }, + { + "id": "lebanon", + "slug": "lebanon", + "name": "Lebanon", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/lebanon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lebanon", + "source_size_bytes": 52281140, + "west": 34.76799, + "south": 33.05299, + "east": 36.63666, + "north": 34.80253, + "asset_name": "occumed-lebanon.pmtiles", + "metadata_name": "occumed-lebanon.json" + }, + { + "id": "leicestershire", + "slug": "leicestershire", + "name": "Leicestershire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/leicestershire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "leicestershire", + "source_size_bytes": 20149772, + "west": -1.596388, + "south": 52.3936, + "east": -0.663929, + "north": 52.9776, + "asset_name": "occumed-leicestershire.pmtiles", + "metadata_name": "occumed-leicestershire.json" + }, + { + "id": "lesotho", + "slug": "lesotho", + "name": "Lesotho", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/lesotho-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lesotho", + "source_size_bytes": 126375182, + "west": 27.0092, + "south": -30.68472, + "east": 29.46393, + "north": -28.56734, + "asset_name": "occumed-lesotho.pmtiles", + "metadata_name": "occumed-lesotho.json" + }, + { + "id": "liaoning", + "slug": "liaoning", + "name": "Liaoning", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/liaoning-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "liaoning", + "source_size_bytes": 27470970, + "west": 118.8305, + "south": 38.26191, + "east": 125.7959, + "north": 43.49303, + "asset_name": "occumed-liaoning.pmtiles", + "metadata_name": "occumed-liaoning.json" + }, + { + "id": "liberecky", + "slug": "liberecky", + "name": "Liberecký kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/liberecky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "liberecky", + "source_size_bytes": 46674023, + "west": 14.34201, + "south": 50.47113, + "east": 15.63443, + "north": 51.03171, + "asset_name": "occumed-liberecky.pmtiles", + "metadata_name": "occumed-liberecky.json" + }, + { + "id": "liberia", + "slug": "liberia", + "name": "Liberia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/liberia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "liberia", + "source_size_bytes": 37278712, + "west": -14.95454, + "south": -0.681003, + "east": -7.24572, + "north": 8.570158, + "asset_name": "occumed-liberia.pmtiles", + "metadata_name": "occumed-liberia.json" + }, + { + "id": "libya", + "slug": "libya", + "name": "Libya", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/libya-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "libya", + "source_size_bytes": 76353527, + "west": 9.374405, + "south": 19.45087, + "east": 25.40726, + "north": 33.57972, + "asset_name": "occumed-libya.pmtiles", + "metadata_name": "occumed-libya.json" + }, + { + "id": "liechtenstein", + "slug": "liechtenstein", + "name": "Liechtenstein", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "liechtenstein", + "source_size_bytes": 3425330, + "west": 9.471078, + "south": 47.04774, + "east": 9.636217, + "north": 47.27128, + "asset_name": "occumed-liechtenstein.pmtiles", + "metadata_name": "occumed-liechtenstein.json" + }, + { + "id": "limburg", + "slug": "limburg", + "name": "Limburg", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/limburg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "limburg", + "source_size_bytes": 100384154, + "west": 5.563304, + "south": 50.74753, + "east": 6.22939, + "north": 51.77992, + "asset_name": "occumed-limburg.pmtiles", + "metadata_name": "occumed-limburg.json" + }, + { + "id": "limousin", + "slug": "limousin", + "name": "Limousin", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/limousin-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "limousin", + "source_size_bytes": 98048565, + "west": 0.627097, + "south": 44.91842, + "east": 2.61384, + "north": 46.45781, + "asset_name": "occumed-limousin.pmtiles", + "metadata_name": "occumed-limousin.json" + }, + { + "id": "lincolnshire", + "slug": "lincolnshire", + "name": "Lincolnshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/lincolnshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lincolnshire", + "source_size_bytes": null, + "west": -0.950922, + "south": 52.63954, + "east": 0.494382, + "north": 53.73003, + "asset_name": "occumed-lincolnshire.pmtiles", + "metadata_name": "occumed-lincolnshire.json" + }, + { + "id": "lithuania", + "slug": "lithuania", + "name": "Lithuania", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/lithuania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lithuania", + "source_size_bytes": 221648516, + "west": 20.61859, + "south": 53.89221, + "east": 26.83873, + "north": 56.45329, + "asset_name": "occumed-lithuania.pmtiles", + "metadata_name": "occumed-lithuania.json" + }, + { + "id": "lodzkie", + "slug": "lodzkie", + "name": "Województwo łódzkie
(Łódź Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/lodzkie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lodzkie", + "source_size_bytes": 129742631, + "west": 18.06227, + "south": 50.83091, + "east": 20.6691, + "north": 52.40624, + "asset_name": "occumed-lodzkie.pmtiles", + "metadata_name": "occumed-lodzkie.json" + }, + { + "id": "lorraine", + "slug": "lorraine", + "name": "Lorraine", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/lorraine-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lorraine", + "source_size_bytes": 170044302, + "west": 4.886022, + "south": 47.81188, + "east": 7.640105, + "north": 49.61946, + "asset_name": "occumed-lorraine.pmtiles", + "metadata_name": "occumed-lorraine.json" + }, + { + "id": "lubelskie", + "slug": "lubelskie", + "name": "Województwo lubelskie
(Lublin Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/lubelskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lubelskie", + "source_size_bytes": 137989285, + "west": 21.60285, + "south": 50.23654, + "east": 24.16102, + "north": 52.30035, + "asset_name": "occumed-lubelskie.pmtiles", + "metadata_name": "occumed-lubelskie.json" + }, + { + "id": "lubuskie", + "slug": "lubuskie", + "name": "Województwo lubuskie
(Lubusz Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/lubuskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "lubuskie", + "source_size_bytes": 61840858, + "west": 14.49548, + "south": 51.34865, + "east": 16.42999, + "north": 53.12806, + "asset_name": "occumed-lubuskie.pmtiles", + "metadata_name": "occumed-lubuskie.json" + }, + { + "id": "luxembourg", + "slug": "luxembourg", + "name": "Luxembourg", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/luxembourg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "luxembourg", + "source_size_bytes": 47228875, + "west": 5.733033, + "south": 49.44553, + "east": 6.532249, + "north": 50.18496, + "asset_name": "occumed-luxembourg.pmtiles", + "metadata_name": "occumed-luxembourg.json" + }, + { + "id": "macau", + "slug": "macau", + "name": "Macau", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/macau-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "macau", + "source_size_bytes": null, + "west": 113.5272, + "south": 22.07546, + "east": 113.6325, + "north": 22.21708, + "asset_name": "occumed-macau.pmtiles", + "metadata_name": "occumed-macau.json" + }, + { + "id": "macedonia", + "slug": "macedonia", + "name": "Macedonia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/macedonia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "macedonia", + "source_size_bytes": 29454214, + "west": 20.44671, + "south": 40.84759, + "east": 23.04012, + "north": 42.37969, + "asset_name": "occumed-macedonia.pmtiles", + "metadata_name": "occumed-macedonia.json" + }, + { + "id": "madagascar", + "slug": "madagascar", + "name": "Madagascar", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/madagascar-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "madagascar", + "source_size_bytes": 386639468, + "west": 42.30124, + "south": -26.5823, + "east": 51.14843, + "north": -11.02746, + "asset_name": "occumed-madagascar.pmtiles", + "metadata_name": "occumed-madagascar.json" + }, + { + "id": "madrid", + "slug": "madrid", + "name": "Madrid", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/madrid-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "madrid", + "source_size_bytes": 84320304, + "west": -4.589539, + "south": 39.88116, + "east": -3.050423, + "north": 41.16864, + "asset_name": "occumed-madrid.pmtiles", + "metadata_name": "occumed-madrid.json" + }, + { + "id": "malawi", + "slug": "malawi", + "name": "Malawi", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/malawi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "malawi", + "source_size_bytes": 154341003, + "west": 32.66441, + "south": -17.13324, + "east": 35.92941, + "north": -9.362691, + "asset_name": "occumed-malawi.pmtiles", + "metadata_name": "occumed-malawi.json" + }, + { + "id": "malaysia-singapore-brunei", + "slug": "malaysia-singapore-brunei", + "name": "Malaysia, Singapore, and Brunei", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/malaysia-singapore-brunei-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "malaysia-singapore-brunei", + "source_size_bytes": 248811625, + "west": 99.25611, + "south": 0.830813, + "east": 119.6683, + "north": 7.736849, + "asset_name": "occumed-malaysia-singapore-brunei.pmtiles", + "metadata_name": "occumed-malaysia-singapore-brunei.json" + }, + { + "id": "maldives", + "slug": "maldives", + "name": "Maldives", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/maldives-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "maldives", + "source_size_bytes": 3579378, + "west": 71.7, + "south": -1.36, + "east": 74.5, + "north": 7.69, + "asset_name": "occumed-maldives.pmtiles", + "metadata_name": "occumed-maldives.json" + }, + { + "id": "mali", + "slug": "mali", + "name": "Mali", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/mali-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mali", + "source_size_bytes": 172808301, + "west": -12.24701, + "south": 10.1176, + "east": 4.330257, + "north": 25.09499, + "asset_name": "occumed-mali.pmtiles", + "metadata_name": "occumed-mali.json" + }, + { + "id": "malopolskie", + "slug": "malopolskie", + "name": "Województwo małopolskie
(Lesser Poland Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/malopolskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "malopolskie", + "source_size_bytes": 199534123, + "west": 19.07492, + "south": 49.16487, + "east": 21.43328, + "north": 50.53221, + "asset_name": "occumed-malopolskie.pmtiles", + "metadata_name": "occumed-malopolskie.json" + }, + { + "id": "malta", + "slug": "malta", + "name": "Malta", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/malta-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "malta", + "source_size_bytes": 8829625, + "west": 14, + "south": 35.51985, + "east": 14.8561, + "north": 36.33296, + "asset_name": "occumed-malta.pmtiles", + "metadata_name": "occumed-malta.json" + }, + { + "id": "maluku", + "slug": "maluku", + "name": "Maluku", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/maluku-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "maluku", + "source_size_bytes": null, + "west": 123.8928, + "south": -9.524903, + "east": 135.412, + "north": 3.727232, + "asset_name": "occumed-maluku.pmtiles", + "metadata_name": "occumed-maluku.json" + }, + { + "id": "manitoba", + "slug": "manitoba", + "name": "Manitoba", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/manitoba-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "manitoba", + "source_size_bytes": 206209632, + "west": -102.014, + "south": 48.99056, + "east": -88.12183, + "north": 60.00845, + "asset_name": "occumed-manitoba.pmtiles", + "metadata_name": "occumed-manitoba.json" + }, + { + "id": "marshall-islands", + "slug": "marshall-islands", + "name": "Marshall Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/marshall-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "marshall-islands", + "source_size_bytes": 1977321, + "west": 156.8453, + "south": 1.777314, + "east": 175.5118, + "north": 17.94606, + "asset_name": "occumed-marshall-islands.pmtiles", + "metadata_name": "occumed-marshall-islands.json" + }, + { + "id": "martinique", + "slug": "martinique", + "name": "Martinique", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/martinique-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "martinique", + "source_size_bytes": 20228630, + "west": -61.63056, + "south": 14.13392, + "east": -60.42755, + "north": 15.15167, + "asset_name": "occumed-martinique.pmtiles", + "metadata_name": "occumed-martinique.json" + }, + { + "id": "mauritania", + "slug": "mauritania", + "name": "Mauritania", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/mauritania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mauritania", + "source_size_bytes": 30438387, + "west": -17.35016, + "south": 14.71578, + "east": -4.816056, + "north": 27.33613, + "asset_name": "occumed-mauritania.pmtiles", + "metadata_name": "occumed-mauritania.json" + }, + { + "id": "mauritius", + "slug": "mauritius", + "name": "Mauritius", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/mauritius-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mauritius", + "source_size_bytes": 9499185, + "west": 53.54727, + "south": -22.2411, + "east": 64.66991, + "north": -9.183617, + "asset_name": "occumed-mauritius.pmtiles", + "metadata_name": "occumed-mauritius.json" + }, + { + "id": "mayotte", + "slug": "mayotte", + "name": "Mayotte", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/mayotte-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mayotte", + "source_size_bytes": null, + "west": 44.62646, + "south": -13.47243, + "east": 45.6784, + "north": -12.14406, + "asset_name": "occumed-mayotte.pmtiles", + "metadata_name": "occumed-mayotte.json" + }, + { + "id": "mazowieckie", + "slug": "mazowieckie", + "name": "Województwo mazowieckie
(Mazovian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/mazowieckie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mazowieckie", + "source_size_bytes": 297114626, + "west": 19.23355, + "south": 50.98451, + "east": 23.15637, + "north": 53.5116, + "asset_name": "occumed-mazowieckie.pmtiles", + "metadata_name": "occumed-mazowieckie.json" + }, + { + "id": "mecklenburg-vorpommern", + "slug": "mecklenburg-vorpommern", + "name": "Mecklenburg-Vorpommern", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/mecklenburg-vorpommern-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mecklenburg-vorpommern", + "source_size_bytes": 126937336, + "west": 10.58807, + "south": 53.10619, + "east": 14.42292, + "north": 54.9837, + "asset_name": "occumed-mecklenburg-vorpommern.pmtiles", + "metadata_name": "occumed-mecklenburg-vorpommern.json" + }, + { + "id": "melilla", + "slug": "melilla", + "name": "Melilla", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/melilla-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "melilla", + "source_size_bytes": 797205, + "west": -2.972424, + "south": 35.26393, + "east": -2.908201, + "north": 35.32393, + "asset_name": "occumed-melilla.pmtiles", + "metadata_name": "occumed-melilla.json" + }, + { + "id": "merseyside", + "slug": "merseyside", + "name": "Merseyside", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/merseyside-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "merseyside", + "source_size_bytes": 24832285, + "west": -3.342781, + "south": 53.2854, + "east": -2.575686, + "north": 53.70528, + "asset_name": "occumed-merseyside.pmtiles", + "metadata_name": "occumed-merseyside.json" + }, + { + "id": "mexico--r1-c1", + "slug": "mexico--r1-c1", + "name": "Mexico 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-132.4952,9.456709,-116.82709,21.08869", + "source_region_id": "mexico", + "source_size_bytes": 638939965, + "west": -132.4952, + "south": 9.456709, + "east": -116.82709, + "north": 21.08869, + "asset_name": "occumed-mexico--r1-c1.pmtiles", + "metadata_name": "occumed-mexico--r1-c1.json" + }, + { + "id": "mexico--r1-c2", + "slug": "mexico--r1-c2", + "name": "Mexico 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-116.82709,9.456709,-101.15898,21.08869", + "source_region_id": "mexico", + "source_size_bytes": 638939965, + "west": -116.82709, + "south": 9.456709, + "east": -101.15898, + "north": 21.08869, + "asset_name": "occumed-mexico--r1-c2.pmtiles", + "metadata_name": "occumed-mexico--r1-c2.json" + }, + { + "id": "mexico--r1-c3", + "slug": "mexico--r1-c3", + "name": "Mexico 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-101.15898,9.456709,-85.49087,21.08869", + "source_region_id": "mexico", + "source_size_bytes": 638939965, + "west": -101.15898, + "south": 9.456709, + "east": -85.49087, + "north": 21.08869, + "asset_name": "occumed-mexico--r1-c3.pmtiles", + "metadata_name": "occumed-mexico--r1-c3.json" + }, + { + "id": "mexico--r2-c1", + "slug": "mexico--r2-c1", + "name": "Mexico 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-132.4952,21.08869,-116.82709,32.72067", + "source_region_id": "mexico", + "source_size_bytes": 638939965, + "west": -132.4952, + "south": 21.08869, + "east": -116.82709, + "north": 32.72067, + "asset_name": "occumed-mexico--r2-c1.pmtiles", + "metadata_name": "occumed-mexico--r2-c1.json" + }, + { + "id": "mexico--r2-c2", + "slug": "mexico--r2-c2", + "name": "Mexico 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-116.82709,21.08869,-101.15898,32.72067", + "source_region_id": "mexico", + "source_size_bytes": 638939965, + "west": -116.82709, + "south": 21.08869, + "east": -101.15898, + "north": 32.72067, + "asset_name": "occumed-mexico--r2-c2.pmtiles", + "metadata_name": "occumed-mexico--r2-c2.json" + }, + { + "id": "mexico--r2-c3", + "slug": "mexico--r2-c3", + "name": "Mexico 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/mexico-latest.osm.pbf", + "extract_bbox": "-101.15898,21.08869,-85.49087,32.72067", + "source_region_id": "mexico", + "source_size_bytes": 638939965, + "west": -101.15898, + "south": 21.08869, + "east": -85.49087, + "north": 32.72067, + "asset_name": "occumed-mexico--r2-c3.pmtiles", + "metadata_name": "occumed-mexico--r2-c3.json" + }, + { + "id": "micronesia", + "slug": "micronesia", + "name": "Micronesia", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/micronesia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "micronesia", + "source_size_bytes": null, + "west": 135.3124, + "south": -1.147444, + "east": 165.6345, + "north": 13.21917, + "asset_name": "occumed-micronesia.pmtiles", + "metadata_name": "occumed-micronesia.json" + }, + { + "id": "midi-pyrenees", + "slug": "midi-pyrenees", + "name": "Midi-Pyrenees", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/midi-pyrenees-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "midi-pyrenees", + "source_size_bytes": null, + "west": -0.327537, + "south": 42.56793, + "east": 3.453264, + "north": 45.04779, + "asset_name": "occumed-midi-pyrenees.pmtiles", + "metadata_name": "occumed-midi-pyrenees.json" + }, + { + "id": "mittelfranken", + "slug": "mittelfranken", + "name": "Mittelfranken", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bayern/mittelfranken-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mittelfranken", + "source_size_bytes": null, + "west": 10.06565, + "south": 48.85325, + "east": 11.60553, + "north": 49.79103, + "asset_name": "occumed-mittelfranken.pmtiles", + "metadata_name": "occumed-mittelfranken.json" + }, + { + "id": "moldova", + "slug": "moldova", + "name": "Moldova", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/moldova-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "moldova", + "source_size_bytes": null, + "west": 26.61232, + "south": 45.46164, + "east": 30.19249, + "north": 48.49397, + "asset_name": "occumed-moldova.pmtiles", + "metadata_name": "occumed-moldova.json" + }, + { + "id": "monaco", + "slug": "monaco", + "name": "Monaco", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/monaco-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "monaco", + "source_size_bytes": null, + "west": 7.408583, + "south": 43.48382, + "east": 7.595671, + "north": 43.75293, + "asset_name": "occumed-monaco.pmtiles", + "metadata_name": "occumed-monaco.json" + }, + { + "id": "mongolia", + "slug": "mongolia", + "name": "Mongolia", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/mongolia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mongolia", + "source_size_bytes": null, + "west": 87.70255, + "south": 41.50035, + "east": 120.0201, + "north": 52.19582, + "asset_name": "occumed-mongolia.pmtiles", + "metadata_name": "occumed-mongolia.json" + }, + { + "id": "montenegro", + "slug": "montenegro", + "name": "Montenegro", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/montenegro-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "montenegro", + "source_size_bytes": null, + "west": 18.17282, + "south": 41.61621, + "east": 20.35883, + "north": 43.56217, + "asset_name": "occumed-montenegro.pmtiles", + "metadata_name": "occumed-montenegro.json" + }, + { + "id": "moravskoslezky", + "slug": "moravskoslezky", + "name": "Moravskoslezský kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/moravskoslezky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "moravskoslezky", + "source_size_bytes": 79469014, + "west": 17.14468, + "south": 49.37126, + "east": 18.86321, + "north": 50.3303, + "asset_name": "occumed-moravskoslezky.pmtiles", + "metadata_name": "occumed-moravskoslezky.json" + }, + { + "id": "morocco", + "slug": "morocco", + "name": "Morocco", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/morocco-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "morocco", + "source_size_bytes": null, + "west": -18.1835, + "south": 20.40373, + "east": -0.993576, + "north": 36.06077, + "asset_name": "occumed-morocco.pmtiles", + "metadata_name": "occumed-morocco.json" + }, + { + "id": "mozambique", + "slug": "mozambique", + "name": "Mozambique", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/mozambique-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "mozambique", + "source_size_bytes": 254578398, + "west": 30.20742, + "south": -26.93837, + "east": 42.53489, + "north": -9.986206, + "asset_name": "occumed-mozambique.pmtiles", + "metadata_name": "occumed-mozambique.json" + }, + { + "id": "muenster-regbez", + "slug": "muenster-regbez", + "name": "Regierungsbezirk Münster", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/nordrhein-westfalen/muenster-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "muenster-regbez", + "source_size_bytes": 139717706, + "west": 6.38588, + "south": 51.47971, + "east": 8.321177, + "north": 52.47682, + "asset_name": "occumed-muenster-regbez.pmtiles", + "metadata_name": "occumed-muenster-regbez.json" + }, + { + "id": "murcia", + "slug": "murcia", + "name": "Murcia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/murcia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "murcia", + "source_size_bytes": 35142813, + "west": -2.351246, + "south": 37.11215, + "east": -0.247194, + "north": 38.76024, + "asset_name": "occumed-murcia.pmtiles", + "metadata_name": "occumed-murcia.json" + }, + { + "id": "myanmar", + "slug": "myanmar", + "name": "Myanmar (a.k.a. Burma)", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/myanmar-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "myanmar", + "source_size_bytes": 275032458, + "west": 90.65133, + "south": 9.510211, + "east": 101.1971, + "north": 28.57476, + "asset_name": "occumed-myanmar.pmtiles", + "metadata_name": "occumed-myanmar.json" + }, + { + "id": "namibia", + "slug": "namibia", + "name": "Namibia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/namibia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "namibia", + "source_size_bytes": null, + "west": 9.784615, + "south": -30.20686, + "east": 25.26589, + "north": -16.91682, + "asset_name": "occumed-namibia.pmtiles", + "metadata_name": "occumed-namibia.json" + }, + { + "id": "nauru", + "slug": "nauru", + "name": "Nauru", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/nauru-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "nauru", + "source_size_bytes": 264983, + "west": 163.7052, + "south": -3.771196, + "east": 168.5599, + "north": 2.693851, + "asset_name": "occumed-nauru.pmtiles", + "metadata_name": "occumed-nauru.json" + }, + { + "id": "navarra", + "slug": "navarra", + "name": "Navarra", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/navarra-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "navarra", + "source_size_bytes": 37141379, + "west": -2.502308, + "south": 41.90611, + "east": -0.716515, + "north": 43.31655, + "asset_name": "occumed-navarra.pmtiles", + "metadata_name": "occumed-navarra.json" + }, + { + "id": "nepal--r1-c1", + "slug": "nepal--r1-c1", + "name": "Nepal 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "80.04913,26.3445,82.773463,28.41136", + "source_region_id": "nepal", + "source_size_bytes": 411654489, + "west": 80.04913, + "south": 26.3445, + "east": 82.773463, + "north": 28.41136, + "asset_name": "occumed-nepal--r1-c1.pmtiles", + "metadata_name": "occumed-nepal--r1-c1.json" + }, + { + "id": "nepal--r1-c2", + "slug": "nepal--r1-c2", + "name": "Nepal 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "82.773463,26.3445,85.497797,28.41136", + "source_region_id": "nepal", + "source_size_bytes": 411654489, + "west": 82.773463, + "south": 26.3445, + "east": 85.497797, + "north": 28.41136, + "asset_name": "occumed-nepal--r1-c2.pmtiles", + "metadata_name": "occumed-nepal--r1-c2.json" + }, + { + "id": "nepal--r1-c3", + "slug": "nepal--r1-c3", + "name": "Nepal 1.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "85.497797,26.3445,88.22213,28.41136", + "source_region_id": "nepal", + "source_size_bytes": 411654489, + "west": 85.497797, + "south": 26.3445, + "east": 88.22213, + "north": 28.41136, + "asset_name": "occumed-nepal--r1-c3.pmtiles", + "metadata_name": "occumed-nepal--r1-c3.json" + }, + { + "id": "nepal--r2-c1", + "slug": "nepal--r2-c1", + "name": "Nepal 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "80.04913,28.41136,82.773463,30.47822", + "source_region_id": "nepal", + "source_size_bytes": 411654489, + "west": 80.04913, + "south": 28.41136, + "east": 82.773463, + "north": 30.47822, + "asset_name": "occumed-nepal--r2-c1.pmtiles", + "metadata_name": "occumed-nepal--r2-c1.json" + }, + { + "id": "nepal--r2-c2", + "slug": "nepal--r2-c2", + "name": "Nepal 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "82.773463,28.41136,85.497797,30.47822", + "source_region_id": "nepal", + "source_size_bytes": 411654489, + "west": 82.773463, + "south": 28.41136, + "east": 85.497797, + "north": 30.47822, + "asset_name": "occumed-nepal--r2-c2.pmtiles", + "metadata_name": "occumed-nepal--r2-c2.json" + }, + { + "id": "nepal--r2-c3", + "slug": "nepal--r2-c3", + "name": "Nepal 2.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/nepal-latest.osm.pbf", + "extract_bbox": "85.497797,28.41136,88.22213,30.47822", + "source_region_id": "nepal", + "source_size_bytes": 411654489, + "west": 85.497797, + "south": 28.41136, + "east": 88.22213, + "north": 30.47822, + "asset_name": "occumed-nepal--r2-c3.pmtiles", + "metadata_name": "occumed-nepal--r2-c3.json" + }, + { + "id": "new-brunswick", + "slug": "new-brunswick", + "name": "New Brunswick", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/new-brunswick-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "new-brunswick", + "source_size_bytes": 66208736, + "west": -69.05975, + "south": 44.19205, + "east": -62.88575, + "north": 48.38075, + "asset_name": "occumed-new-brunswick.pmtiles", + "metadata_name": "occumed-new-brunswick.json" + }, + { + "id": "new-caledonia", + "slug": "new-caledonia", + "name": "New Caledonia", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-caledonia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "new-caledonia", + "source_size_bytes": 14185820, + "west": 157.9, + "south": -25, + "east": 174.1, + "north": -16.9, + "asset_name": "occumed-new-caledonia.pmtiles", + "metadata_name": "occumed-new-caledonia.json" + }, + { + "id": "new-south-wales", + "slug": "new-south-wales", + "name": "New South Wales (with ACT and JBT)", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/new-south-wales-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "new-south-wales", + "source_size_bytes": 264954591, + "west": 140.9948, + "south": -37.75984, + "east": 160.0747, + "north": -28.13898, + "asset_name": "occumed-new-south-wales.pmtiles", + "metadata_name": "occumed-new-south-wales.json" + }, + { + "id": "new-zealand--r1-c1", + "slug": "new-zealand--r1-c1", + "name": "New Zealand 1.1", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "162.096,-56.75268,174.25555,-42.62034", + "source_region_id": "new-zealand", + "source_size_bytes": 400501268, + "west": 162.096, + "south": -56.75268, + "east": 174.25555, + "north": -42.62034, + "asset_name": "occumed-new-zealand--r1-c1.pmtiles", + "metadata_name": "occumed-new-zealand--r1-c1.json" + }, + { + "id": "new-zealand--r1-c2-s1", + "slug": "new-zealand--r1-c2-s1", + "name": "New Zealand 1.2-s1", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "174.25555,-56.75268,180,-42.62034", + "source_region_id": "new-zealand", + "source_size_bytes": 400501268, + "west": 174.25555, + "south": -56.75268, + "east": 180, + "north": -42.62034, + "asset_name": "occumed-new-zealand--r1-c2-s1.pmtiles", + "metadata_name": "occumed-new-zealand--r1-c2-s1.json" + }, + { + "id": "new-zealand--r1-c2-s2", + "slug": "new-zealand--r1-c2-s2", + "name": "New Zealand 1.2-s2", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "-180,-56.75268,-173.5849,-42.62034", + "source_region_id": "new-zealand", + "source_size_bytes": 400501268, + "west": -180, + "south": -56.75268, + "east": -173.5849, + "north": -42.62034, + "asset_name": "occumed-new-zealand--r1-c2-s2.pmtiles", + "metadata_name": "occumed-new-zealand--r1-c2-s2.json" + }, + { + "id": "new-zealand--r2-c1", + "slug": "new-zealand--r2-c1", + "name": "New Zealand 2.1", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "162.096,-42.62034,174.25555,-28.488", + "source_region_id": "new-zealand", + "source_size_bytes": 400501268, + "west": 162.096, + "south": -42.62034, + "east": 174.25555, + "north": -28.488, + "asset_name": "occumed-new-zealand--r2-c1.pmtiles", + "metadata_name": "occumed-new-zealand--r2-c1.json" + }, + { + "id": "new-zealand--r2-c2-s1", + "slug": "new-zealand--r2-c2-s1", + "name": "New Zealand 2.2-s1", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "174.25555,-42.62034,180,-28.488", + "source_region_id": "new-zealand", + "source_size_bytes": 400501268, + "west": 174.25555, + "south": -42.62034, + "east": 180, + "north": -28.488, + "asset_name": "occumed-new-zealand--r2-c2-s1.pmtiles", + "metadata_name": "occumed-new-zealand--r2-c2-s1.json" + }, + { + "id": "new-zealand--r2-c2-s2", + "slug": "new-zealand--r2-c2-s2", + "name": "New Zealand 2.2-s2", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/new-zealand-latest.osm.pbf", + "extract_bbox": "-180,-42.62034,-173.5849,-28.488", + "source_region_id": "new-zealand", + "source_size_bytes": 400501268, + "west": -180, + "south": -42.62034, + "east": -173.5849, + "north": -28.488, + "asset_name": "occumed-new-zealand--r2-c2-s2.pmtiles", + "metadata_name": "occumed-new-zealand--r2-c2-s2.json" + }, + { + "id": "newfoundland-and-labrador", + "slug": "newfoundland-and-labrador", + "name": "Newfoundland and Labrador", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/newfoundland-and-labrador-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "newfoundland-and-labrador", + "source_size_bytes": 259091216, + "west": -67.87079, + "south": 44.45787, + "east": -44.17684, + "north": 60.50864, + "asset_name": "occumed-newfoundland-and-labrador.pmtiles", + "metadata_name": "occumed-newfoundland-and-labrador.json" + }, + { + "id": "nicaragua", + "slug": "nicaragua", + "name": "Nicaragua", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/nicaragua-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "nicaragua", + "source_size_bytes": 60805109, + "west": -87.9774, + "south": 10.70177, + "east": -82.37865, + "north": 15.1119, + "asset_name": "occumed-nicaragua.pmtiles", + "metadata_name": "occumed-nicaragua.json" + }, + { + "id": "niederbayern", + "slug": "niederbayern", + "name": "Niederbayern", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bayern/niederbayern-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "niederbayern", + "source_size_bytes": 94595196, + "west": 11.59302, + "south": 48.20179, + "east": 13.84947, + "north": 49.17605, + "asset_name": "occumed-niederbayern.pmtiles", + "metadata_name": "occumed-niederbayern.json" + }, + { + "id": "niedersachsen--r1-c1", + "slug": "niedersachsen--r1-c1", + "name": "Niedersachsen (mit Bremen) 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "6.295338,51.29348,8.065995,52.766515", + "source_region_id": "niedersachsen", + "source_size_bytes": 500767993, + "west": 6.295338, + "south": 51.29348, + "east": 8.065995, + "north": 52.766515, + "asset_name": "occumed-niedersachsen--r1-c1.pmtiles", + "metadata_name": "occumed-niedersachsen--r1-c1.json" + }, + { + "id": "niedersachsen--r1-c2", + "slug": "niedersachsen--r1-c2", + "name": "Niedersachsen (mit Bremen) 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "8.065995,51.29348,9.836653,52.766515", + "source_region_id": "niedersachsen", + "source_size_bytes": 500767993, + "west": 8.065995, + "south": 51.29348, + "east": 9.836653, + "north": 52.766515, + "asset_name": "occumed-niedersachsen--r1-c2.pmtiles", + "metadata_name": "occumed-niedersachsen--r1-c2.json" + }, + { + "id": "niedersachsen--r1-c3", + "slug": "niedersachsen--r1-c3", + "name": "Niedersachsen (mit Bremen) 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "9.836653,51.29348,11.60731,52.766515", + "source_region_id": "niedersachsen", + "source_size_bytes": 500767993, + "west": 9.836653, + "south": 51.29348, + "east": 11.60731, + "north": 52.766515, + "asset_name": "occumed-niedersachsen--r1-c3.pmtiles", + "metadata_name": "occumed-niedersachsen--r1-c3.json" + }, + { + "id": "niedersachsen--r2-c1", + "slug": "niedersachsen--r2-c1", + "name": "Niedersachsen (mit Bremen) 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "6.295338,52.766515,8.065995,54.23955", + "source_region_id": "niedersachsen", + "source_size_bytes": 500767993, + "west": 6.295338, + "south": 52.766515, + "east": 8.065995, + "north": 54.23955, + "asset_name": "occumed-niedersachsen--r2-c1.pmtiles", + "metadata_name": "occumed-niedersachsen--r2-c1.json" + }, + { + "id": "niedersachsen--r2-c2", + "slug": "niedersachsen--r2-c2", + "name": "Niedersachsen (mit Bremen) 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "8.065995,52.766515,9.836653,54.23955", + "source_region_id": "niedersachsen", + "source_size_bytes": 500767993, + "west": 8.065995, + "south": 52.766515, + "east": 9.836653, + "north": 54.23955, + "asset_name": "occumed-niedersachsen--r2-c2.pmtiles", + "metadata_name": "occumed-niedersachsen--r2-c2.json" + }, + { + "id": "niedersachsen--r2-c3", + "slug": "niedersachsen--r2-c3", + "name": "Niedersachsen (mit Bremen) 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/niedersachsen-latest.osm.pbf", + "extract_bbox": "9.836653,52.766515,11.60731,54.23955", + "source_region_id": "niedersachsen", + "source_size_bytes": 500767993, + "west": 9.836653, + "south": 52.766515, + "east": 11.60731, + "north": 54.23955, + "asset_name": "occumed-niedersachsen--r2-c3.pmtiles", + "metadata_name": "occumed-niedersachsen--r2-c3.json" + }, + { + "id": "niger", + "slug": "niger", + "name": "Niger", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/niger-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "niger", + "source_size_bytes": 76226077, + "west": 0.119721, + "south": 11.68684, + "east": 16.05605, + "north": 23.56864, + "asset_name": "occumed-niger.pmtiles", + "metadata_name": "occumed-niger.json" + }, + { + "id": "nigeria--r1-c1", + "slug": "nigeria--r1-c1", + "name": "Nigeria 1.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "2.664528,2.674022,6.669875,8.286381", + "source_region_id": "nigeria", + "source_size_bytes": 711281084, + "west": 2.664528, + "south": 2.674022, + "east": 6.669875, + "north": 8.286381, + "asset_name": "occumed-nigeria--r1-c1.pmtiles", + "metadata_name": "occumed-nigeria--r1-c1.json" + }, + { + "id": "nigeria--r1-c2", + "slug": "nigeria--r1-c2", + "name": "Nigeria 1.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "6.669875,2.674022,10.675223,8.286381", + "source_region_id": "nigeria", + "source_size_bytes": 711281084, + "west": 6.669875, + "south": 2.674022, + "east": 10.675223, + "north": 8.286381, + "asset_name": "occumed-nigeria--r1-c2.pmtiles", + "metadata_name": "occumed-nigeria--r1-c2.json" + }, + { + "id": "nigeria--r1-c3", + "slug": "nigeria--r1-c3", + "name": "Nigeria 1.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "10.675223,2.674022,14.68057,8.286381", + "source_region_id": "nigeria", + "source_size_bytes": 711281084, + "west": 10.675223, + "south": 2.674022, + "east": 14.68057, + "north": 8.286381, + "asset_name": "occumed-nigeria--r1-c3.pmtiles", + "metadata_name": "occumed-nigeria--r1-c3.json" + }, + { + "id": "nigeria--r2-c1", + "slug": "nigeria--r2-c1", + "name": "Nigeria 2.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "2.664528,8.286381,6.669875,13.89874", + "source_region_id": "nigeria", + "source_size_bytes": 711281084, + "west": 2.664528, + "south": 8.286381, + "east": 6.669875, + "north": 13.89874, + "asset_name": "occumed-nigeria--r2-c1.pmtiles", + "metadata_name": "occumed-nigeria--r2-c1.json" + }, + { + "id": "nigeria--r2-c2", + "slug": "nigeria--r2-c2", + "name": "Nigeria 2.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "6.669875,8.286381,10.675223,13.89874", + "source_region_id": "nigeria", + "source_size_bytes": 711281084, + "west": 6.669875, + "south": 8.286381, + "east": 10.675223, + "north": 13.89874, + "asset_name": "occumed-nigeria--r2-c2.pmtiles", + "metadata_name": "occumed-nigeria--r2-c2.json" + }, + { + "id": "nigeria--r2-c3", + "slug": "nigeria--r2-c3", + "name": "Nigeria 2.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/nigeria-latest.osm.pbf", + "extract_bbox": "10.675223,8.286381,14.68057,13.89874", + "source_region_id": "nigeria", + "source_size_bytes": 711281084, + "west": 10.675223, + "south": 8.286381, + "east": 14.68057, + "north": 13.89874, + "asset_name": "occumed-nigeria--r2-c3.pmtiles", + "metadata_name": "occumed-nigeria--r2-c3.json" + }, + { + "id": "ningxia", + "slug": "ningxia", + "name": "Ningxia", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/ningxia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ningxia", + "source_size_bytes": 8273359, + "west": 104.275, + "south": 35.23272, + "east": 107.6571, + "north": 39.38606, + "asset_name": "occumed-ningxia.pmtiles", + "metadata_name": "occumed-ningxia.json" + }, + { + "id": "niue", + "slug": "niue", + "name": "Niue", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/niue-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "niue", + "source_size_bytes": 424044, + "west": -172.027, + "south": -22.47347, + "east": -166.2989, + "north": -16.63667, + "asset_name": "occumed-niue.pmtiles", + "metadata_name": "occumed-niue.json" + }, + { + "id": "noord-brabant", + "slug": "noord-brabant", + "name": "Noord-Brabant", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/noord-brabant-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "noord-brabant", + "source_size_bytes": 206269647, + "west": 4.189152, + "south": 51.21808, + "east": 6.049354, + "north": 51.83181, + "asset_name": "occumed-noord-brabant.pmtiles", + "metadata_name": "occumed-noord-brabant.json" + }, + { + "id": "noord-holland", + "slug": "noord-holland", + "name": "Noord-Holland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/noord-holland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "noord-holland", + "source_size_bytes": 188250871, + "west": 3.896906, + "south": 52.16497, + "east": 5.378479, + "north": 53.28945, + "asset_name": "occumed-noord-holland.pmtiles", + "metadata_name": "occumed-noord-holland.json" + }, + { + "id": "norcal--r1-c1", + "slug": "norcal--r1-c1", + "name": "Northern California 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-125.8935,35.78528,-122.477933,38.90073", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -125.8935, + "south": 35.78528, + "east": -122.477933, + "north": 38.90073, + "asset_name": "occumed-norcal--r1-c1.pmtiles", + "metadata_name": "occumed-norcal--r1-c1.json" + }, + { + "id": "norcal--r1-c2", + "slug": "norcal--r1-c2", + "name": "Northern California 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-122.477933,35.78528,-119.062367,38.90073", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -122.477933, + "south": 35.78528, + "east": -119.062367, + "north": 38.90073, + "asset_name": "occumed-norcal--r1-c2.pmtiles", + "metadata_name": "occumed-norcal--r1-c2.json" + }, + { + "id": "norcal--r1-c3", + "slug": "norcal--r1-c3", + "name": "Northern California 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-119.062367,35.78528,-115.6468,38.90073", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -119.062367, + "south": 35.78528, + "east": -115.6468, + "north": 38.90073, + "asset_name": "occumed-norcal--r1-c3.pmtiles", + "metadata_name": "occumed-norcal--r1-c3.json" + }, + { + "id": "norcal--r2-c1", + "slug": "norcal--r2-c1", + "name": "Northern California 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-125.8935,38.90073,-122.477933,42.01618", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -125.8935, + "south": 38.90073, + "east": -122.477933, + "north": 42.01618, + "asset_name": "occumed-norcal--r2-c1.pmtiles", + "metadata_name": "occumed-norcal--r2-c1.json" + }, + { + "id": "norcal--r2-c2", + "slug": "norcal--r2-c2", + "name": "Northern California 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-122.477933,38.90073,-119.062367,42.01618", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -122.477933, + "south": 38.90073, + "east": -119.062367, + "north": 42.01618, + "asset_name": "occumed-norcal--r2-c2.pmtiles", + "metadata_name": "occumed-norcal--r2-c2.json" + }, + { + "id": "norcal--r2-c3", + "slug": "norcal--r2-c3", + "name": "Northern California 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/norcal-latest.osm.pbf", + "extract_bbox": "-119.062367,38.90073,-115.6468,42.01618", + "source_region_id": "norcal", + "source_size_bytes": 647640328, + "west": -119.062367, + "south": 38.90073, + "east": -115.6468, + "north": 42.01618, + "asset_name": "occumed-norcal--r2-c3.pmtiles", + "metadata_name": "occumed-norcal--r2-c3.json" + }, + { + "id": "nord-est--r1-c1", + "slug": "nord-est--r1-c1", + "name": "Nord-Est 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-est-latest.osm.pbf", + "extract_bbox": "9.195461,43.72977,11.56212,45.41491", + "source_region_id": "nord-est", + "source_size_bytes": 620438447, + "west": 9.195461, + "south": 43.72977, + "east": 11.56212, + "north": 45.41491, + "asset_name": "occumed-nord-est--r1-c1.pmtiles", + "metadata_name": "occumed-nord-est--r1-c1.json" + }, + { + "id": "nord-est--r1-c2", + "slug": "nord-est--r1-c2", + "name": "Nord-Est 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-est-latest.osm.pbf", + "extract_bbox": "11.56212,43.72977,13.92878,45.41491", + "source_region_id": "nord-est", + "source_size_bytes": 620438447, + "west": 11.56212, + "south": 43.72977, + "east": 13.92878, + "north": 45.41491, + "asset_name": "occumed-nord-est--r1-c2.pmtiles", + "metadata_name": "occumed-nord-est--r1-c2.json" + }, + { + "id": "nord-est--r2-c1", + "slug": "nord-est--r2-c1", + "name": "Nord-Est 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-est-latest.osm.pbf", + "extract_bbox": "9.195461,45.41491,11.56212,47.10005", + "source_region_id": "nord-est", + "source_size_bytes": 620438447, + "west": 9.195461, + "south": 45.41491, + "east": 11.56212, + "north": 47.10005, + "asset_name": "occumed-nord-est--r2-c1.pmtiles", + "metadata_name": "occumed-nord-est--r2-c1.json" + }, + { + "id": "nord-est--r2-c2", + "slug": "nord-est--r2-c2", + "name": "Nord-Est 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-est-latest.osm.pbf", + "extract_bbox": "11.56212,45.41491,13.92878,47.10005", + "source_region_id": "nord-est", + "source_size_bytes": 620438447, + "west": 11.56212, + "south": 45.41491, + "east": 13.92878, + "north": 47.10005, + "asset_name": "occumed-nord-est--r2-c2.pmtiles", + "metadata_name": "occumed-nord-est--r2-c2.json" + }, + { + "id": "nord-norge--r1-c1", + "slug": "nord-norge--r1-c1", + "name": "Nord-Norge
(Northern Norway) 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "7.840204,64.93917,16.440019,68.672385", + "source_region_id": "nord-norge", + "source_size_bytes": 405312881, + "west": 7.840204, + "south": 64.93917, + "east": 16.440019, + "north": 68.672385, + "asset_name": "occumed-nord-norge--r1-c1.pmtiles", + "metadata_name": "occumed-nord-norge--r1-c1.json" + }, + { + "id": "nord-norge--r1-c2", + "slug": "nord-norge--r1-c2", + "name": "Nord-Norge
(Northern Norway) 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "16.440019,64.93917,25.039835,68.672385", + "source_region_id": "nord-norge", + "source_size_bytes": 405312881, + "west": 16.440019, + "south": 64.93917, + "east": 25.039835, + "north": 68.672385, + "asset_name": "occumed-nord-norge--r1-c2.pmtiles", + "metadata_name": "occumed-nord-norge--r1-c2.json" + }, + { + "id": "nord-norge--r1-c3", + "slug": "nord-norge--r1-c3", + "name": "Nord-Norge
(Northern Norway) 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "25.039835,64.93917,33.63965,68.672385", + "source_region_id": "nord-norge", + "source_size_bytes": 405312881, + "west": 25.039835, + "south": 64.93917, + "east": 33.63965, + "north": 68.672385, + "asset_name": "occumed-nord-norge--r1-c3.pmtiles", + "metadata_name": "occumed-nord-norge--r1-c3.json" + }, + { + "id": "nord-norge--r2-c1", + "slug": "nord-norge--r2-c1", + "name": "Nord-Norge
(Northern Norway) 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "7.840204,68.672385,16.440019,72.4056", + "source_region_id": "nord-norge", + "source_size_bytes": 405312881, + "west": 7.840204, + "south": 68.672385, + "east": 16.440019, + "north": 72.4056, + "asset_name": "occumed-nord-norge--r2-c1.pmtiles", + "metadata_name": "occumed-nord-norge--r2-c1.json" + }, + { + "id": "nord-norge--r2-c2", + "slug": "nord-norge--r2-c2", + "name": "Nord-Norge
(Northern Norway) 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "16.440019,68.672385,25.039835,72.4056", + "source_region_id": "nord-norge", + "source_size_bytes": 405312881, + "west": 16.440019, + "south": 68.672385, + "east": 25.039835, + "north": 72.4056, + "asset_name": "occumed-nord-norge--r2-c2.pmtiles", + "metadata_name": "occumed-nord-norge--r2-c2.json" + }, + { + "id": "nord-norge--r2-c3", + "slug": "nord-norge--r2-c3", + "name": "Nord-Norge
(Northern Norway) 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/nord-norge-latest.osm.pbf", + "extract_bbox": "25.039835,68.672385,33.63965,72.4056", + "source_region_id": "nord-norge", + "source_size_bytes": 405312881, + "west": 25.039835, + "south": 68.672385, + "east": 33.63965, + "north": 72.4056, + "asset_name": "occumed-nord-norge--r2-c3.pmtiles", + "metadata_name": "occumed-nord-norge--r2-c3.json" + }, + { + "id": "nord-ovest--r1-c1", + "slug": "nord-ovest--r1-c1", + "name": "Nord-Ovest 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "6.602696,43.48099,8.212917,45.06109", + "source_region_id": "nord-ovest", + "source_size_bytes": 585186451, + "west": 6.602696, + "south": 43.48099, + "east": 8.212917, + "north": 45.06109, + "asset_name": "occumed-nord-ovest--r1-c1.pmtiles", + "metadata_name": "occumed-nord-ovest--r1-c1.json" + }, + { + "id": "nord-ovest--r1-c2", + "slug": "nord-ovest--r1-c2", + "name": "Nord-Ovest 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "8.212917,43.48099,9.823139,45.06109", + "source_region_id": "nord-ovest", + "source_size_bytes": 585186451, + "west": 8.212917, + "south": 43.48099, + "east": 9.823139, + "north": 45.06109, + "asset_name": "occumed-nord-ovest--r1-c2.pmtiles", + "metadata_name": "occumed-nord-ovest--r1-c2.json" + }, + { + "id": "nord-ovest--r1-c3", + "slug": "nord-ovest--r1-c3", + "name": "Nord-Ovest 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "9.823139,43.48099,11.43336,45.06109", + "source_region_id": "nord-ovest", + "source_size_bytes": 585186451, + "west": 9.823139, + "south": 43.48099, + "east": 11.43336, + "north": 45.06109, + "asset_name": "occumed-nord-ovest--r1-c3.pmtiles", + "metadata_name": "occumed-nord-ovest--r1-c3.json" + }, + { + "id": "nord-ovest--r2-c1", + "slug": "nord-ovest--r2-c1", + "name": "Nord-Ovest 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "6.602696,45.06109,8.212917,46.64119", + "source_region_id": "nord-ovest", + "source_size_bytes": 585186451, + "west": 6.602696, + "south": 45.06109, + "east": 8.212917, + "north": 46.64119, + "asset_name": "occumed-nord-ovest--r2-c1.pmtiles", + "metadata_name": "occumed-nord-ovest--r2-c1.json" + }, + { + "id": "nord-ovest--r2-c2", + "slug": "nord-ovest--r2-c2", + "name": "Nord-Ovest 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "8.212917,45.06109,9.823139,46.64119", + "source_region_id": "nord-ovest", + "source_size_bytes": 585186451, + "west": 8.212917, + "south": 45.06109, + "east": 9.823139, + "north": 46.64119, + "asset_name": "occumed-nord-ovest--r2-c2.pmtiles", + "metadata_name": "occumed-nord-ovest--r2-c2.json" + }, + { + "id": "nord-ovest--r2-c3", + "slug": "nord-ovest--r2-c3", + "name": "Nord-Ovest 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf", + "extract_bbox": "9.823139,45.06109,11.43336,46.64119", + "source_region_id": "nord-ovest", + "source_size_bytes": 585186451, + "west": 9.823139, + "south": 45.06109, + "east": 11.43336, + "north": 46.64119, + "asset_name": "occumed-nord-ovest--r2-c3.pmtiles", + "metadata_name": "occumed-nord-ovest--r2-c3.json" + }, + { + "id": "nord-pas-de-calais", + "slug": "nord-pas-de-calais", + "name": "Nord-Pas-de-Calais", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/nord-pas-de-calais-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "nord-pas-de-calais", + "source_size_bytes": 237287302, + "west": 1.278311, + "south": 49.96764, + "east": 4.236622, + "north": 51.28121, + "asset_name": "occumed-nord-pas-de-calais.pmtiles", + "metadata_name": "occumed-nord-pas-de-calais.json" + }, + { + "id": "nordeste--r1-c1", + "slug": "nordeste--r1-c1", + "name": "Nordeste 1.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/nordeste-latest.osm.pbf", + "extract_bbox": "-48.77554,-18.59514,-38.59791,-7.961063", + "source_region_id": "nordeste", + "source_size_bytes": 436360578, + "west": -48.77554, + "south": -18.59514, + "east": -38.59791, + "north": -7.961063, + "asset_name": "occumed-nordeste--r1-c1.pmtiles", + "metadata_name": "occumed-nordeste--r1-c1.json" + }, + { + "id": "nordeste--r1-c2", + "slug": "nordeste--r1-c2", + "name": "Nordeste 1.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/nordeste-latest.osm.pbf", + "extract_bbox": "-38.59791,-18.59514,-28.42028,-7.961063", + "source_region_id": "nordeste", + "source_size_bytes": 436360578, + "west": -38.59791, + "south": -18.59514, + "east": -28.42028, + "north": -7.961063, + "asset_name": "occumed-nordeste--r1-c2.pmtiles", + "metadata_name": "occumed-nordeste--r1-c2.json" + }, + { + "id": "nordeste--r2-c1", + "slug": "nordeste--r2-c1", + "name": "Nordeste 2.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/nordeste-latest.osm.pbf", + "extract_bbox": "-48.77554,-7.961063,-38.59791,2.673015", + "source_region_id": "nordeste", + "source_size_bytes": 436360578, + "west": -48.77554, + "south": -7.961063, + "east": -38.59791, + "north": 2.673015, + "asset_name": "occumed-nordeste--r2-c1.pmtiles", + "metadata_name": "occumed-nordeste--r2-c1.json" + }, + { + "id": "nordeste--r2-c2", + "slug": "nordeste--r2-c2", + "name": "Nordeste 2.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/nordeste-latest.osm.pbf", + "extract_bbox": "-38.59791,-7.961063,-28.42028,2.673015", + "source_region_id": "nordeste", + "source_size_bytes": 436360578, + "west": -38.59791, + "south": -7.961063, + "east": -28.42028, + "north": 2.673015, + "asset_name": "occumed-nordeste--r2-c2.pmtiles", + "metadata_name": "occumed-nordeste--r2-c2.json" + }, + { + "id": "norfolk", + "slug": "norfolk", + "name": "Norfolk", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/norfolk-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "norfolk", + "source_size_bytes": 46550572, + "west": 0.15447, + "south": 52.35478, + "east": 1.992789, + "north": 53.35573, + "asset_name": "occumed-norfolk.pmtiles", + "metadata_name": "occumed-norfolk.json" + }, + { + "id": "norfolk-island", + "slug": "norfolk-island", + "name": "Norfolk Island", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/norfolk-island-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "norfolk-island", + "source_size_bytes": 334196, + "west": 167.6245, + "south": -29.46068, + "east": 168.3456, + "north": -28.75781, + "asset_name": "occumed-norfolk-island.pmtiles", + "metadata_name": "occumed-norfolk-island.json" + }, + { + "id": "norte", + "slug": "norte", + "name": "Norte", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/norte-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "norte", + "source_size_bytes": 158334629, + "west": -74.02313, + "south": -13.73407, + "east": -42.87915, + "north": 5.522895, + "asset_name": "occumed-norte.pmtiles", + "metadata_name": "occumed-norte.json" + }, + { + "id": "north-admreg--r1-c1", + "slug": "north-admreg--r1-c1", + "name": "North Administrative Region 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-141.7761,51.0635,-133.830067,55.53514", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -141.7761, + "south": 51.0635, + "east": -133.830067, + "north": 55.53514, + "asset_name": "occumed-north-admreg--r1-c1.pmtiles", + "metadata_name": "occumed-north-admreg--r1-c1.json" + }, + { + "id": "north-admreg--r1-c2", + "slug": "north-admreg--r1-c2", + "name": "North Administrative Region 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-133.830067,51.0635,-125.884033,55.53514", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -133.830067, + "south": 51.0635, + "east": -125.884033, + "north": 55.53514, + "asset_name": "occumed-north-admreg--r1-c2.pmtiles", + "metadata_name": "occumed-north-admreg--r1-c2.json" + }, + { + "id": "north-admreg--r1-c3", + "slug": "north-admreg--r1-c3", + "name": "North Administrative Region 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-125.884033,51.0635,-117.938,55.53514", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -125.884033, + "south": 51.0635, + "east": -117.938, + "north": 55.53514, + "asset_name": "occumed-north-admreg--r1-c3.pmtiles", + "metadata_name": "occumed-north-admreg--r1-c3.json" + }, + { + "id": "north-admreg--r2-c1", + "slug": "north-admreg--r2-c1", + "name": "North Administrative Region 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-141.7761,55.53514,-133.830067,60.00678", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -141.7761, + "south": 55.53514, + "east": -133.830067, + "north": 60.00678, + "asset_name": "occumed-north-admreg--r2-c1.pmtiles", + "metadata_name": "occumed-north-admreg--r2-c1.json" + }, + { + "id": "north-admreg--r2-c2", + "slug": "north-admreg--r2-c2", + "name": "North Administrative Region 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-133.830067,55.53514,-125.884033,60.00678", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -133.830067, + "south": 55.53514, + "east": -125.884033, + "north": 60.00678, + "asset_name": "occumed-north-admreg--r2-c2.pmtiles", + "metadata_name": "occumed-north-admreg--r2-c2.json" + }, + { + "id": "north-admreg--r2-c3", + "slug": "north-admreg--r2-c3", + "name": "North Administrative Region 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/north-admreg-latest.osm.pbf", + "extract_bbox": "-125.884033,55.53514,-117.938,60.00678", + "source_region_id": "north-admreg", + "source_size_bytes": 761345199, + "west": -125.884033, + "south": 55.53514, + "east": -117.938, + "north": 60.00678, + "asset_name": "occumed-north-admreg--r2-c3.pmtiles", + "metadata_name": "occumed-north-admreg--r2-c3.json" + }, + { + "id": "north-caucasus-fed-district", + "slug": "north-caucasus-fed-district", + "name": "North Caucasus Federal District", + "continent": "north-caucasus-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/north-caucasus-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "north-caucasus-fed-district", + "source_size_bytes": 127853776, + "west": 40.67265, + "south": 41.1355, + "east": 48.86453, + "north": 46.23914, + "asset_name": "occumed-north-caucasus-fed-district.pmtiles", + "metadata_name": "occumed-north-caucasus-fed-district.json" + }, + { + "id": "north-eastern-zone", + "slug": "north-eastern-zone", + "name": "North-Eastern Zone", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/north-eastern-zone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "north-eastern-zone", + "source_size_bytes": 107270362, + "west": 88.00852, + "south": 21.92712, + "east": 97.41989, + "north": 29.42883, + "asset_name": "occumed-north-eastern-zone.pmtiles", + "metadata_name": "occumed-north-eastern-zone.json" + }, + { + "id": "north-korea", + "slug": "north-korea", + "name": "North Korea", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/north-korea-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "north-korea", + "source_size_bytes": 91162921, + "west": 123.697, + "south": 37.61103, + "east": 131.6447, + "north": 43.02043, + "asset_name": "occumed-north-korea.pmtiles", + "metadata_name": "occumed-north-korea.json" + }, + { + "id": "north-yorkshire", + "slug": "north-yorkshire", + "name": "North Yorkshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/north-yorkshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "north-yorkshire", + "source_size_bytes": 60961843, + "west": -2.567177, + "south": 53.61999, + "east": -0.040615, + "north": 54.70222, + "asset_name": "occumed-north-yorkshire.pmtiles", + "metadata_name": "occumed-north-yorkshire.json" + }, + { + "id": "northamptonshire", + "slug": "northamptonshire", + "name": "Northamptonshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/northamptonshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "northamptonshire", + "source_size_bytes": 21958279, + "west": -1.334028, + "south": 51.9765, + "east": -0.34068, + "north": 52.64459, + "asset_name": "occumed-northamptonshire.pmtiles", + "metadata_name": "occumed-northamptonshire.json" + }, + { + "id": "northern-territory", + "slug": "northern-territory", + "name": "Northern Territory", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/northern-territory-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "northern-territory", + "source_size_bytes": 17411331, + "west": 128.6705, + "south": -26.00085, + "east": 140.4241, + "north": -9.971934, + "asset_name": "occumed-northern-territory.pmtiles", + "metadata_name": "occumed-northern-territory.json" + }, + { + "id": "northern-zone", + "slug": "northern-zone", + "name": "Northern Zone", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/northern-zone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "northern-zone", + "source_size_bytes": 222276940, + "west": 69.43908, + "south": 23.04688, + "east": 79.48883, + "north": 35.73091, + "asset_name": "occumed-northern-zone.pmtiles", + "metadata_name": "occumed-northern-zone.json" + }, + { + "id": "northumberland", + "slug": "northumberland", + "name": "Northumberland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/northumberland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "northumberland", + "source_size_bytes": 25984477, + "west": -2.690724, + "south": 54.78162, + "east": -1.223287, + "north": 55.84866, + "asset_name": "occumed-northumberland.pmtiles", + "metadata_name": "occumed-northumberland.json" + }, + { + "id": "northwest-territories--r1-c1", + "slug": "northwest-territories--r1-c1", + "name": "Northwest Territories 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/northwest-territories-latest.osm.pbf", + "extract_bbox": "-136.6974,59.9896,-119.3367,70.822215", + "source_region_id": "northwest-territories", + "source_size_bytes": 425547719, + "west": -136.6974, + "south": 59.9896, + "east": -119.3367, + "north": 70.822215, + "asset_name": "occumed-northwest-territories--r1-c1.pmtiles", + "metadata_name": "occumed-northwest-territories--r1-c1.json" + }, + { + "id": "northwest-territories--r1-c2", + "slug": "northwest-territories--r1-c2", + "name": "Northwest Territories 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/northwest-territories-latest.osm.pbf", + "extract_bbox": "-119.3367,59.9896,-101.976,70.822215", + "source_region_id": "northwest-territories", + "source_size_bytes": 425547719, + "west": -119.3367, + "south": 59.9896, + "east": -101.976, + "north": 70.822215, + "asset_name": "occumed-northwest-territories--r1-c2.pmtiles", + "metadata_name": "occumed-northwest-territories--r1-c2.json" + }, + { + "id": "northwest-territories--r2-c1", + "slug": "northwest-territories--r2-c1", + "name": "Northwest Territories 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/northwest-territories-latest.osm.pbf", + "extract_bbox": "-136.6974,70.822215,-119.3367,81.65483", + "source_region_id": "northwest-territories", + "source_size_bytes": 425547719, + "west": -136.6974, + "south": 70.822215, + "east": -119.3367, + "north": 81.65483, + "asset_name": "occumed-northwest-territories--r2-c1.pmtiles", + "metadata_name": "occumed-northwest-territories--r2-c1.json" + }, + { + "id": "northwest-territories--r2-c2", + "slug": "northwest-territories--r2-c2", + "name": "Northwest Territories 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/northwest-territories-latest.osm.pbf", + "extract_bbox": "-119.3367,70.822215,-101.976,81.65483", + "source_region_id": "northwest-territories", + "source_size_bytes": 425547719, + "west": -119.3367, + "south": 70.822215, + "east": -101.976, + "north": 81.65483, + "asset_name": "occumed-northwest-territories--r2-c2.pmtiles", + "metadata_name": "occumed-northwest-territories--r2-c2.json" + }, + { + "id": "northwestern-fed-district--r1-c1", + "slug": "northwestern-fed-district--r1-c1", + "name": "Northwestern Federal District 1.1", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "19.40837,54.31282,46.01659,68.429215", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 19.40837, + "south": 54.31282, + "east": 46.01659, + "north": 68.429215, + "asset_name": "occumed-northwestern-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r1-c1.json" + }, + { + "id": "northwestern-fed-district--r1-c2", + "slug": "northwestern-fed-district--r1-c2", + "name": "Northwestern Federal District 1.2", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "46.01659,54.31282,72.62481,68.429215", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 46.01659, + "south": 54.31282, + "east": 72.62481, + "north": 68.429215, + "asset_name": "occumed-northwestern-fed-district--r1-c2.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r1-c2.json" + }, + { + "id": "northwestern-fed-district--r2-c1", + "slug": "northwestern-fed-district--r2-c1", + "name": "Northwestern Federal District 2.1", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "19.40837,68.429215,46.01659,82.54561", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 19.40837, + "south": 68.429215, + "east": 46.01659, + "north": 82.54561, + "asset_name": "occumed-northwestern-fed-district--r2-c1.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r2-c1.json" + }, + { + "id": "northwestern-fed-district--r2-c2", + "slug": "northwestern-fed-district--r2-c2", + "name": "Northwestern Federal District 2.2", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "46.01659,68.429215,72.62481,82.54561", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 46.01659, + "south": 68.429215, + "east": 72.62481, + "north": 82.54561, + "asset_name": "occumed-northwestern-fed-district--r2-c2.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r2-c2.json" + }, + { + "id": "nottinghamshire", + "slug": "nottinghamshire", + "name": "Nottinghamshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/nottinghamshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "nottinghamshire", + "source_size_bytes": 38325205, + "west": -1.344477, + "south": 52.78153, + "east": -0.666651, + "north": 53.50315, + "asset_name": "occumed-nottinghamshire.pmtiles", + "metadata_name": "occumed-nottinghamshire.json" + }, + { + "id": "nova-scotia", + "slug": "nova-scotia", + "name": "Nova Scotia", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nova-scotia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "nova-scotia", + "source_size_bytes": 98778226, + "west": -67.24728, + "south": 42.10691, + "east": -58.22593, + "north": 47.89793, + "asset_name": "occumed-nova-scotia.pmtiles", + "metadata_name": "occumed-nova-scotia.json" + }, + { + "id": "nusa-tenggara", + "slug": "nusa-tenggara", + "name": "Nusa-Tenggara", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/nusa-tenggara-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "nusa-tenggara", + "source_size_bytes": 173096950, + "west": 114.4089, + "south": -11.60655, + "east": 128.408, + "north": -6.675509, + "asset_name": "occumed-nusa-tenggara.pmtiles", + "metadata_name": "occumed-nusa-tenggara.json" + }, + { + "id": "oberbayern", + "slug": "oberbayern", + "name": "Oberbayern", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bayern/oberbayern-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "oberbayern", + "source_size_bytes": 255547939, + "west": 10.71268, + "south": 47.3913, + "east": 13.10973, + "north": 49.09052, + "asset_name": "occumed-oberbayern.pmtiles", + "metadata_name": "occumed-oberbayern.json" + }, + { + "id": "oberfranken", + "slug": "oberfranken", + "name": "Oberfranken", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bayern/oberfranken-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "oberfranken", + "source_size_bytes": 94112484, + "west": 10.43816, + "south": 49.5854, + "east": 12.27356, + "north": 50.52571, + "asset_name": "occumed-oberfranken.pmtiles", + "metadata_name": "occumed-oberfranken.json" + }, + { + "id": "oberpfalz", + "slug": "oberpfalz", + "name": "Oberpfalz", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bayern/oberpfalz-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "oberpfalz", + "source_size_bytes": 85003497, + "west": 11.18231, + "south": 48.76243, + "east": 13.17628, + "north": 50.08323, + "asset_name": "occumed-oberpfalz.pmtiles", + "metadata_name": "occumed-oberpfalz.json" + }, + { + "id": "okanagan-admreg", + "slug": "okanagan-admreg", + "name": "Okanagan Administrative Region", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/okanagan-admreg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "okanagan-admreg", + "source_size_bytes": 44507957, + "west": -121.1, + "south": 48.99456, + "east": -116.8259, + "north": 52.57309, + "asset_name": "occumed-okanagan-admreg.pmtiles", + "metadata_name": "occumed-okanagan-admreg.json" + }, + { + "id": "olomoucky", + "slug": "olomoucky", + "name": "Olomoucký kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/olomoucky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "olomoucky", + "source_size_bytes": 57279794, + "west": 16.70909, + "south": 49.26735, + "east": 17.92035, + "north": 50.45234, + "asset_name": "occumed-olomoucky.pmtiles", + "metadata_name": "occumed-olomoucky.json" + }, + { + "id": "ontario--r1-c1", + "slug": "ontario--r1-c1", + "name": "Ontario 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/ontario-latest.osm.pbf", + "extract_bbox": "-95.15965,41.66009,-84.734815,49.584175", + "source_region_id": "ontario", + "source_size_bytes": 966878682, + "west": -95.15965, + "south": 41.66009, + "east": -84.734815, + "north": 49.584175, + "asset_name": "occumed-ontario--r1-c1.pmtiles", + "metadata_name": "occumed-ontario--r1-c1.json" + }, + { + "id": "ontario--r1-c2", + "slug": "ontario--r1-c2", + "name": "Ontario 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/ontario-latest.osm.pbf", + "extract_bbox": "-84.734815,41.66009,-74.30998,49.584175", + "source_region_id": "ontario", + "source_size_bytes": 966878682, + "west": -84.734815, + "south": 41.66009, + "east": -74.30998, + "north": 49.584175, + "asset_name": "occumed-ontario--r1-c2.pmtiles", + "metadata_name": "occumed-ontario--r1-c2.json" + }, + { + "id": "ontario--r2-c1", + "slug": "ontario--r2-c1", + "name": "Ontario 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/ontario-latest.osm.pbf", + "extract_bbox": "-95.15965,49.584175,-84.734815,57.50826", + "source_region_id": "ontario", + "source_size_bytes": 966878682, + "west": -95.15965, + "south": 49.584175, + "east": -84.734815, + "north": 57.50826, + "asset_name": "occumed-ontario--r2-c1.pmtiles", + "metadata_name": "occumed-ontario--r2-c1.json" + }, + { + "id": "ontario--r2-c2", + "slug": "ontario--r2-c2", + "name": "Ontario 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/ontario-latest.osm.pbf", + "extract_bbox": "-84.734815,49.584175,-74.30998,57.50826", + "source_region_id": "ontario", + "source_size_bytes": 966878682, + "west": -84.734815, + "south": 49.584175, + "east": -74.30998, + "north": 57.50826, + "asset_name": "occumed-ontario--r2-c2.pmtiles", + "metadata_name": "occumed-ontario--r2-c2.json" + }, + { + "id": "opolskie", + "slug": "opolskie", + "name": "Województwo opolskie
(Opole Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/opolskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "opolskie", + "source_size_bytes": 54136423, + "west": 16.9015, + "south": 49.95766, + "east": 18.70219, + "north": 51.2014, + "asset_name": "occumed-opolskie.pmtiles", + "metadata_name": "occumed-opolskie.json" + }, + { + "id": "ostlandet--r1-c1", + "slug": "ostlandet--r1-c1", + "name": "Østlandet
(Eastern Norway) 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/ostlandet-latest.osm.pbf", + "extract_bbox": "7.095391,58.5968,9.98805,60.64707", + "source_region_id": "ostlandet", + "source_size_bytes": 453655235, + "west": 7.095391, + "south": 58.5968, + "east": 9.98805, + "north": 60.64707, + "asset_name": "occumed-ostlandet--r1-c1.pmtiles", + "metadata_name": "occumed-ostlandet--r1-c1.json" + }, + { + "id": "ostlandet--r1-c2", + "slug": "ostlandet--r1-c2", + "name": "Østlandet
(Eastern Norway) 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/ostlandet-latest.osm.pbf", + "extract_bbox": "9.98805,58.5968,12.88071,60.64707", + "source_region_id": "ostlandet", + "source_size_bytes": 453655235, + "west": 9.98805, + "south": 58.5968, + "east": 12.88071, + "north": 60.64707, + "asset_name": "occumed-ostlandet--r1-c2.pmtiles", + "metadata_name": "occumed-ostlandet--r1-c2.json" + }, + { + "id": "ostlandet--r2-c1", + "slug": "ostlandet--r2-c1", + "name": "Østlandet
(Eastern Norway) 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/ostlandet-latest.osm.pbf", + "extract_bbox": "7.095391,60.64707,9.98805,62.69734", + "source_region_id": "ostlandet", + "source_size_bytes": 453655235, + "west": 7.095391, + "south": 60.64707, + "east": 9.98805, + "north": 62.69734, + "asset_name": "occumed-ostlandet--r2-c1.pmtiles", + "metadata_name": "occumed-ostlandet--r2-c1.json" + }, + { + "id": "ostlandet--r2-c2", + "slug": "ostlandet--r2-c2", + "name": "Østlandet
(Eastern Norway) 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/ostlandet-latest.osm.pbf", + "extract_bbox": "9.98805,60.64707,12.88071,62.69734", + "source_region_id": "ostlandet", + "source_size_bytes": 453655235, + "west": 9.98805, + "south": 60.64707, + "east": 12.88071, + "north": 62.69734, + "asset_name": "occumed-ostlandet--r2-c2.pmtiles", + "metadata_name": "occumed-ostlandet--r2-c2.json" + }, + { + "id": "overijssel", + "slug": "overijssel", + "name": "Overijssel", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/overijssel-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "overijssel", + "source_size_bytes": 112845901, + "west": 5.776793, + "south": 52.11349, + "east": 7.075066, + "north": 52.85539, + "asset_name": "occumed-overijssel.pmtiles", + "metadata_name": "occumed-overijssel.json" + }, + { + "id": "oxfordshire", + "slug": "oxfordshire", + "name": "Oxfordshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/oxfordshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "oxfordshire", + "source_size_bytes": 27680473, + "west": -1.719533, + "south": 51.46057, + "east": -0.86985, + "north": 52.16807, + "asset_name": "occumed-oxfordshire.pmtiles", + "metadata_name": "occumed-oxfordshire.json" + }, + { + "id": "pais-vasco", + "slug": "pais-vasco", + "name": "País Vasco", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/pais-vasco-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "pais-vasco", + "source_size_bytes": 68408670, + "west": -3.454342, + "south": 42.46919, + "east": -1.666284, + "north": 43.74729, + "asset_name": "occumed-pais-vasco.pmtiles", + "metadata_name": "occumed-pais-vasco.json" + }, + { + "id": "pakistan", + "slug": "pakistan", + "name": "Pakistan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/pakistan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "pakistan", + "source_size_bytes": 154359134, + "west": 60.82168, + "south": 23.3763, + "east": 77.22427, + "north": 37.10667, + "asset_name": "occumed-pakistan.pmtiles", + "metadata_name": "occumed-pakistan.json" + }, + { + "id": "palau", + "slug": "palau", + "name": "Palau", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/palau-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "palau", + "source_size_bytes": 819228, + "west": 130.1034, + "south": 1.621407, + "east": 136.9541, + "north": 11.48818, + "asset_name": "occumed-palau.pmtiles", + "metadata_name": "occumed-palau.json" + }, + { + "id": "panama", + "slug": "panama", + "name": "Panama", + "continent": "central-america", + "pbf_url": "https://download.geofabrik.de/central-america/panama-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "panama", + "source_size_bytes": 33978448, + "west": -83.46462, + "south": 6.644027, + "east": -77.08126, + "north": 11.20708, + "asset_name": "occumed-panama.pmtiles", + "metadata_name": "occumed-panama.json" + }, + { + "id": "papua", + "slug": "papua", + "name": "Papua", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/papua-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "papua", + "source_size_bytes": 34733209, + "west": 128.2819, + "south": -9.495116, + "east": 141.0217, + "north": 2.075967, + "asset_name": "occumed-papua.pmtiles", + "metadata_name": "occumed-papua.json" + }, + { + "id": "papua-new-guinea", + "slug": "papua-new-guinea", + "name": "Papua New Guinea", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/papua-new-guinea-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "papua-new-guinea", + "source_size_bytes": 53586702, + "west": 139.2014, + "south": -14.74845, + "east": 162.8034, + "north": 2.587814, + "asset_name": "occumed-papua-new-guinea.pmtiles", + "metadata_name": "occumed-papua-new-guinea.json" + }, + { + "id": "paraguay", + "slug": "paraguay", + "name": "Paraguay", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/paraguay-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "paraguay", + "source_size_bytes": 154073751, + "west": -62.69475, + "south": -27.65675, + "east": -54.20176, + "north": -19.24012, + "asset_name": "occumed-paraguay.pmtiles", + "metadata_name": "occumed-paraguay.json" + }, + { + "id": "pardubicky", + "slug": "pardubicky", + "name": "Pardubický kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/pardubicky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "pardubicky", + "source_size_bytes": 54849747, + "west": 15.3626, + "south": 49.57176, + "east": 16.86804, + "north": 50.21306, + "asset_name": "occumed-pardubicky.pmtiles", + "metadata_name": "occumed-pardubicky.json" + }, + { + "id": "pays-de-la-loire", + "slug": "pays-de-la-loire", + "name": "Pays de la Loire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/pays-de-la-loire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "pays-de-la-loire", + "source_size_bytes": 370140036, + "west": -2.674666, + "south": 46.21875, + "east": 0.918996, + "north": 48.57002, + "asset_name": "occumed-pays-de-la-loire.pmtiles", + "metadata_name": "occumed-pays-de-la-loire.json" + }, + { + "id": "peru", + "slug": "peru", + "name": "Peru", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/peru-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "peru", + "source_size_bytes": 254318496, + "west": -86.02509, + "south": -20.30552, + "east": -68.55439, + "north": 0.060049, + "asset_name": "occumed-peru.pmtiles", + "metadata_name": "occumed-peru.json" + }, + { + "id": "philippines--r1-c1", + "slug": "philippines--r1-c1", + "name": "Philippines 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/philippines-latest.osm.pbf", + "extract_bbox": "112.1661,4.382696,119.62015,12.956453", + "source_region_id": "philippines", + "source_size_bytes": 602156877, + "west": 112.1661, + "south": 4.382696, + "east": 119.62015, + "north": 12.956453, + "asset_name": "occumed-philippines--r1-c1.pmtiles", + "metadata_name": "occumed-philippines--r1-c1.json" + }, + { + "id": "philippines--r1-c2", + "slug": "philippines--r1-c2", + "name": "Philippines 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/philippines-latest.osm.pbf", + "extract_bbox": "119.62015,4.382696,127.0742,12.956453", + "source_region_id": "philippines", + "source_size_bytes": 602156877, + "west": 119.62015, + "south": 4.382696, + "east": 127.0742, + "north": 12.956453, + "asset_name": "occumed-philippines--r1-c2.pmtiles", + "metadata_name": "occumed-philippines--r1-c2.json" + }, + { + "id": "philippines--r2-c1", + "slug": "philippines--r2-c1", + "name": "Philippines 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/philippines-latest.osm.pbf", + "extract_bbox": "112.1661,12.956453,119.62015,21.53021", + "source_region_id": "philippines", + "source_size_bytes": 602156877, + "west": 112.1661, + "south": 12.956453, + "east": 119.62015, + "north": 21.53021, + "asset_name": "occumed-philippines--r2-c1.pmtiles", + "metadata_name": "occumed-philippines--r2-c1.json" + }, + { + "id": "philippines--r2-c2", + "slug": "philippines--r2-c2", + "name": "Philippines 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/philippines-latest.osm.pbf", + "extract_bbox": "119.62015,12.956453,127.0742,21.53021", + "source_region_id": "philippines", + "source_size_bytes": 602156877, + "west": 119.62015, + "south": 12.956453, + "east": 127.0742, + "north": 21.53021, + "asset_name": "occumed-philippines--r2-c2.pmtiles", + "metadata_name": "occumed-philippines--r2-c2.json" + }, + { + "id": "picardie", + "slug": "picardie", + "name": "Picardie", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/picardie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "picardie", + "source_size_bytes": 132579476, + "west": 1.360085, + "south": 48.83599, + "east": 4.256744, + "north": 50.37125, + "asset_name": "occumed-picardie.pmtiles", + "metadata_name": "occumed-picardie.json" + }, + { + "id": "pitcairn-islands", + "slug": "pitcairn-islands", + "name": "Pitcairn Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/pitcairn-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "pitcairn-islands", + "source_size_bytes": 114368, + "west": -133.0664, + "south": -27.66403, + "east": -118.3448, + "north": -21.59613, + "asset_name": "occumed-pitcairn-islands.pmtiles", + "metadata_name": "occumed-pitcairn-islands.json" + }, + { + "id": "plzensky", + "slug": "plzensky", + "name": "Plzeňský kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/plzensky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "plzensky", + "source_size_bytes": 70877925, + "west": 12.38887, + "south": 48.93387, + "east": 13.84247, + "north": 50.10566, + "asset_name": "occumed-plzensky.pmtiles", + "metadata_name": "occumed-plzensky.json" + }, + { + "id": "podkarpackie", + "slug": "podkarpackie", + "name": "Województwo podkarpackie
(Subcarpathian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/podkarpackie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "podkarpackie", + "source_size_bytes": 150866392, + "west": 21.13433, + "south": 48.98642, + "east": 23.5536, + "north": 50.82591, + "asset_name": "occumed-podkarpackie.pmtiles", + "metadata_name": "occumed-podkarpackie.json" + }, + { + "id": "podlaskie", + "slug": "podlaskie", + "name": "Województwo podlaskie
(Podlaskie Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/podlaskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "podlaskie", + "source_size_bytes": 77199961, + "west": 21.58465, + "south": 52.27112, + "east": 23.96141, + "north": 54.4254, + "asset_name": "occumed-podlaskie.pmtiles", + "metadata_name": "occumed-podlaskie.json" + }, + { + "id": "poitou-charentes", + "slug": "poitou-charentes", + "name": "Poitou-Charentes", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/poitou-charentes-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "poitou-charentes", + "source_size_bytes": 230199565, + "west": -1.898565, + "south": 45.0868, + "east": 1.214991, + "north": 47.17837, + "asset_name": "occumed-poitou-charentes.pmtiles", + "metadata_name": "occumed-poitou-charentes.json" + }, + { + "id": "polynesie-francaise", + "slug": "polynesie-francaise", + "name": "Polynésie française (French Polynesia)", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/polynesie-francaise-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "polynesie-francaise", + "source_size_bytes": 15636567, + "west": -158.5547, + "south": -31.54105, + "east": -132.5391, + "north": -4.915789, + "asset_name": "occumed-polynesie-francaise.pmtiles", + "metadata_name": "occumed-polynesie-francaise.json" + }, + { + "id": "pomorskie", + "slug": "pomorskie", + "name": "Województwo pomorskie
(Pomeranian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/pomorskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "pomorskie", + "source_size_bytes": 115937843, + "west": 16.68699, + "south": 53.4806, + "east": 19.66069, + "north": 55.07949, + "asset_name": "occumed-pomorskie.pmtiles", + "metadata_name": "occumed-pomorskie.json" + }, + { + "id": "portugal--r1-c1", + "slug": "portugal--r1-c1", + "name": "Portugal 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-31.6,32,-23.126504,37.08195", + "source_region_id": "portugal", + "source_size_bytes": 418866451, + "west": -31.6, + "south": 32, + "east": -23.126504, + "north": 37.08195, + "asset_name": "occumed-portugal--r1-c1.pmtiles", + "metadata_name": "occumed-portugal--r1-c1.json" + }, + { + "id": "portugal--r1-c2", + "slug": "portugal--r1-c2", + "name": "Portugal 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-23.126504,32,-14.653009,37.08195", + "source_region_id": "portugal", + "source_size_bytes": 418866451, + "west": -23.126504, + "south": 32, + "east": -14.653009, + "north": 37.08195, + "asset_name": "occumed-portugal--r1-c2.pmtiles", + "metadata_name": "occumed-portugal--r1-c2.json" + }, + { + "id": "portugal--r1-c3", + "slug": "portugal--r1-c3", + "name": "Portugal 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-14.653009,32,-6.179513,37.08195", + "source_region_id": "portugal", + "source_size_bytes": 418866451, + "west": -14.653009, + "south": 32, + "east": -6.179513, + "north": 37.08195, + "asset_name": "occumed-portugal--r1-c3.pmtiles", + "metadata_name": "occumed-portugal--r1-c3.json" + }, + { + "id": "portugal--r2-c1", + "slug": "portugal--r2-c1", + "name": "Portugal 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-31.6,37.08195,-23.126504,42.1639", + "source_region_id": "portugal", + "source_size_bytes": 418866451, + "west": -31.6, + "south": 37.08195, + "east": -23.126504, + "north": 42.1639, + "asset_name": "occumed-portugal--r2-c1.pmtiles", + "metadata_name": "occumed-portugal--r2-c1.json" + }, + { + "id": "portugal--r2-c2", + "slug": "portugal--r2-c2", + "name": "Portugal 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-23.126504,37.08195,-14.653009,42.1639", + "source_region_id": "portugal", + "source_size_bytes": 418866451, + "west": -23.126504, + "south": 37.08195, + "east": -14.653009, + "north": 42.1639, + "asset_name": "occumed-portugal--r2-c2.pmtiles", + "metadata_name": "occumed-portugal--r2-c2.json" + }, + { + "id": "portugal--r2-c3", + "slug": "portugal--r2-c3", + "name": "Portugal 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/portugal-latest.osm.pbf", + "extract_bbox": "-14.653009,37.08195,-6.179513,42.1639", + "source_region_id": "portugal", + "source_size_bytes": 418866451, + "west": -14.653009, + "south": 37.08195, + "east": -6.179513, + "north": 42.1639, + "asset_name": "occumed-portugal--r2-c3.pmtiles", + "metadata_name": "occumed-portugal--r2-c3.json" + }, + { + "id": "praha", + "slug": "praha", + "name": "Praha", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/praha-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "praha", + "source_size_bytes": 44224000, + "west": 14.22365, + "south": 49.94151, + "east": 14.70695, + "north": 50.17756, + "asset_name": "occumed-praha.pmtiles", + "metadata_name": "occumed-praha.json" + }, + { + "id": "prince-edward-island", + "slug": "prince-edward-island", + "name": "Prince Edward Island", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/prince-edward-island-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "prince-edward-island", + "source_size_bytes": 11244516, + "west": -64.60236, + "south": 45.82497, + "east": -61.24878, + "north": 47.68573, + "asset_name": "occumed-prince-edward-island.pmtiles", + "metadata_name": "occumed-prince-edward-island.json" + }, + { + "id": "provence-alpes-cote-d-azur", + "slug": "provence-alpes-cote-d-azur", + "name": "Provence Alpes-Cote-d'Azur", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/provence-alpes-cote-d-azur-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "provence-alpes-cote-d-azur", + "source_size_bytes": 386131716, + "west": 4.144746, + "south": 42.31539, + "east": 7.748528, + "north": 45.12887, + "asset_name": "occumed-provence-alpes-cote-d-azur.pmtiles", + "metadata_name": "occumed-provence-alpes-cote-d-azur.json" + }, + { + "id": "qikiqtaaluk--r1-c1", + "slug": "qikiqtaaluk--r1-c1", + "name": "Qikiqtaaluk Region 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/qikiqtaaluk-latest.osm.pbf", + "extract_bbox": "-110.0345,51.1268,-82.012035,67.726565", + "source_region_id": "qikiqtaaluk", + "source_size_bytes": 579744210, + "west": -110.0345, + "south": 51.1268, + "east": -82.012035, + "north": 67.726565, + "asset_name": "occumed-qikiqtaaluk--r1-c1.pmtiles", + "metadata_name": "occumed-qikiqtaaluk--r1-c1.json" + }, + { + "id": "qikiqtaaluk--r1-c2", + "slug": "qikiqtaaluk--r1-c2", + "name": "Qikiqtaaluk Region 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/qikiqtaaluk-latest.osm.pbf", + "extract_bbox": "-82.012035,51.1268,-53.98957,67.726565", + "source_region_id": "qikiqtaaluk", + "source_size_bytes": 579744210, + "west": -82.012035, + "south": 51.1268, + "east": -53.98957, + "north": 67.726565, + "asset_name": "occumed-qikiqtaaluk--r1-c2.pmtiles", + "metadata_name": "occumed-qikiqtaaluk--r1-c2.json" + }, + { + "id": "qikiqtaaluk--r2-c1", + "slug": "qikiqtaaluk--r2-c1", + "name": "Qikiqtaaluk Region 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/qikiqtaaluk-latest.osm.pbf", + "extract_bbox": "-110.0345,67.726565,-82.012035,84.32633", + "source_region_id": "qikiqtaaluk", + "source_size_bytes": 579744210, + "west": -110.0345, + "south": 67.726565, + "east": -82.012035, + "north": 84.32633, + "asset_name": "occumed-qikiqtaaluk--r2-c1.pmtiles", + "metadata_name": "occumed-qikiqtaaluk--r2-c1.json" + }, + { + "id": "qikiqtaaluk--r2-c2", + "slug": "qikiqtaaluk--r2-c2", + "name": "Qikiqtaaluk Region 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/nunavut/qikiqtaaluk-latest.osm.pbf", + "extract_bbox": "-82.012035,67.726565,-53.98957,84.32633", + "source_region_id": "qikiqtaaluk", + "source_size_bytes": 579744210, + "west": -82.012035, + "south": 67.726565, + "east": -53.98957, + "north": 84.32633, + "asset_name": "occumed-qikiqtaaluk--r2-c2.pmtiles", + "metadata_name": "occumed-qikiqtaaluk--r2-c2.json" + }, + { + "id": "qinghai", + "slug": "qinghai", + "name": "Qinghai", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/qinghai-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "qinghai", + "source_size_bytes": 32425632, + "west": 89.39, + "south": 31.58673, + "east": 103.0727, + "north": 39.22162, + "asset_name": "occumed-qinghai.pmtiles", + "metadata_name": "occumed-qinghai.json" + }, + { + "id": "quebec--r1-c1", + "slug": "quebec--r1-c1", + "name": "Quebec 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-79.8404,44.98552,-68.46474,50.865747", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -79.8404, + "south": 44.98552, + "east": -68.46474, + "north": 50.865747, + "asset_name": "occumed-quebec--r1-c1.pmtiles", + "metadata_name": "occumed-quebec--r1-c1.json" + }, + { + "id": "quebec--r1-c2", + "slug": "quebec--r1-c2", + "name": "Quebec 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-68.46474,44.98552,-57.08908,50.865747", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -68.46474, + "south": 44.98552, + "east": -57.08908, + "north": 50.865747, + "asset_name": "occumed-quebec--r1-c2.pmtiles", + "metadata_name": "occumed-quebec--r1-c2.json" + }, + { + "id": "quebec--r2-c1", + "slug": "quebec--r2-c1", + "name": "Quebec 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-79.8404,50.865747,-68.46474,56.745973", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -79.8404, + "south": 50.865747, + "east": -68.46474, + "north": 56.745973, + "asset_name": "occumed-quebec--r2-c1.pmtiles", + "metadata_name": "occumed-quebec--r2-c1.json" + }, + { + "id": "quebec--r2-c2", + "slug": "quebec--r2-c2", + "name": "Quebec 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-68.46474,50.865747,-57.08908,56.745973", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -68.46474, + "south": 50.865747, + "east": -57.08908, + "north": 56.745973, + "asset_name": "occumed-quebec--r2-c2.pmtiles", + "metadata_name": "occumed-quebec--r2-c2.json" + }, + { + "id": "quebec--r3-c1", + "slug": "quebec--r3-c1", + "name": "Quebec 3.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-79.8404,56.745973,-68.46474,62.6262", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -79.8404, + "south": 56.745973, + "east": -68.46474, + "north": 62.6262, + "asset_name": "occumed-quebec--r3-c1.pmtiles", + "metadata_name": "occumed-quebec--r3-c1.json" + }, + { + "id": "quebec--r3-c2", + "slug": "quebec--r3-c2", + "name": "Quebec 3.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/quebec-latest.osm.pbf", + "extract_bbox": "-68.46474,56.745973,-57.08908,62.6262", + "source_region_id": "quebec", + "source_size_bytes": 1157832587, + "west": -68.46474, + "south": 56.745973, + "east": -57.08908, + "north": 62.6262, + "asset_name": "occumed-quebec--r3-c2.pmtiles", + "metadata_name": "occumed-quebec--r3-c2.json" + }, + { + "id": "queensland", + "slug": "queensland", + "name": "Queensland", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/queensland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "queensland", + "source_size_bytes": 196353116, + "west": 137.9902, + "south": -29.1831, + "east": 154.2005, + "north": -8.841629, + "asset_name": "occumed-queensland.pmtiles", + "metadata_name": "occumed-queensland.json" + }, + { + "id": "reunion", + "slug": "reunion", + "name": "Reunion", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/reunion-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "reunion", + "source_size_bytes": 34105554, + "west": 54.94688, + "south": -21.72922, + "east": 56.11999, + "north": -20.58589, + "asset_name": "occumed-reunion.pmtiles", + "metadata_name": "occumed-reunion.json" + }, + { + "id": "rheinland-pfalz", + "slug": "rheinland-pfalz", + "name": "Rheinland-Pfalz", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/rheinland-pfalz-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "rheinland-pfalz", + "source_size_bytes": 265404970, + "west": 6.109129, + "south": 48.96377, + "east": 8.511228, + "north": 50.94404, + "asset_name": "occumed-rheinland-pfalz.pmtiles", + "metadata_name": "occumed-rheinland-pfalz.json" + }, + { + "id": "rhone-alpes--r1-c1", + "slug": "rhone-alpes--r1-c1", + "name": "Rhone-Alpes 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "3.686075,44.11274,4.854737,45.31761", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524752831, + "west": 3.686075, + "south": 44.11274, + "east": 4.854737, + "north": 45.31761, + "asset_name": "occumed-rhone-alpes--r1-c1.pmtiles", + "metadata_name": "occumed-rhone-alpes--r1-c1.json" + }, + { + "id": "rhone-alpes--r1-c2", + "slug": "rhone-alpes--r1-c2", + "name": "Rhone-Alpes 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "4.854737,44.11274,6.023398,45.31761", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524752831, + "west": 4.854737, + "south": 44.11274, + "east": 6.023398, + "north": 45.31761, + "asset_name": "occumed-rhone-alpes--r1-c2.pmtiles", + "metadata_name": "occumed-rhone-alpes--r1-c2.json" + }, + { + "id": "rhone-alpes--r1-c3", + "slug": "rhone-alpes--r1-c3", + "name": "Rhone-Alpes 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "6.023398,44.11274,7.19206,45.31761", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524752831, + "west": 6.023398, + "south": 44.11274, + "east": 7.19206, + "north": 45.31761, + "asset_name": "occumed-rhone-alpes--r1-c3.pmtiles", + "metadata_name": "occumed-rhone-alpes--r1-c3.json" + }, + { + "id": "rhone-alpes--r2-c1", + "slug": "rhone-alpes--r2-c1", + "name": "Rhone-Alpes 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "3.686075,45.31761,4.854737,46.52248", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524752831, + "west": 3.686075, + "south": 45.31761, + "east": 4.854737, + "north": 46.52248, + "asset_name": "occumed-rhone-alpes--r2-c1.pmtiles", + "metadata_name": "occumed-rhone-alpes--r2-c1.json" + }, + { + "id": "rhone-alpes--r2-c2", + "slug": "rhone-alpes--r2-c2", + "name": "Rhone-Alpes 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "4.854737,45.31761,6.023398,46.52248", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524752831, + "west": 4.854737, + "south": 45.31761, + "east": 6.023398, + "north": 46.52248, + "asset_name": "occumed-rhone-alpes--r2-c2.pmtiles", + "metadata_name": "occumed-rhone-alpes--r2-c2.json" + }, + { + "id": "rhone-alpes--r2-c3", + "slug": "rhone-alpes--r2-c3", + "name": "Rhone-Alpes 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/france/rhone-alpes-latest.osm.pbf", + "extract_bbox": "6.023398,45.31761,7.19206,46.52248", + "source_region_id": "rhone-alpes", + "source_size_bytes": 524752831, + "west": 6.023398, + "south": 45.31761, + "east": 7.19206, + "north": 46.52248, + "asset_name": "occumed-rhone-alpes--r2-c3.pmtiles", + "metadata_name": "occumed-rhone-alpes--r2-c3.json" + }, + { + "id": "romania", + "slug": "romania", + "name": "Romania", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/romania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "romania", + "source_size_bytes": 324769386, + "west": 20.24181, + "south": 43.61247, + "east": 30.27896, + "north": 48.26948, + "asset_name": "occumed-romania.pmtiles", + "metadata_name": "occumed-romania.json" + }, + { + "id": "rutland", + "slug": "rutland", + "name": "Rutland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/rutland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "rutland", + "source_size_bytes": 1929837, + "west": -0.822934, + "south": 52.52355, + "east": -0.427654, + "north": 52.76109, + "asset_name": "occumed-rutland.pmtiles", + "metadata_name": "occumed-rutland.json" + }, + { + "id": "rwanda", + "slug": "rwanda", + "name": "Rwanda", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/rwanda-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "rwanda", + "source_size_bytes": 65949973, + "west": 28.8593, + "south": -2.848747, + "east": 30.90864, + "north": -1.03831, + "asset_name": "occumed-rwanda.pmtiles", + "metadata_name": "occumed-rwanda.json" + }, + { + "id": "saarland", + "slug": "saarland", + "name": "Saarland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/saarland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "saarland", + "source_size_bytes": 54515310, + "west": 6.354475, + "south": 49.10807, + "east": 7.406287, + "north": 49.64146, + "asset_name": "occumed-saarland.pmtiles", + "metadata_name": "occumed-saarland.json" + }, + { + "id": "sachsen", + "slug": "sachsen", + "name": "Sachsen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/sachsen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sachsen", + "source_size_bytes": 266205540, + "west": 11.86685, + "south": 50.16658, + "east": 15.05078, + "north": 51.68735, + "asset_name": "occumed-sachsen.pmtiles", + "metadata_name": "occumed-sachsen.json" + }, + { + "id": "sachsen-anhalt", + "slug": "sachsen-anhalt", + "name": "Sachsen-Anhalt", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/sachsen-anhalt-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sachsen-anhalt", + "source_size_bytes": 173004288, + "west": 10.54725, + "south": 50.92887, + "east": 13.21268, + "north": 53.0566, + "asset_name": "occumed-sachsen-anhalt.pmtiles", + "metadata_name": "occumed-sachsen-anhalt.json" + }, + { + "id": "saint-helena-ascension-and-tristan-da-cunha", + "slug": "saint-helena-ascension-and-tristan-da-cunha", + "name": "Saint Helena, Ascension, and Tristan da Cunha", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/saint-helena-ascension-and-tristan-da-cunha-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "saint-helena-ascension-and-tristan-da-cunha", + "source_size_bytes": 892803, + "west": -15.57026, + "south": -43.83245, + "east": -2.781278, + "north": -4.591221, + "asset_name": "occumed-saint-helena-ascension-and-tristan-da-cunha.pmtiles", + "metadata_name": "occumed-saint-helena-ascension-and-tristan-da-cunha.json" + }, + { + "id": "samoa", + "slug": "samoa", + "name": "Samoa", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/samoa-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "samoa", + "source_size_bytes": 3453653, + "west": -174.5114, + "south": -15.87838, + "east": -170.5427, + "north": -10.96083, + "asset_name": "occumed-samoa.pmtiles", + "metadata_name": "occumed-samoa.json" + }, + { + "id": "sao-tome-and-principe", + "slug": "sao-tome-and-principe", + "name": "Sao Tome and Principe", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/sao-tome-and-principe-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sao-tome-and-principe", + "source_size_bytes": 1255899, + "west": 5.273916, + "south": -0.525565, + "east": 8.366995, + "north": 2.440286, + "asset_name": "occumed-sao-tome-and-principe.pmtiles", + "metadata_name": "occumed-sao-tome-and-principe.json" + }, + { + "id": "saskatchewan", + "slug": "saskatchewan", + "name": "Saskatchewan", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/saskatchewan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "saskatchewan", + "source_size_bytes": 115863825, + "west": -110.0069, + "south": 48.9876, + "east": -101.3614, + "north": 60.00052, + "asset_name": "occumed-saskatchewan.pmtiles", + "metadata_name": "occumed-saskatchewan.json" + }, + { + "id": "schleswig-holstein", + "slug": "schleswig-holstein", + "name": "Schleswig-Holstein", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/schleswig-holstein-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "schleswig-holstein", + "source_size_bytes": 157097586, + "west": 7.46458, + "south": 53.3569, + "east": 11.79931, + "north": 55.14634, + "asset_name": "occumed-schleswig-holstein.pmtiles", + "metadata_name": "occumed-schleswig-holstein.json" + }, + { + "id": "schwaben", + "slug": "schwaben", + "name": "Schwaben", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bayern/schwaben-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "schwaben", + "source_size_bytes": 127358503, + "west": 9.512461, + "south": 47.26543, + "east": 11.31348, + "north": 49.0366, + "asset_name": "occumed-schwaben.pmtiles", + "metadata_name": "occumed-schwaben.json" + }, + { + "id": "scotland", + "slug": "scotland", + "name": "Scotland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/scotland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "scotland", + "source_size_bytes": 323214190, + "west": -14.86155, + "south": 54.54001, + "east": 0.216055, + "north": 61.13564, + "asset_name": "occumed-scotland.pmtiles", + "metadata_name": "occumed-scotland.json" + }, + { + "id": "senegal-and-gambia", + "slug": "senegal-and-gambia", + "name": "Senegal and Gambia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/senegal-and-gambia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "senegal-and-gambia", + "source_size_bytes": 105015700, + "west": -19.85623, + "south": 12.01511, + "east": -11.33595, + "north": 16.70088, + "asset_name": "occumed-senegal-and-gambia.pmtiles", + "metadata_name": "occumed-senegal-and-gambia.json" + }, + { + "id": "serbia", + "slug": "serbia", + "name": "Serbia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/serbia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "serbia", + "source_size_bytes": 238075841, + "west": 18.80894, + "south": 42.22979, + "east": 23.01035, + "north": 46.19207, + "asset_name": "occumed-serbia.pmtiles", + "metadata_name": "occumed-serbia.json" + }, + { + "id": "seychelles", + "slug": "seychelles", + "name": "Seychelles", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/seychelles-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "seychelles", + "source_size_bytes": 2755717, + "west": 45.68495, + "south": -12.55844, + "east": 57.57433, + "north": -3.17239, + "asset_name": "occumed-seychelles.pmtiles", + "metadata_name": "occumed-seychelles.json" + }, + { + "id": "shaanxi", + "slug": "shaanxi", + "name": "Shaanxi", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/shaanxi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shaanxi", + "source_size_bytes": 90615161, + "west": 105.4801, + "south": 31.695, + "east": 111.2479, + "north": 39.58902, + "asset_name": "occumed-shaanxi.pmtiles", + "metadata_name": "occumed-shaanxi.json" + }, + { + "id": "shandong", + "slug": "shandong", + "name": "Shandong", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/shandong-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shandong", + "source_size_bytes": 70647124, + "west": 114.8133, + "south": 34.37575, + "east": 123.5632, + "north": 38.44, + "asset_name": "occumed-shandong.pmtiles", + "metadata_name": "occumed-shandong.json" + }, + { + "id": "shanghai", + "slug": "shanghai", + "name": "Shanghai", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/shanghai-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shanghai", + "source_size_bytes": 25594359, + "west": 120.847, + "south": 30.6391, + "east": 123.679, + "north": 31.88455, + "asset_name": "occumed-shanghai.pmtiles", + "metadata_name": "occumed-shanghai.json" + }, + { + "id": "shanxi", + "slug": "shanxi", + "name": "Shanxi", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/shanxi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shanxi", + "source_size_bytes": 30782261, + "west": 110.2, + "south": 34.57895, + "east": 114.57, + "north": 40.75116, + "asset_name": "occumed-shanxi.pmtiles", + "metadata_name": "occumed-shanxi.json" + }, + { + "id": "shikoku", + "slug": "shikoku", + "name": "Shikoku", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/shikoku-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shikoku", + "source_size_bytes": 88484109, + "west": 131.7698, + "south": 32.22959, + "east": 135.1794, + "north": 34.65151, + "asset_name": "occumed-shikoku.pmtiles", + "metadata_name": "occumed-shikoku.json" + }, + { + "id": "shropshire", + "slug": "shropshire", + "name": "Shropshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/shropshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "shropshire", + "source_size_bytes": 24962164, + "west": -3.235577, + "south": 52.30616, + "east": -2.23354, + "north": 52.99693, + "asset_name": "occumed-shropshire.pmtiles", + "metadata_name": "occumed-shropshire.json" + }, + { + "id": "siberian-fed-district--r1-c1", + "slug": "siberian-fed-district--r1-c1", + "name": "Siberian Federal District 1.1", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "70.27478,49.02101,108.99404,65.45424", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 70.27478, + "south": 49.02101, + "east": 108.99404, + "north": 65.45424, + "asset_name": "occumed-siberian-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r1-c1.json" + }, + { + "id": "siberian-fed-district--r1-c2", + "slug": "siberian-fed-district--r1-c2", + "name": "Siberian Federal District 1.2", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "108.99404,49.02101,147.7133,65.45424", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 108.99404, + "south": 49.02101, + "east": 147.7133, + "north": 65.45424, + "asset_name": "occumed-siberian-fed-district--r1-c2.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r1-c2.json" + }, + { + "id": "siberian-fed-district--r2-c1", + "slug": "siberian-fed-district--r2-c1", + "name": "Siberian Federal District 2.1", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "70.27478,65.45424,108.99404,81.88747", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 70.27478, + "south": 65.45424, + "east": 108.99404, + "north": 81.88747, + "asset_name": "occumed-siberian-fed-district--r2-c1.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r2-c1.json" + }, + { + "id": "siberian-fed-district--r2-c2", + "slug": "siberian-fed-district--r2-c2", + "name": "Siberian Federal District 2.2", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "108.99404,65.45424,147.7133,81.88747", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 108.99404, + "south": 65.45424, + "east": 147.7133, + "north": 81.88747, + "asset_name": "occumed-siberian-fed-district--r2-c2.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r2-c2.json" + }, + { + "id": "sichuan", + "slug": "sichuan", + "name": "Sichuan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/sichuan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sichuan", + "source_size_bytes": 105133553, + "west": 97.31277, + "south": 26.04599, + "east": 108.5508, + "north": 34.33153, + "asset_name": "occumed-sichuan.pmtiles", + "metadata_name": "occumed-sichuan.json" + }, + { + "id": "sierra-leone", + "slug": "sierra-leone", + "name": "Sierra Leone", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/sierra-leone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sierra-leone", + "source_size_bytes": 43014634, + "west": -14.76451, + "south": 5.391619, + "east": -10.2558, + "north": 10.00571, + "asset_name": "occumed-sierra-leone.pmtiles", + "metadata_name": "occumed-sierra-leone.json" + }, + { + "id": "slaskie", + "slug": "slaskie", + "name": "Województwo śląskie
(Silesian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/slaskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "slaskie", + "source_size_bytes": 183674739, + "west": 18.02213, + "south": 49.38, + "east": 19.98542, + "north": 51.1129, + "asset_name": "occumed-slaskie.pmtiles", + "metadata_name": "occumed-slaskie.json" + }, + { + "id": "slovakia", + "slug": "slovakia", + "name": "Slovakia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/slovakia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "slovakia", + "source_size_bytes": 341392225, + "west": 16.83071, + "south": 47.72646, + "east": 22.57051, + "north": 49.6186, + "asset_name": "occumed-slovakia.pmtiles", + "metadata_name": "occumed-slovakia.json" + }, + { + "id": "slovenia", + "slug": "slovenia", + "name": "Slovenia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/slovenia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "slovenia", + "source_size_bytes": 310259541, + "west": 13.30509, + "south": 45.42081, + "east": 16.60034, + "north": 46.87956, + "asset_name": "occumed-slovenia.pmtiles", + "metadata_name": "occumed-slovenia.json" + }, + { + "id": "socal--r1-c1", + "slug": "socal--r1-c1", + "name": "Southern California 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-121.4401,32.48438,-119.0031,34.147465", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -121.4401, + "south": 32.48438, + "east": -119.0031, + "north": 34.147465, + "asset_name": "occumed-socal--r1-c1.pmtiles", + "metadata_name": "occumed-socal--r1-c1.json" + }, + { + "id": "socal--r1-c2", + "slug": "socal--r1-c2", + "name": "Southern California 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-119.0031,32.48438,-116.5661,34.147465", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -119.0031, + "south": 32.48438, + "east": -116.5661, + "north": 34.147465, + "asset_name": "occumed-socal--r1-c2.pmtiles", + "metadata_name": "occumed-socal--r1-c2.json" + }, + { + "id": "socal--r1-c3", + "slug": "socal--r1-c3", + "name": "Southern California 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-116.5661,32.48438,-114.1291,34.147465", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -116.5661, + "south": 32.48438, + "east": -114.1291, + "north": 34.147465, + "asset_name": "occumed-socal--r1-c3.pmtiles", + "metadata_name": "occumed-socal--r1-c3.json" + }, + { + "id": "socal--r2-c1", + "slug": "socal--r2-c1", + "name": "Southern California 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-121.4401,34.147465,-119.0031,35.81055", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -121.4401, + "south": 34.147465, + "east": -119.0031, + "north": 35.81055, + "asset_name": "occumed-socal--r2-c1.pmtiles", + "metadata_name": "occumed-socal--r2-c1.json" + }, + { + "id": "socal--r2-c2", + "slug": "socal--r2-c2", + "name": "Southern California 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-119.0031,34.147465,-116.5661,35.81055", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -119.0031, + "south": 34.147465, + "east": -116.5661, + "north": 35.81055, + "asset_name": "occumed-socal--r2-c2.pmtiles", + "metadata_name": "occumed-socal--r2-c2.json" + }, + { + "id": "socal--r2-c3", + "slug": "socal--r2-c3", + "name": "Southern California 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/california/socal-latest.osm.pbf", + "extract_bbox": "-116.5661,34.147465,-114.1291,35.81055", + "source_region_id": "socal", + "source_size_bytes": 666935491, + "west": -116.5661, + "south": 34.147465, + "east": -114.1291, + "north": 35.81055, + "asset_name": "occumed-socal--r2-c3.pmtiles", + "metadata_name": "occumed-socal--r2-c3.json" + }, + { + "id": "solomon-islands", + "slug": "solomon-islands", + "name": "Solomon Islands", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/solomon-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "solomon-islands", + "source_size_bytes": 11922077, + "west": 154.5856, + "south": -16.12694, + "east": 173.5934, + "north": -4.139945, + "asset_name": "occumed-solomon-islands.pmtiles", + "metadata_name": "occumed-solomon-islands.json" + }, + { + "id": "somalia", + "slug": "somalia", + "name": "Somalia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/somalia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "somalia", + "source_size_bytes": 164573495, + "west": 40.97489, + "south": -1.816753, + "east": 52.44871, + "north": 12.51177, + "asset_name": "occumed-somalia.pmtiles", + "metadata_name": "occumed-somalia.json" + }, + { + "id": "somerset", + "slug": "somerset", + "name": "Somerset", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/somerset-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "somerset", + "source_size_bytes": 49020032, + "west": -3.84094, + "south": 50.81995, + "east": -2.243303, + "north": 51.50392, + "asset_name": "occumed-somerset.pmtiles", + "metadata_name": "occumed-somerset.json" + }, + { + "id": "sorlandet", + "slug": "sorlandet", + "name": "Sørlandet
(Southern Norway)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/sorlandet-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sorlandet", + "source_size_bytes": 77009829, + "west": 5.698662, + "south": 57.58445, + "east": 10.10434, + "north": 59.67468, + "asset_name": "occumed-sorlandet.pmtiles", + "metadata_name": "occumed-sorlandet.json" + }, + { + "id": "south-africa--r1-c1", + "slug": "south-africa--r1-c1", + "name": "South Africa 1.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-africa-latest.osm.pbf", + "extract_bbox": "15.99606,-47.58493,27.619325,-34.851145", + "source_region_id": "south-africa", + "source_size_bytes": 416966726, + "west": 15.99606, + "south": -47.58493, + "east": 27.619325, + "north": -34.851145, + "asset_name": "occumed-south-africa--r1-c1.pmtiles", + "metadata_name": "occumed-south-africa--r1-c1.json" + }, + { + "id": "south-africa--r1-c2", + "slug": "south-africa--r1-c2", + "name": "South Africa 1.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-africa-latest.osm.pbf", + "extract_bbox": "27.619325,-47.58493,39.24259,-34.851145", + "source_region_id": "south-africa", + "source_size_bytes": 416966726, + "west": 27.619325, + "south": -47.58493, + "east": 39.24259, + "north": -34.851145, + "asset_name": "occumed-south-africa--r1-c2.pmtiles", + "metadata_name": "occumed-south-africa--r1-c2.json" + }, + { + "id": "south-africa--r2-c1", + "slug": "south-africa--r2-c1", + "name": "South Africa 2.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-africa-latest.osm.pbf", + "extract_bbox": "15.99606,-34.851145,27.619325,-22.11736", + "source_region_id": "south-africa", + "source_size_bytes": 416966726, + "west": 15.99606, + "south": -34.851145, + "east": 27.619325, + "north": -22.11736, + "asset_name": "occumed-south-africa--r2-c1.pmtiles", + "metadata_name": "occumed-south-africa--r2-c1.json" + }, + { + "id": "south-africa--r2-c2", + "slug": "south-africa--r2-c2", + "name": "South Africa 2.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-africa-latest.osm.pbf", + "extract_bbox": "27.619325,-34.851145,39.24259,-22.11736", + "source_region_id": "south-africa", + "source_size_bytes": 416966726, + "west": 27.619325, + "south": -34.851145, + "east": 39.24259, + "north": -22.11736, + "asset_name": "occumed-south-africa--r2-c2.pmtiles", + "metadata_name": "occumed-south-africa--r2-c2.json" + }, + { + "id": "south-australia", + "slug": "south-australia", + "name": "South Australia", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/south-australia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-australia", + "source_size_bytes": 66798978, + "west": 128.9993, + "south": -39.83156, + "east": 141.0073, + "north": -25.99303, + "asset_name": "occumed-south-australia.pmtiles", + "metadata_name": "occumed-south-australia.json" + }, + { + "id": "south-fed-district", + "slug": "south-fed-district", + "name": "South Federal District", + "continent": "south-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/south-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-fed-district", + "source_size_bytes": 310739853, + "west": 36.52315, + "south": 43.18958, + "east": 49.93666, + "north": 51.2554, + "asset_name": "occumed-south-fed-district.pmtiles", + "metadata_name": "occumed-south-fed-district.json" + }, + { + "id": "south-korea", + "slug": "south-korea", + "name": "South Korea", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/south-korea-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-korea", + "source_size_bytes": 283898336, + "west": 124.3188, + "south": 32.36076, + "east": 132.3386, + "north": 38.64966, + "asset_name": "occumed-south-korea.pmtiles", + "metadata_name": "occumed-south-korea.json" + }, + { + "id": "south-sudan", + "slug": "south-sudan", + "name": "South Sudan", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/south-sudan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-sudan", + "source_size_bytes": 138124449, + "west": 23.42491, + "south": 3.461547, + "east": 35.96298, + "north": 12.23937, + "asset_name": "occumed-south-sudan.pmtiles", + "metadata_name": "occumed-south-sudan.json" + }, + { + "id": "south-yorkshire", + "slug": "south-yorkshire", + "name": "South Yorkshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/south-yorkshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "south-yorkshire", + "source_size_bytes": 29755119, + "west": -1.825872, + "south": 53.29889, + "east": -0.852889, + "north": 53.66326, + "asset_name": "occumed-south-yorkshire.pmtiles", + "metadata_name": "occumed-south-yorkshire.json" + }, + { + "id": "southcoast-admreg", + "slug": "southcoast-admreg", + "name": "South Coast Administrative Region", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/british-columbia/southcoast-admreg-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "southcoast-admreg", + "source_size_bytes": 113904735, + "west": -124.2851, + "south": 48.98059, + "east": -120.8077, + "north": 51.22667, + "asset_name": "occumed-southcoast-admreg.pmtiles", + "metadata_name": "occumed-southcoast-admreg.json" + }, + { + "id": "southern-zone--r1-c1", + "slug": "southern-zone--r1-c1", + "name": "Southern Zone 1.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "70.20789,5.943921,78.643203,12.9333", + "source_region_id": "southern-zone", + "source_size_bytes": 556132623, + "west": 70.20789, + "south": 5.943921, + "east": 78.643203, + "north": 12.9333, + "asset_name": "occumed-southern-zone--r1-c1.pmtiles", + "metadata_name": "occumed-southern-zone--r1-c1.json" + }, + { + "id": "southern-zone--r1-c2", + "slug": "southern-zone--r1-c2", + "name": "Southern Zone 1.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "78.643203,5.943921,87.078517,12.9333", + "source_region_id": "southern-zone", + "source_size_bytes": 556132623, + "west": 78.643203, + "south": 5.943921, + "east": 87.078517, + "north": 12.9333, + "asset_name": "occumed-southern-zone--r1-c2.pmtiles", + "metadata_name": "occumed-southern-zone--r1-c2.json" + }, + { + "id": "southern-zone--r1-c3", + "slug": "southern-zone--r1-c3", + "name": "Southern Zone 1.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "87.078517,5.943921,95.51383,12.9333", + "source_region_id": "southern-zone", + "source_size_bytes": 556132623, + "west": 87.078517, + "south": 5.943921, + "east": 95.51383, + "north": 12.9333, + "asset_name": "occumed-southern-zone--r1-c3.pmtiles", + "metadata_name": "occumed-southern-zone--r1-c3.json" + }, + { + "id": "southern-zone--r2-c1", + "slug": "southern-zone--r2-c1", + "name": "Southern Zone 2.1", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "70.20789,12.9333,78.643203,19.92268", + "source_region_id": "southern-zone", + "source_size_bytes": 556132623, + "west": 70.20789, + "south": 12.9333, + "east": 78.643203, + "north": 19.92268, + "asset_name": "occumed-southern-zone--r2-c1.pmtiles", + "metadata_name": "occumed-southern-zone--r2-c1.json" + }, + { + "id": "southern-zone--r2-c2", + "slug": "southern-zone--r2-c2", + "name": "Southern Zone 2.2", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "78.643203,12.9333,87.078517,19.92268", + "source_region_id": "southern-zone", + "source_size_bytes": 556132623, + "west": 78.643203, + "south": 12.9333, + "east": 87.078517, + "north": 19.92268, + "asset_name": "occumed-southern-zone--r2-c2.pmtiles", + "metadata_name": "occumed-southern-zone--r2-c2.json" + }, + { + "id": "southern-zone--r2-c3", + "slug": "southern-zone--r2-c3", + "name": "Southern Zone 2.3", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/southern-zone-latest.osm.pbf", + "extract_bbox": "87.078517,12.9333,95.51383,19.92268", + "source_region_id": "southern-zone", + "source_size_bytes": 556132623, + "west": 87.078517, + "south": 12.9333, + "east": 95.51383, + "north": 19.92268, + "asset_name": "occumed-southern-zone--r2-c3.pmtiles", + "metadata_name": "occumed-southern-zone--r2-c3.json" + }, + { + "id": "sri-lanka", + "slug": "sri-lanka", + "name": "Sri Lanka", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/sri-lanka-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sri-lanka", + "source_size_bytes": 143481459, + "west": 79.16416, + "south": 5.621275, + "east": 82.64612, + "north": 10.07153, + "asset_name": "occumed-sri-lanka.pmtiles", + "metadata_name": "occumed-sri-lanka.json" + }, + { + "id": "staffordshire", + "slug": "staffordshire", + "name": "Staffordshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/staffordshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "staffordshire", + "source_size_bytes": 30449905, + "west": -2.47182, + "south": 52.42202, + "east": -1.58449, + "north": 53.22743, + "asset_name": "occumed-staffordshire.pmtiles", + "metadata_name": "occumed-staffordshire.json" + }, + { + "id": "stredocesky", + "slug": "stredocesky", + "name": "Středočeský kraj (with Praha)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/stredocesky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "stredocesky", + "source_size_bytes": 179882677, + "west": 13.39579, + "south": 49.50088, + "east": 15.53613, + "north": 50.61926, + "asset_name": "occumed-stredocesky.pmtiles", + "metadata_name": "occumed-stredocesky.json" + }, + { + "id": "stuttgart-regbez", + "slug": "stuttgart-regbez", + "name": "Regierungsbezirk Stuttgart", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/baden-wuerttemberg/stuttgart-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "stuttgart-regbez", + "source_size_bytes": 210182995, + "west": 8.741474, + "south": 48.49386, + "east": 10.51495, + "north": 49.79456, + "asset_name": "occumed-stuttgart-regbez.pmtiles", + "metadata_name": "occumed-stuttgart-regbez.json" + }, + { + "id": "sud--r1-c1", + "slug": "sud--r1-c1", + "name": "Sud 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/sud-latest.osm.pbf", + "extract_bbox": "13.00131,37.80152,16.06315,40.357575", + "source_region_id": "sud", + "source_size_bytes": 411314124, + "west": 13.00131, + "south": 37.80152, + "east": 16.06315, + "north": 40.357575, + "asset_name": "occumed-sud--r1-c1.pmtiles", + "metadata_name": "occumed-sud--r1-c1.json" + }, + { + "id": "sud--r1-c2", + "slug": "sud--r1-c2", + "name": "Sud 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/sud-latest.osm.pbf", + "extract_bbox": "16.06315,37.80152,19.12499,40.357575", + "source_region_id": "sud", + "source_size_bytes": 411314124, + "west": 16.06315, + "south": 37.80152, + "east": 19.12499, + "north": 40.357575, + "asset_name": "occumed-sud--r1-c2.pmtiles", + "metadata_name": "occumed-sud--r1-c2.json" + }, + { + "id": "sud--r2-c1", + "slug": "sud--r2-c1", + "name": "Sud 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/sud-latest.osm.pbf", + "extract_bbox": "13.00131,40.357575,16.06315,42.91363", + "source_region_id": "sud", + "source_size_bytes": 411314124, + "west": 13.00131, + "south": 40.357575, + "east": 16.06315, + "north": 42.91363, + "asset_name": "occumed-sud--r2-c1.pmtiles", + "metadata_name": "occumed-sud--r2-c1.json" + }, + { + "id": "sud--r2-c2", + "slug": "sud--r2-c2", + "name": "Sud 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/italy/sud-latest.osm.pbf", + "extract_bbox": "16.06315,40.357575,19.12499,42.91363", + "source_region_id": "sud", + "source_size_bytes": 411314124, + "west": 16.06315, + "south": 40.357575, + "east": 19.12499, + "north": 42.91363, + "asset_name": "occumed-sud--r2-c2.pmtiles", + "metadata_name": "occumed-sud--r2-c2.json" + }, + { + "id": "sudan", + "slug": "sudan", + "name": "Sudan", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/sudan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sudan", + "source_size_bytes": 202677197, + "west": 21.781, + "south": 8.653747, + "east": 39.62781, + "north": 22.34706, + "asset_name": "occumed-sudan.pmtiles", + "metadata_name": "occumed-sudan.json" + }, + { + "id": "sudeste--r1-c1", + "slug": "sudeste--r1-c1", + "name": "Sudeste 1.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-53.1189,-25.4993,-44.809917,-19.861875", + "source_region_id": "sudeste", + "source_size_bytes": 852855248, + "west": -53.1189, + "south": -25.4993, + "east": -44.809917, + "north": -19.861875, + "asset_name": "occumed-sudeste--r1-c1.pmtiles", + "metadata_name": "occumed-sudeste--r1-c1.json" + }, + { + "id": "sudeste--r1-c2", + "slug": "sudeste--r1-c2", + "name": "Sudeste 1.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-44.809917,-25.4993,-36.500933,-19.861875", + "source_region_id": "sudeste", + "source_size_bytes": 852855248, + "west": -44.809917, + "south": -25.4993, + "east": -36.500933, + "north": -19.861875, + "asset_name": "occumed-sudeste--r1-c2.pmtiles", + "metadata_name": "occumed-sudeste--r1-c2.json" + }, + { + "id": "sudeste--r1-c3", + "slug": "sudeste--r1-c3", + "name": "Sudeste 1.3", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-36.500933,-25.4993,-28.19195,-19.861875", + "source_region_id": "sudeste", + "source_size_bytes": 852855248, + "west": -36.500933, + "south": -25.4993, + "east": -28.19195, + "north": -19.861875, + "asset_name": "occumed-sudeste--r1-c3.pmtiles", + "metadata_name": "occumed-sudeste--r1-c3.json" + }, + { + "id": "sudeste--r2-c1", + "slug": "sudeste--r2-c1", + "name": "Sudeste 2.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-53.1189,-19.861875,-44.809917,-14.22445", + "source_region_id": "sudeste", + "source_size_bytes": 852855248, + "west": -53.1189, + "south": -19.861875, + "east": -44.809917, + "north": -14.22445, + "asset_name": "occumed-sudeste--r2-c1.pmtiles", + "metadata_name": "occumed-sudeste--r2-c1.json" + }, + { + "id": "sudeste--r2-c2", + "slug": "sudeste--r2-c2", + "name": "Sudeste 2.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-44.809917,-19.861875,-36.500933,-14.22445", + "source_region_id": "sudeste", + "source_size_bytes": 852855248, + "west": -44.809917, + "south": -19.861875, + "east": -36.500933, + "north": -14.22445, + "asset_name": "occumed-sudeste--r2-c2.pmtiles", + "metadata_name": "occumed-sudeste--r2-c2.json" + }, + { + "id": "sudeste--r2-c3", + "slug": "sudeste--r2-c3", + "name": "Sudeste 2.3", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sudeste-latest.osm.pbf", + "extract_bbox": "-36.500933,-19.861875,-28.19195,-14.22445", + "source_region_id": "sudeste", + "source_size_bytes": 852855248, + "west": -36.500933, + "south": -19.861875, + "east": -28.19195, + "north": -14.22445, + "asset_name": "occumed-sudeste--r2-c3.pmtiles", + "metadata_name": "occumed-sudeste--r2-c3.json" + }, + { + "id": "suffolk", + "slug": "suffolk", + "name": "Suffolk", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/suffolk-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "suffolk", + "source_size_bytes": 33051068, + "west": 0.339563, + "south": 51.93285, + "east": 1.763681, + "north": 52.55013, + "asset_name": "occumed-suffolk.pmtiles", + "metadata_name": "occumed-suffolk.json" + }, + { + "id": "sul--r1-c1", + "slug": "sul--r1-c1", + "name": "Sul 1.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sul-latest.osm.pbf", + "extract_bbox": "-57.67273,-34.86424,-50.959515,-28.689035", + "source_region_id": "sul", + "source_size_bytes": 420588239, + "west": -57.67273, + "south": -34.86424, + "east": -50.959515, + "north": -28.689035, + "asset_name": "occumed-sul--r1-c1.pmtiles", + "metadata_name": "occumed-sul--r1-c1.json" + }, + { + "id": "sul--r1-c2", + "slug": "sul--r1-c2", + "name": "Sul 1.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sul-latest.osm.pbf", + "extract_bbox": "-50.959515,-34.86424,-44.2463,-28.689035", + "source_region_id": "sul", + "source_size_bytes": 420588239, + "west": -50.959515, + "south": -34.86424, + "east": -44.2463, + "north": -28.689035, + "asset_name": "occumed-sul--r1-c2.pmtiles", + "metadata_name": "occumed-sul--r1-c2.json" + }, + { + "id": "sul--r2-c1", + "slug": "sul--r2-c1", + "name": "Sul 2.1", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sul-latest.osm.pbf", + "extract_bbox": "-57.67273,-28.689035,-50.959515,-22.51383", + "source_region_id": "sul", + "source_size_bytes": 420588239, + "west": -57.67273, + "south": -28.689035, + "east": -50.959515, + "north": -22.51383, + "asset_name": "occumed-sul--r2-c1.pmtiles", + "metadata_name": "occumed-sul--r2-c1.json" + }, + { + "id": "sul--r2-c2", + "slug": "sul--r2-c2", + "name": "Sul 2.2", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/brazil/sul-latest.osm.pbf", + "extract_bbox": "-50.959515,-28.689035,-44.2463,-22.51383", + "source_region_id": "sul", + "source_size_bytes": 420588239, + "west": -50.959515, + "south": -28.689035, + "east": -44.2463, + "north": -22.51383, + "asset_name": "occumed-sul--r2-c2.pmtiles", + "metadata_name": "occumed-sul--r2-c2.json" + }, + { + "id": "sulawesi", + "slug": "sulawesi", + "name": "Sulawesi", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/sulawesi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sulawesi", + "source_size_bytes": 157825224, + "west": 116.2518, + "south": -8.02115, + "east": 127.9523, + "north": 5.948258, + "asset_name": "occumed-sulawesi.pmtiles", + "metadata_name": "occumed-sulawesi.json" + }, + { + "id": "sumatra", + "slug": "sumatra", + "name": "Sumatra", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/indonesia/sumatra-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "sumatra", + "source_size_bytes": 282194087, + "west": 92.76481, + "south": -7.169929, + "east": 109.7524, + "north": 6.99933, + "asset_name": "occumed-sumatra.pmtiles", + "metadata_name": "occumed-sumatra.json" + }, + { + "id": "suriname", + "slug": "suriname", + "name": "Suriname", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/suriname-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "suriname", + "source_size_bytes": 21258869, + "west": -58.08461, + "south": 1.816773, + "east": -53.32819, + "north": 7.761698, + "asset_name": "occumed-suriname.pmtiles", + "metadata_name": "occumed-suriname.json" + }, + { + "id": "surrey", + "slug": "surrey", + "name": "Surrey", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/surrey-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "surrey", + "source_size_bytes": 42893880, + "west": -0.850593, + "south": 51.0715, + "east": 0.059897, + "north": 51.47288, + "asset_name": "occumed-surrey.pmtiles", + "metadata_name": "occumed-surrey.json" + }, + { + "id": "svalbard-janmayen", + "slug": "svalbard-janmayen", + "name": "Svalbard and Jan Mayen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/svalbard-janmayen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "svalbard-janmayen", + "source_size_bytes": 2721577, + "west": -10.49539, + "south": 70.26127, + "east": 35.34074, + "north": 81.05183, + "asset_name": "occumed-svalbard-janmayen.pmtiles", + "metadata_name": "occumed-svalbard-janmayen.json" + }, + { + "id": "swaziland", + "slug": "swaziland", + "name": "Swaziland", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/swaziland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "swaziland", + "source_size_bytes": 30567338, + "west": 30.78575, + "south": -27.31826, + "east": 32.13698, + "north": -25.71781, + "asset_name": "occumed-swaziland.pmtiles", + "metadata_name": "occumed-swaziland.json" + }, + { + "id": "sweden--r1-c1", + "slug": "sweden--r1-c1", + "name": "Sweden 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/sweden-latest.osm.pbf", + "extract_bbox": "10.54138,55.02652,17.38305,62.046475", + "source_region_id": "sweden", + "source_size_bytes": 811154936, + "west": 10.54138, + "south": 55.02652, + "east": 17.38305, + "north": 62.046475, + "asset_name": "occumed-sweden--r1-c1.pmtiles", + "metadata_name": "occumed-sweden--r1-c1.json" + }, + { + "id": "sweden--r1-c2", + "slug": "sweden--r1-c2", + "name": "Sweden 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/sweden-latest.osm.pbf", + "extract_bbox": "17.38305,55.02652,24.22472,62.046475", + "source_region_id": "sweden", + "source_size_bytes": 811154936, + "west": 17.38305, + "south": 55.02652, + "east": 24.22472, + "north": 62.046475, + "asset_name": "occumed-sweden--r1-c2.pmtiles", + "metadata_name": "occumed-sweden--r1-c2.json" + }, + { + "id": "sweden--r2-c1", + "slug": "sweden--r2-c1", + "name": "Sweden 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/sweden-latest.osm.pbf", + "extract_bbox": "10.54138,62.046475,17.38305,69.06643", + "source_region_id": "sweden", + "source_size_bytes": 811154936, + "west": 10.54138, + "south": 62.046475, + "east": 17.38305, + "north": 69.06643, + "asset_name": "occumed-sweden--r2-c1.pmtiles", + "metadata_name": "occumed-sweden--r2-c1.json" + }, + { + "id": "sweden--r2-c2", + "slug": "sweden--r2-c2", + "name": "Sweden 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/sweden-latest.osm.pbf", + "extract_bbox": "17.38305,62.046475,24.22472,69.06643", + "source_region_id": "sweden", + "source_size_bytes": 811154936, + "west": 17.38305, + "south": 62.046475, + "east": 24.22472, + "north": 69.06643, + "asset_name": "occumed-sweden--r2-c2.pmtiles", + "metadata_name": "occumed-sweden--r2-c2.json" + }, + { + "id": "swietokrzyskie", + "slug": "swietokrzyskie", + "name": "Województwo świętokrzyskie
(Świętokrzyskie Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/swietokrzyskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "swietokrzyskie", + "source_size_bytes": 86093273, + "west": 19.69901, + "south": 50.17974, + "east": 21.8758, + "north": 51.34824, + "asset_name": "occumed-swietokrzyskie.pmtiles", + "metadata_name": "occumed-swietokrzyskie.json" + }, + { + "id": "switzerland--r1-c1", + "slug": "switzerland--r1-c1", + "name": "Switzerland 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "5.954418,45.81642,7.468225,46.81384", + "source_region_id": "switzerland", + "source_size_bytes": 540505743, + "west": 5.954418, + "south": 45.81642, + "east": 7.468225, + "north": 46.81384, + "asset_name": "occumed-switzerland--r1-c1.pmtiles", + "metadata_name": "occumed-switzerland--r1-c1.json" + }, + { + "id": "switzerland--r1-c2", + "slug": "switzerland--r1-c2", + "name": "Switzerland 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "7.468225,45.81642,8.982033,46.81384", + "source_region_id": "switzerland", + "source_size_bytes": 540505743, + "west": 7.468225, + "south": 45.81642, + "east": 8.982033, + "north": 46.81384, + "asset_name": "occumed-switzerland--r1-c2.pmtiles", + "metadata_name": "occumed-switzerland--r1-c2.json" + }, + { + "id": "switzerland--r1-c3", + "slug": "switzerland--r1-c3", + "name": "Switzerland 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "8.982033,45.81642,10.49584,46.81384", + "source_region_id": "switzerland", + "source_size_bytes": 540505743, + "west": 8.982033, + "south": 45.81642, + "east": 10.49584, + "north": 46.81384, + "asset_name": "occumed-switzerland--r1-c3.pmtiles", + "metadata_name": "occumed-switzerland--r1-c3.json" + }, + { + "id": "switzerland--r2-c1", + "slug": "switzerland--r2-c1", + "name": "Switzerland 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "5.954418,46.81384,7.468225,47.81126", + "source_region_id": "switzerland", + "source_size_bytes": 540505743, + "west": 5.954418, + "south": 46.81384, + "east": 7.468225, + "north": 47.81126, + "asset_name": "occumed-switzerland--r2-c1.pmtiles", + "metadata_name": "occumed-switzerland--r2-c1.json" + }, + { + "id": "switzerland--r2-c2", + "slug": "switzerland--r2-c2", + "name": "Switzerland 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "7.468225,46.81384,8.982033,47.81126", + "source_region_id": "switzerland", + "source_size_bytes": 540505743, + "west": 7.468225, + "south": 46.81384, + "east": 8.982033, + "north": 47.81126, + "asset_name": "occumed-switzerland--r2-c2.pmtiles", + "metadata_name": "occumed-switzerland--r2-c2.json" + }, + { + "id": "switzerland--r2-c3", + "slug": "switzerland--r2-c3", + "name": "Switzerland 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", + "extract_bbox": "8.982033,46.81384,10.49584,47.81126", + "source_region_id": "switzerland", + "source_size_bytes": 540505743, + "west": 8.982033, + "south": 46.81384, + "east": 10.49584, + "north": 47.81126, + "asset_name": "occumed-switzerland--r2-c3.pmtiles", + "metadata_name": "occumed-switzerland--r2-c3.json" + }, + { + "id": "syria", + "slug": "syria", + "name": "Syria", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/syria-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "syria", + "source_size_bytes": 81243979, + "west": 35.28548, + "south": 32.3066, + "east": 42.38383, + "north": 37.32239, + "asset_name": "occumed-syria.pmtiles", + "metadata_name": "occumed-syria.json" + }, + { + "id": "taiwan", + "slug": "taiwan", + "name": "Taiwan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/taiwan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "taiwan", + "source_size_bytes": 325332055, + "west": 118.1036, + "south": 20.72799, + "east": 122.9312, + "north": 26.60305, + "asset_name": "occumed-taiwan.pmtiles", + "metadata_name": "occumed-taiwan.json" + }, + { + "id": "tajikistan", + "slug": "tajikistan", + "name": "Tajikistan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/tajikistan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tajikistan", + "source_size_bytes": 47975263, + "west": 67.3201, + "south": 36.66374, + "east": 75.16571, + "north": 41.05502, + "asset_name": "occumed-tajikistan.pmtiles", + "metadata_name": "occumed-tajikistan.json" + }, + { + "id": "tanzania--r1-c1", + "slug": "tanzania--r1-c1", + "name": "Tanzania 1.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "29.24395,-11.77595,33.060923,-6.375469", + "source_region_id": "tanzania", + "source_size_bytes": 705143532, + "west": 29.24395, + "south": -11.77595, + "east": 33.060923, + "north": -6.375469, + "asset_name": "occumed-tanzania--r1-c1.pmtiles", + "metadata_name": "occumed-tanzania--r1-c1.json" + }, + { + "id": "tanzania--r1-c2", + "slug": "tanzania--r1-c2", + "name": "Tanzania 1.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "33.060923,-11.77595,36.877897,-6.375469", + "source_region_id": "tanzania", + "source_size_bytes": 705143532, + "west": 33.060923, + "south": -11.77595, + "east": 36.877897, + "north": -6.375469, + "asset_name": "occumed-tanzania--r1-c2.pmtiles", + "metadata_name": "occumed-tanzania--r1-c2.json" + }, + { + "id": "tanzania--r1-c3", + "slug": "tanzania--r1-c3", + "name": "Tanzania 1.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "36.877897,-11.77595,40.69487,-6.375469", + "source_region_id": "tanzania", + "source_size_bytes": 705143532, + "west": 36.877897, + "south": -11.77595, + "east": 40.69487, + "north": -6.375469, + "asset_name": "occumed-tanzania--r1-c3.pmtiles", + "metadata_name": "occumed-tanzania--r1-c3.json" + }, + { + "id": "tanzania--r2-c1", + "slug": "tanzania--r2-c1", + "name": "Tanzania 2.1", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "29.24395,-6.375469,33.060923,-0.974988", + "source_region_id": "tanzania", + "source_size_bytes": 705143532, + "west": 29.24395, + "south": -6.375469, + "east": 33.060923, + "north": -0.974988, + "asset_name": "occumed-tanzania--r2-c1.pmtiles", + "metadata_name": "occumed-tanzania--r2-c1.json" + }, + { + "id": "tanzania--r2-c2", + "slug": "tanzania--r2-c2", + "name": "Tanzania 2.2", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "33.060923,-6.375469,36.877897,-0.974988", + "source_region_id": "tanzania", + "source_size_bytes": 705143532, + "west": 33.060923, + "south": -6.375469, + "east": 36.877897, + "north": -0.974988, + "asset_name": "occumed-tanzania--r2-c2.pmtiles", + "metadata_name": "occumed-tanzania--r2-c2.json" + }, + { + "id": "tanzania--r2-c3", + "slug": "tanzania--r2-c3", + "name": "Tanzania 2.3", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tanzania-latest.osm.pbf", + "extract_bbox": "36.877897,-6.375469,40.69487,-0.974988", + "source_region_id": "tanzania", + "source_size_bytes": 705143532, + "west": 36.877897, + "south": -6.375469, + "east": 40.69487, + "north": -0.974988, + "asset_name": "occumed-tanzania--r2-c3.pmtiles", + "metadata_name": "occumed-tanzania--r2-c3.json" + }, + { + "id": "tasmania", + "slug": "tasmania", + "name": "Tasmania", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/tasmania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tasmania", + "source_size_bytes": 53243928, + "west": 143.4704, + "south": -56.86236, + "east": 161.6707, + "north": -39.19687, + "asset_name": "occumed-tasmania.pmtiles", + "metadata_name": "occumed-tasmania.json" + }, + { + "id": "thailand", + "slug": "thailand", + "name": "Thailand", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/thailand-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "thailand", + "source_size_bytes": 325566738, + "west": 97.13562, + "south": 5.597877, + "east": 105.6392, + "north": 20.46875, + "asset_name": "occumed-thailand.pmtiles", + "metadata_name": "occumed-thailand.json" + }, + { + "id": "thueringen", + "slug": "thueringen", + "name": "Thüringen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/thueringen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "thueringen", + "source_size_bytes": 158785014, + "west": 9.863176, + "south": 50.19971, + "east": 12.66106, + "north": 51.65237, + "asset_name": "occumed-thueringen.pmtiles", + "metadata_name": "occumed-thueringen.json" + }, + { + "id": "tianjin", + "slug": "tianjin", + "name": "Tianjin", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/tianjin-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tianjin", + "source_size_bytes": 14763793, + "west": 116.6944, + "south": 38.55327, + "east": 118.063, + "north": 40.25307, + "asset_name": "occumed-tianjin.pmtiles", + "metadata_name": "occumed-tianjin.json" + }, + { + "id": "tibet", + "slug": "tibet", + "name": "Tibet", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/tibet-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tibet", + "source_size_bytes": 48468215, + "west": 78.29403, + "south": 27.19968, + "east": 99.12552, + "north": 36.53, + "asset_name": "occumed-tibet.pmtiles", + "metadata_name": "occumed-tibet.json" + }, + { + "id": "togo", + "slug": "togo", + "name": "Togo", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/togo-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "togo", + "source_size_bytes": 62213584, + "west": -0.148338, + "south": 5.892541, + "east": 1.810942, + "north": 11.14395, + "asset_name": "occumed-togo.pmtiles", + "metadata_name": "occumed-togo.json" + }, + { + "id": "tohoku", + "slug": "tohoku", + "name": "Tōhoku region", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/japan/tohoku-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tohoku", + "source_size_bytes": 305244126, + "west": 138.9325, + "south": 36.52861, + "east": 142.8782, + "north": 41.64179, + "asset_name": "occumed-tohoku.pmtiles", + "metadata_name": "occumed-tohoku.json" + }, + { + "id": "tokelau", + "slug": "tokelau", + "name": "Tokelau", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/tokelau-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tokelau", + "source_size_bytes": 144472, + "west": -176.8579, + "south": -11.08137, + "east": -167.4097, + "north": -6.664586, + "asset_name": "occumed-tokelau.pmtiles", + "metadata_name": "occumed-tokelau.json" + }, + { + "id": "tonga", + "slug": "tonga", + "name": "Tonga", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/tonga-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tonga", + "source_size_bytes": 3716526, + "west": -178.6487, + "south": -25.68413, + "east": -171.3053, + "north": -14.15464, + "asset_name": "occumed-tonga.pmtiles", + "metadata_name": "occumed-tonga.json" + }, + { + "id": "trondelag", + "slug": "trondelag", + "name": "Trøndelag
(Central Norway)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/trondelag-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "trondelag", + "source_size_bytes": 182824242, + "west": 5.790873, + "south": 62.25533, + "east": 14.33543, + "north": 65.94955, + "asset_name": "occumed-trondelag.pmtiles", + "metadata_name": "occumed-trondelag.json" + }, + { + "id": "tuebingen-regbez", + "slug": "tuebingen-regbez", + "name": "Regierungsbezirk Tübingen", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/baden-wuerttemberg/tuebingen-regbez-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tuebingen-regbez", + "source_size_bytes": 124896683, + "west": 8.645593, + "south": 47.53246, + "east": 10.27309, + "north": 48.6348, + "asset_name": "occumed-tuebingen-regbez.pmtiles", + "metadata_name": "occumed-tuebingen-regbez.json" + }, + { + "id": "tunisia", + "slug": "tunisia", + "name": "Tunisia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/tunisia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tunisia", + "source_size_bytes": 83883873, + "west": 7.513961, + "south": 30.20864, + "east": 12.068, + "north": 37.77474, + "asset_name": "occumed-tunisia.pmtiles", + "metadata_name": "occumed-tunisia.json" + }, + { + "id": "turkey--r1-c1", + "slug": "turkey--r1-c1", + "name": "Turkey 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "25.52398,35.717,31.969293,39.395905", + "source_region_id": "turkey", + "source_size_bytes": 639560132, + "west": 25.52398, + "south": 35.717, + "east": 31.969293, + "north": 39.395905, + "asset_name": "occumed-turkey--r1-c1.pmtiles", + "metadata_name": "occumed-turkey--r1-c1.json" + }, + { + "id": "turkey--r1-c2", + "slug": "turkey--r1-c2", + "name": "Turkey 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "31.969293,35.717,38.414607,39.395905", + "source_region_id": "turkey", + "source_size_bytes": 639560132, + "west": 31.969293, + "south": 35.717, + "east": 38.414607, + "north": 39.395905, + "asset_name": "occumed-turkey--r1-c2.pmtiles", + "metadata_name": "occumed-turkey--r1-c2.json" + }, + { + "id": "turkey--r1-c3", + "slug": "turkey--r1-c3", + "name": "Turkey 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "38.414607,35.717,44.85992,39.395905", + "source_region_id": "turkey", + "source_size_bytes": 639560132, + "west": 38.414607, + "south": 35.717, + "east": 44.85992, + "north": 39.395905, + "asset_name": "occumed-turkey--r1-c3.pmtiles", + "metadata_name": "occumed-turkey--r1-c3.json" + }, + { + "id": "turkey--r2-c1", + "slug": "turkey--r2-c1", + "name": "Turkey 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "25.52398,39.395905,31.969293,43.07481", + "source_region_id": "turkey", + "source_size_bytes": 639560132, + "west": 25.52398, + "south": 39.395905, + "east": 31.969293, + "north": 43.07481, + "asset_name": "occumed-turkey--r2-c1.pmtiles", + "metadata_name": "occumed-turkey--r2-c1.json" + }, + { + "id": "turkey--r2-c2", + "slug": "turkey--r2-c2", + "name": "Turkey 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "31.969293,39.395905,38.414607,43.07481", + "source_region_id": "turkey", + "source_size_bytes": 639560132, + "west": 31.969293, + "south": 39.395905, + "east": 38.414607, + "north": 43.07481, + "asset_name": "occumed-turkey--r2-c2.pmtiles", + "metadata_name": "occumed-turkey--r2-c2.json" + }, + { + "id": "turkey--r2-c3", + "slug": "turkey--r2-c3", + "name": "Turkey 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/turkey-latest.osm.pbf", + "extract_bbox": "38.414607,39.395905,44.85992,43.07481", + "source_region_id": "turkey", + "source_size_bytes": 639560132, + "west": 38.414607, + "south": 39.395905, + "east": 44.85992, + "north": 43.07481, + "asset_name": "occumed-turkey--r2-c3.pmtiles", + "metadata_name": "occumed-turkey--r2-c3.json" + }, + { + "id": "turkmenistan", + "slug": "turkmenistan", + "name": "Turkmenistan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/turkmenistan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "turkmenistan", + "source_size_bytes": 24591523, + "west": 51.83271, + "south": 35.12355, + "east": 66.72272, + "north": 42.81253, + "asset_name": "occumed-turkmenistan.pmtiles", + "metadata_name": "occumed-turkmenistan.json" + }, + { + "id": "tuvalu", + "slug": "tuvalu", + "name": "Tuvalu", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/tuvalu-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tuvalu", + "source_size_bytes": 357158, + "west": 172.9953, + "south": -13.24039, + "east": -176.757, + "north": -4.061646, + "asset_name": "occumed-tuvalu.pmtiles", + "metadata_name": "occumed-tuvalu.json" + }, + { + "id": "tyne-and-wear", + "slug": "tyne-and-wear", + "name": "Tyne and Wear", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/tyne-and-wear-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "tyne-and-wear", + "source_size_bytes": 19297047, + "west": -1.853879, + "south": 54.79775, + "east": -1.262592, + "north": 55.10949, + "asset_name": "occumed-tyne-and-wear.pmtiles", + "metadata_name": "occumed-tyne-and-wear.json" + }, + { + "id": "uganda", + "slug": "uganda", + "name": "Uganda", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/uganda-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "uganda", + "source_size_bytes": 370485915, + "west": 29.57056, + "south": -1.487315, + "east": 35.01031, + "north": 4.250552, + "asset_name": "occumed-uganda.pmtiles", + "metadata_name": "occumed-uganda.json" + }, + { + "id": "ukraine--r1-c1", + "slug": "ukraine--r1-c1", + "name": "Ukraine (with Crimea) 1.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "22.13264,44.00862,28.167797,48.19756", + "source_region_id": "ukraine", + "source_size_bytes": 870277604, + "west": 22.13264, + "south": 44.00862, + "east": 28.167797, + "north": 48.19756, + "asset_name": "occumed-ukraine--r1-c1.pmtiles", + "metadata_name": "occumed-ukraine--r1-c1.json" + }, + { + "id": "ukraine--r1-c2", + "slug": "ukraine--r1-c2", + "name": "Ukraine (with Crimea) 1.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "28.167797,44.00862,34.202953,48.19756", + "source_region_id": "ukraine", + "source_size_bytes": 870277604, + "west": 28.167797, + "south": 44.00862, + "east": 34.202953, + "north": 48.19756, + "asset_name": "occumed-ukraine--r1-c2.pmtiles", + "metadata_name": "occumed-ukraine--r1-c2.json" + }, + { + "id": "ukraine--r1-c3", + "slug": "ukraine--r1-c3", + "name": "Ukraine (with Crimea) 1.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "34.202953,44.00862,40.23811,48.19756", + "source_region_id": "ukraine", + "source_size_bytes": 870277604, + "west": 34.202953, + "south": 44.00862, + "east": 40.23811, + "north": 48.19756, + "asset_name": "occumed-ukraine--r1-c3.pmtiles", + "metadata_name": "occumed-ukraine--r1-c3.json" + }, + { + "id": "ukraine--r2-c1", + "slug": "ukraine--r2-c1", + "name": "Ukraine (with Crimea) 2.1", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "22.13264,48.19756,28.167797,52.3865", + "source_region_id": "ukraine", + "source_size_bytes": 870277604, + "west": 22.13264, + "south": 48.19756, + "east": 28.167797, + "north": 52.3865, + "asset_name": "occumed-ukraine--r2-c1.pmtiles", + "metadata_name": "occumed-ukraine--r2-c1.json" + }, + { + "id": "ukraine--r2-c2", + "slug": "ukraine--r2-c2", + "name": "Ukraine (with Crimea) 2.2", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "28.167797,48.19756,34.202953,52.3865", + "source_region_id": "ukraine", + "source_size_bytes": 870277604, + "west": 28.167797, + "south": 48.19756, + "east": 34.202953, + "north": 52.3865, + "asset_name": "occumed-ukraine--r2-c2.pmtiles", + "metadata_name": "occumed-ukraine--r2-c2.json" + }, + { + "id": "ukraine--r2-c3", + "slug": "ukraine--r2-c3", + "name": "Ukraine (with Crimea) 2.3", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/ukraine-latest.osm.pbf", + "extract_bbox": "34.202953,48.19756,40.23811,52.3865", + "source_region_id": "ukraine", + "source_size_bytes": 870277604, + "west": 34.202953, + "south": 48.19756, + "east": 40.23811, + "north": 52.3865, + "asset_name": "occumed-ukraine--r2-c3.pmtiles", + "metadata_name": "occumed-ukraine--r2-c3.json" + }, + { + "id": "unterfranken", + "slug": "unterfranken", + "name": "Unterfranken", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/germany/bayern/unterfranken-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "unterfranken", + "source_size_bytes": 103913485, + "west": 8.975186, + "south": 49.47911, + "east": 10.88719, + "north": 50.56623, + "asset_name": "occumed-unterfranken.pmtiles", + "metadata_name": "occumed-unterfranken.json" + }, + { + "id": "ural-fed-district", + "slug": "ural-fed-district", + "name": "Ural Federal District", + "continent": "ural-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/ural-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ural-fed-district", + "source_size_bytes": 392764484, + "west": 57.04259, + "south": 51.8264, + "east": 86.0952, + "north": 75.011, + "asset_name": "occumed-ural-fed-district.pmtiles", + "metadata_name": "occumed-ural-fed-district.json" + }, + { + "id": "uruguay", + "slug": "uruguay", + "name": "Uruguay", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/uruguay-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "uruguay", + "source_size_bytes": 55982747, + "west": -58.52589, + "south": -36.2487, + "east": -52.7723, + "north": -30.07355, + "asset_name": "occumed-uruguay.pmtiles", + "metadata_name": "occumed-uruguay.json" + }, + { + "id": "us/alabama", + "slug": "us--alabama", + "name": "us/alabama", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/alabama-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/alabama", + "source_size_bytes": 146702183, + "west": -88.48389, + "south": 29.95494, + "east": -84.88336, + "north": 35.00872, + "asset_name": "occumed-us--alabama.pmtiles", + "metadata_name": "occumed-us--alabama.json" + }, + { + "id": "us/alaska", + "slug": "us--alaska", + "name": "us/alaska", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/alaska-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/alaska", + "source_size_bytes": 143675142, + "west": 171.7602, + "south": 49.8089, + "east": -129.7998, + "north": 72.98845, + "asset_name": "occumed-us--alaska.pmtiles", + "metadata_name": "occumed-us--alaska.json" + }, + { + "id": "us/arizona", + "slug": "us--arizona", + "name": "us/arizona", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/arizona-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/arizona", + "source_size_bytes": 299604833, + "west": -114.8224, + "south": 31.32659, + "east": -109.0437, + "north": 37.00596, + "asset_name": "occumed-us--arizona.pmtiles", + "metadata_name": "occumed-us--arizona.json" + }, + { + "id": "us/arkansas", + "slug": "us--arkansas", + "name": "us/arkansas", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/arkansas-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/arkansas", + "source_size_bytes": 98654028, + "west": -94.62217, + "south": 33.0038, + "east": -89.63987, + "north": 36.51585, + "asset_name": "occumed-us--arkansas.pmtiles", + "metadata_name": "occumed-us--arkansas.json" + }, + { + "id": "us/colorado", + "slug": "us--colorado", + "name": "us/colorado", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/colorado-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/colorado", + "source_size_bytes": 376544513, + "west": -109.0631, + "south": 36.98943, + "east": -102.0355, + "north": 41.00388, + "asset_name": "occumed-us--colorado.pmtiles", + "metadata_name": "occumed-us--colorado.json" + }, + { + "id": "us/connecticut", + "slug": "us--connecticut", + "name": "us/connecticut", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/connecticut-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/connecticut", + "source_size_bytes": 216034204, + "west": -73.72889, + "south": 40.96401, + "east": -71.7853, + "north": 42.05229, + "asset_name": "occumed-us--connecticut.pmtiles", + "metadata_name": "occumed-us--connecticut.json" + }, + { + "id": "us/delaware", + "slug": "us--delaware", + "name": "us/delaware", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/delaware-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/delaware", + "source_size_bytes": 21900340, + "west": -75.78974, + "south": 38.45043, + "east": -74.98401, + "north": 39.84262, + "asset_name": "occumed-us--delaware.pmtiles", + "metadata_name": "occumed-us--delaware.json" + }, + { + "id": "us/district-of-columbia", + "slug": "us--district-of-columbia", + "name": "us/district-of-columbia", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/district-of-columbia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/district-of-columbia", + "source_size_bytes": 20902041, + "west": -77.1201, + "south": 38.79099, + "east": -76.90906, + "north": 38.99603, + "asset_name": "occumed-us--district-of-columbia.pmtiles", + "metadata_name": "occumed-us--district-of-columbia.json" + }, + { + "id": "us/florida--r1-c1", + "slug": "us--florida--r1-c1", + "name": "us/florida 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-88.46896,24.20031,-85.458313,27.60169", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -88.46896, + "south": 24.20031, + "east": -85.458313, + "north": 27.60169, + "asset_name": "occumed-us--florida--r1-c1.pmtiles", + "metadata_name": "occumed-us--florida--r1-c1.json" + }, + { + "id": "us/florida--r1-c2", + "slug": "us--florida--r1-c2", + "name": "us/florida 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-85.458313,24.20031,-82.447667,27.60169", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -85.458313, + "south": 24.20031, + "east": -82.447667, + "north": 27.60169, + "asset_name": "occumed-us--florida--r1-c2.pmtiles", + "metadata_name": "occumed-us--florida--r1-c2.json" + }, + { + "id": "us/florida--r1-c3", + "slug": "us--florida--r1-c3", + "name": "us/florida 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-82.447667,24.20031,-79.43702,27.60169", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -82.447667, + "south": 24.20031, + "east": -79.43702, + "north": 27.60169, + "asset_name": "occumed-us--florida--r1-c3.pmtiles", + "metadata_name": "occumed-us--florida--r1-c3.json" + }, + { + "id": "us/florida--r2-c1", + "slug": "us--florida--r2-c1", + "name": "us/florida 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-88.46896,27.60169,-85.458313,31.00307", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -88.46896, + "south": 27.60169, + "east": -85.458313, + "north": 31.00307, + "asset_name": "occumed-us--florida--r2-c1.pmtiles", + "metadata_name": "occumed-us--florida--r2-c1.json" + }, + { + "id": "us/florida--r2-c2", + "slug": "us--florida--r2-c2", + "name": "us/florida 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-85.458313,27.60169,-82.447667,31.00307", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -85.458313, + "south": 27.60169, + "east": -82.447667, + "north": 31.00307, + "asset_name": "occumed-us--florida--r2-c2.pmtiles", + "metadata_name": "occumed-us--florida--r2-c2.json" + }, + { + "id": "us/florida--r2-c3", + "slug": "us--florida--r2-c3", + "name": "us/florida 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/florida-latest.osm.pbf", + "extract_bbox": "-82.447667,27.60169,-79.43702,31.00307", + "source_region_id": "us/florida", + "source_size_bytes": 653011056, + "west": -82.447667, + "south": 27.60169, + "east": -79.43702, + "north": 31.00307, + "asset_name": "occumed-us--florida--r2-c3.pmtiles", + "metadata_name": "occumed-us--florida--r2-c3.json" + }, + { + "id": "us/georgia", + "slug": "us--georgia", + "name": "Georgia", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/georgia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/georgia", + "source_size_bytes": 354468038, + "west": -85.6068, + "south": 30.35365, + "east": -80.74313, + "north": 35.00356, + "asset_name": "occumed-us--georgia.pmtiles", + "metadata_name": "occumed-us--georgia.json" + }, + { + "id": "us/hawaii", + "slug": "us--hawaii", + "name": "us/hawaii", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/hawaii-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/hawaii", + "source_size_bytes": 26461028, + "west": -179.5994, + "south": 15.92097, + "east": -142.6511, + "north": 29.02109, + "asset_name": "occumed-us--hawaii.pmtiles", + "metadata_name": "occumed-us--hawaii.json" + }, + { + "id": "us/idaho", + "slug": "us--idaho", + "name": "us/idaho", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/idaho-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/idaho", + "source_size_bytes": 127196094, + "west": -117.246, + "south": 41.98306, + "east": -111.0431, + "north": 49.00819, + "asset_name": "occumed-us--idaho.pmtiles", + "metadata_name": "occumed-us--idaho.json" + }, + { + "id": "us/illinois", + "slug": "us--illinois", + "name": "us/illinois", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/illinois-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/illinois", + "source_size_bytes": 355134343, + "west": -91.51608, + "south": 36.96731, + "east": -87.49264, + "north": 42.50941, + "asset_name": "occumed-us--illinois.pmtiles", + "metadata_name": "occumed-us--illinois.json" + }, + { + "id": "us/indiana", + "slug": "us--indiana", + "name": "us/indiana", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/indiana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/indiana", + "source_size_bytes": 196232921, + "west": -88.10327, + "south": 37.76911, + "east": -84.78042, + "north": 41.76301, + "asset_name": "occumed-us--indiana.pmtiles", + "metadata_name": "occumed-us--indiana.json" + }, + { + "id": "us/iowa", + "slug": "us--iowa", + "name": "us/iowa", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/iowa-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/iowa", + "source_size_bytes": 132366034, + "west": -96.6426, + "south": 40.37266, + "east": -90.13581, + "north": 43.50182, + "asset_name": "occumed-us--iowa.pmtiles", + "metadata_name": "occumed-us--iowa.json" + }, + { + "id": "us/kansas", + "slug": "us--kansas", + "name": "us/kansas", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/kansas-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/kansas", + "source_size_bytes": 114192334, + "west": -102.0535, + "south": 36.99136, + "east": -94.58926, + "north": 40.00375, + "asset_name": "occumed-us--kansas.pmtiles", + "metadata_name": "occumed-us--kansas.json" + }, + { + "id": "us/kentucky", + "slug": "us--kentucky", + "name": "us/kentucky", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/kentucky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/kentucky", + "source_size_bytes": 152904061, + "west": -89.58125, + "south": 36.49325, + "east": -81.95512, + "north": 39.14831, + "asset_name": "occumed-us--kentucky.pmtiles", + "metadata_name": "occumed-us--kentucky.json" + }, + { + "id": "us/louisiana", + "slug": "us--louisiana", + "name": "us/louisiana", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/louisiana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/louisiana", + "source_size_bytes": 145307734, + "west": -94.04376, + "south": 28.14452, + "east": -88.66684, + "north": 33.02025, + "asset_name": "occumed-us--louisiana.pmtiles", + "metadata_name": "occumed-us--louisiana.json" + }, + { + "id": "us/maine", + "slug": "us--maine", + "name": "us/maine", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/maine-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/maine", + "source_size_bytes": 90361204, + "west": -71.08891, + "south": 42.85443, + "east": -66.87164, + "north": 47.46222, + "asset_name": "occumed-us--maine.pmtiles", + "metadata_name": "occumed-us--maine.json" + }, + { + "id": "us/maryland", + "slug": "us--maryland", + "name": "us/maryland", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/maryland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/maryland", + "source_size_bytes": 213177709, + "west": -79.48857, + "south": 37.88396, + "east": -74.95408, + "north": 39.72684, + "asset_name": "occumed-us--maryland.pmtiles", + "metadata_name": "occumed-us--maryland.json" + }, + { + "id": "us/massachusetts", + "slug": "us--massachusetts", + "name": "us/massachusetts", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/massachusetts-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/massachusetts", + "source_size_bytes": 308781330, + "west": -73.51096, + "south": 40.88291, + "east": -68.73438, + "north": 42.88768, + "asset_name": "occumed-us--massachusetts.pmtiles", + "metadata_name": "occumed-us--massachusetts.json" + }, + { + "id": "us/michigan", + "slug": "us--michigan", + "name": "us/michigan", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/michigan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/michigan", + "source_size_bytes": 310051817, + "west": -90.41981, + "south": 41.69439, + "east": -82.06913, + "north": 48.35021, + "asset_name": "occumed-us--michigan.pmtiles", + "metadata_name": "occumed-us--michigan.json" + }, + { + "id": "us/minnesota", + "slug": "us--minnesota", + "name": "us/minnesota", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/minnesota-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/minnesota", + "source_size_bytes": 281947541, + "west": -97.24987, + "south": 43.49909, + "east": -89.48612, + "north": 49.40714, + "asset_name": "occumed-us--minnesota.pmtiles", + "metadata_name": "occumed-us--minnesota.json" + }, + { + "id": "us/mississippi", + "slug": "us--mississippi", + "name": "us/mississippi", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/mississippi-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/mississippi", + "source_size_bytes": 93489595, + "west": -91.65857, + "south": 30.04168, + "east": -88.09292, + "north": 35.00055, + "asset_name": "occumed-us--mississippi.pmtiles", + "metadata_name": "occumed-us--mississippi.json" + }, + { + "id": "us/missouri", + "slug": "us--missouri", + "name": "us/missouri", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/missouri-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/missouri", + "source_size_bytes": 192689010, + "west": -95.77751, + "south": 35.99466, + "east": -89.0891, + "north": 40.61664, + "asset_name": "occumed-us--missouri.pmtiles", + "metadata_name": "occumed-us--missouri.json" + }, + { + "id": "us/montana", + "slug": "us--montana", + "name": "us/montana", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/montana-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/montana", + "source_size_bytes": 99460231, + "west": -116.0518, + "south": 44.35556, + "east": -104.0355, + "north": 49.00769, + "asset_name": "occumed-us--montana.pmtiles", + "metadata_name": "occumed-us--montana.json" + }, + { + "id": "us/nebraska", + "slug": "us--nebraska", + "name": "us/nebraska", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/nebraska-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/nebraska", + "source_size_bytes": 99417515, + "west": -104.0575, + "south": 40.00015, + "east": -95.30703, + "north": 43.00172, + "asset_name": "occumed-us--nebraska.pmtiles", + "metadata_name": "occumed-us--nebraska.json" + }, + { + "id": "us/nevada", + "slug": "us--nevada", + "name": "us/nevada", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/nevada-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/nevada", + "source_size_bytes": 122462443, + "west": -120.0074, + "south": 35.00053, + "east": -114.0379, + "north": 42.00391, + "asset_name": "occumed-us--nevada.pmtiles", + "metadata_name": "occumed-us--nevada.json" + }, + { + "id": "us/new-hampshire", + "slug": "us--new-hampshire", + "name": "us/new-hampshire", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-hampshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/new-hampshire", + "source_size_bytes": 70708622, + "west": -72.5588, + "south": 42.69669, + "east": -70.48692, + "north": 45.31002, + "asset_name": "occumed-us--new-hampshire.pmtiles", + "metadata_name": "occumed-us--new-hampshire.json" + }, + { + "id": "us/new-jersey", + "slug": "us--new-jersey", + "name": "us/new-jersey", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-jersey-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/new-jersey", + "source_size_bytes": 162292588, + "west": -75.57879, + "south": 38.75433, + "east": -73.67898, + "north": 41.35807, + "asset_name": "occumed-us--new-jersey.pmtiles", + "metadata_name": "occumed-us--new-jersey.json" + }, + { + "id": "us/new-mexico", + "slug": "us--new-mexico", + "name": "us/new-mexico", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-mexico-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/new-mexico", + "source_size_bytes": 135569622, + "west": -109.0504, + "south": 31.33043, + "east": -102.9979, + "north": 37.00184, + "asset_name": "occumed-us--new-mexico.pmtiles", + "metadata_name": "occumed-us--new-mexico.json" + }, + { + "id": "us/new-york--r1-c1", + "slug": "us--new-york--r1-c1", + "name": "us/new-york 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-79.76483,40.43922,-77.063487,42.72844", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -79.76483, + "south": 40.43922, + "east": -77.063487, + "north": 42.72844, + "asset_name": "occumed-us--new-york--r1-c1.pmtiles", + "metadata_name": "occumed-us--new-york--r1-c1.json" + }, + { + "id": "us/new-york--r1-c2", + "slug": "us--new-york--r1-c2", + "name": "us/new-york 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-77.063487,40.43922,-74.362143,42.72844", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -77.063487, + "south": 40.43922, + "east": -74.362143, + "north": 42.72844, + "asset_name": "occumed-us--new-york--r1-c2.pmtiles", + "metadata_name": "occumed-us--new-york--r1-c2.json" + }, + { + "id": "us/new-york--r1-c3", + "slug": "us--new-york--r1-c3", + "name": "us/new-york 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-74.362143,40.43922,-71.6608,42.72844", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -74.362143, + "south": 40.43922, + "east": -71.6608, + "north": 42.72844, + "asset_name": "occumed-us--new-york--r1-c3.pmtiles", + "metadata_name": "occumed-us--new-york--r1-c3.json" + }, + { + "id": "us/new-york--r2-c1", + "slug": "us--new-york--r2-c1", + "name": "us/new-york 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-79.76483,42.72844,-77.063487,45.01766", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -79.76483, + "south": 42.72844, + "east": -77.063487, + "north": 45.01766, + "asset_name": "occumed-us--new-york--r2-c1.pmtiles", + "metadata_name": "occumed-us--new-york--r2-c1.json" + }, + { + "id": "us/new-york--r2-c2", + "slug": "us--new-york--r2-c2", + "name": "us/new-york 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-77.063487,42.72844,-74.362143,45.01766", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -77.063487, + "south": 42.72844, + "east": -74.362143, + "north": 45.01766, + "asset_name": "occumed-us--new-york--r2-c2.pmtiles", + "metadata_name": "occumed-us--new-york--r2-c2.json" + }, + { + "id": "us/new-york--r2-c3", + "slug": "us--new-york--r2-c3", + "name": "us/new-york 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/new-york-latest.osm.pbf", + "extract_bbox": "-74.362143,42.72844,-71.6608,45.01766", + "source_region_id": "us/new-york", + "source_size_bytes": 493924540, + "west": -74.362143, + "south": 42.72844, + "east": -71.6608, + "north": 45.01766, + "asset_name": "occumed-us--new-york--r2-c3.pmtiles", + "metadata_name": "occumed-us--new-york--r2-c3.json" + }, + { + "id": "us/north-carolina--r1-c1", + "slug": "us--north-carolina--r1-c1", + "name": "us/north-carolina 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-carolina-latest.osm.pbf", + "extract_bbox": "-84.32219,33.12992,-81.676543,36.58979", + "source_region_id": "us/north-carolina", + "source_size_bytes": 426018847, + "west": -84.32219, + "south": 33.12992, + "east": -81.676543, + "north": 36.58979, + "asset_name": "occumed-us--north-carolina--r1-c1.pmtiles", + "metadata_name": "occumed-us--north-carolina--r1-c1.json" + }, + { + "id": "us/north-carolina--r1-c2", + "slug": "us--north-carolina--r1-c2", + "name": "us/north-carolina 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-carolina-latest.osm.pbf", + "extract_bbox": "-81.676543,33.12992,-79.030895,36.58979", + "source_region_id": "us/north-carolina", + "source_size_bytes": 426018847, + "west": -81.676543, + "south": 33.12992, + "east": -79.030895, + "north": 36.58979, + "asset_name": "occumed-us--north-carolina--r1-c2.pmtiles", + "metadata_name": "occumed-us--north-carolina--r1-c2.json" + }, + { + "id": "us/north-carolina--r1-c3", + "slug": "us--north-carolina--r1-c3", + "name": "us/north-carolina 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-carolina-latest.osm.pbf", + "extract_bbox": "-79.030895,33.12992,-76.385247,36.58979", + "source_region_id": "us/north-carolina", + "source_size_bytes": 426018847, + "west": -79.030895, + "south": 33.12992, + "east": -76.385247, + "north": 36.58979, + "asset_name": "occumed-us--north-carolina--r1-c3.pmtiles", + "metadata_name": "occumed-us--north-carolina--r1-c3.json" + }, + { + "id": "us/north-carolina--r1-c4", + "slug": "us--north-carolina--r1-c4", + "name": "us/north-carolina 1.4", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-carolina-latest.osm.pbf", + "extract_bbox": "-76.385247,33.12992,-73.7396,36.58979", + "source_region_id": "us/north-carolina", + "source_size_bytes": 426018847, + "west": -76.385247, + "south": 33.12992, + "east": -73.7396, + "north": 36.58979, + "asset_name": "occumed-us--north-carolina--r1-c4.pmtiles", + "metadata_name": "occumed-us--north-carolina--r1-c4.json" + }, + { + "id": "us/north-dakota", + "slug": "us--north-dakota", + "name": "us/north-dakota", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/north-dakota-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/north-dakota", + "source_size_bytes": 127106011, + "west": -104.053, + "south": 45.93448, + "east": -96.55292, + "north": 49.01671, + "asset_name": "occumed-us--north-dakota.pmtiles", + "metadata_name": "occumed-us--north-dakota.json" + }, + { + "id": "us/ohio", + "slug": "us--ohio", + "name": "us/ohio", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/ohio-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/ohio", + "source_size_bytes": 320204943, + "west": -84.8219, + "south": 38.40076, + "east": -80.50521, + "north": 42.33584, + "asset_name": "occumed-us--ohio.pmtiles", + "metadata_name": "occumed-us--ohio.json" + }, + { + "id": "us/oklahoma", + "slug": "us--oklahoma", + "name": "us/oklahoma", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/oklahoma-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/oklahoma", + "source_size_bytes": 167285290, + "west": -103.0078, + "south": 33.61348, + "east": -94.42989, + "north": 37.00529, + "asset_name": "occumed-us--oklahoma.pmtiles", + "metadata_name": "occumed-us--oklahoma.json" + }, + { + "id": "us/oregon", + "slug": "us--oregon", + "name": "us/oregon", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/oregon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/oregon", + "source_size_bytes": 251765306, + "west": -126.3879, + "south": 41.9634, + "east": -116.4545, + "north": 46.30349, + "asset_name": "occumed-us--oregon.pmtiles", + "metadata_name": "occumed-us--oregon.json" + }, + { + "id": "us/pennsylvania", + "slug": "us--pennsylvania", + "name": "us/pennsylvania", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/pennsylvania-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/pennsylvania", + "source_size_bytes": 343049270, + "west": -80.52275, + "south": 39.6644, + "east": -74.68761, + "north": 42.51649, + "asset_name": "occumed-us--pennsylvania.pmtiles", + "metadata_name": "occumed-us--pennsylvania.json" + }, + { + "id": "us/puerto-rico", + "slug": "us--puerto-rico", + "name": "us/puerto-rico", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/puerto-rico-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/puerto-rico", + "source_size_bytes": 73558904, + "west": -68.31024, + "south": 17.51573, + "east": -65.09262, + "north": 18.81272, + "asset_name": "occumed-us--puerto-rico.pmtiles", + "metadata_name": "occumed-us--puerto-rico.json" + }, + { + "id": "us/rhode-island", + "slug": "us--rhode-island", + "name": "us/rhode-island", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/rhode-island-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/rhode-island", + "source_size_bytes": 51786640, + "west": -71.91456, + "south": 40.9992, + "east": -71.06369, + "north": 42.01938, + "asset_name": "occumed-us--rhode-island.pmtiles", + "metadata_name": "occumed-us--rhode-island.json" + }, + { + "id": "us/south-carolina", + "slug": "us--south-carolina", + "name": "us/south-carolina", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/south-carolina-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/south-carolina", + "source_size_bytes": 161844378, + "west": -83.35622, + "south": 32.02967, + "east": -78.51867, + "north": 35.2184, + "asset_name": "occumed-us--south-carolina.pmtiles", + "metadata_name": "occumed-us--south-carolina.json" + }, + { + "id": "us/south-dakota", + "slug": "us--south-dakota", + "name": "us/south-dakota", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/south-dakota-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/south-dakota", + "source_size_bytes": 47945098, + "west": -104.0588, + "south": 42.47744, + "east": -96.43595, + "north": 45.94831, + "asset_name": "occumed-us--south-dakota.pmtiles", + "metadata_name": "occumed-us--south-dakota.json" + }, + { + "id": "us/tennessee", + "slug": "us--tennessee", + "name": "us/tennessee", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/tennessee-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/tennessee", + "source_size_bytes": 186594783, + "west": -90.31329, + "south": 34.98269, + "east": -81.64416, + "north": 36.68075, + "asset_name": "occumed-us--tennessee.pmtiles", + "metadata_name": "occumed-us--tennessee.json" + }, + { + "id": "us/texas--r1-c1", + "slug": "us--texas--r1-c1", + "name": "us/texas 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-106.6494,25.69551,-102.105923,31.10848", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -106.6494, + "south": 25.69551, + "east": -102.105923, + "north": 31.10848, + "asset_name": "occumed-us--texas--r1-c1.pmtiles", + "metadata_name": "occumed-us--texas--r1-c1.json" + }, + { + "id": "us/texas--r1-c2", + "slug": "us--texas--r1-c2", + "name": "us/texas 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-102.105923,25.69551,-97.562447,31.10848", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -102.105923, + "south": 25.69551, + "east": -97.562447, + "north": 31.10848, + "asset_name": "occumed-us--texas--r1-c2.pmtiles", + "metadata_name": "occumed-us--texas--r1-c2.json" + }, + { + "id": "us/texas--r1-c3", + "slug": "us--texas--r1-c3", + "name": "us/texas 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-97.562447,25.69551,-93.01897,31.10848", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -97.562447, + "south": 25.69551, + "east": -93.01897, + "north": 31.10848, + "asset_name": "occumed-us--texas--r1-c3.pmtiles", + "metadata_name": "occumed-us--texas--r1-c3.json" + }, + { + "id": "us/texas--r2-c1", + "slug": "us--texas--r2-c1", + "name": "us/texas 2.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-106.6494,31.10848,-102.105923,36.52145", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -106.6494, + "south": 31.10848, + "east": -102.105923, + "north": 36.52145, + "asset_name": "occumed-us--texas--r2-c1.pmtiles", + "metadata_name": "occumed-us--texas--r2-c1.json" + }, + { + "id": "us/texas--r2-c2", + "slug": "us--texas--r2-c2", + "name": "us/texas 2.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-102.105923,31.10848,-97.562447,36.52145", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -102.105923, + "south": 31.10848, + "east": -97.562447, + "north": 36.52145, + "asset_name": "occumed-us--texas--r2-c2.pmtiles", + "metadata_name": "occumed-us--texas--r2-c2.json" + }, + { + "id": "us/texas--r2-c3", + "slug": "us--texas--r2-c3", + "name": "us/texas 2.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/texas-latest.osm.pbf", + "extract_bbox": "-97.562447,31.10848,-93.01897,36.52145", + "source_region_id": "us/texas", + "source_size_bytes": 711312334, + "west": -97.562447, + "south": 31.10848, + "east": -93.01897, + "north": 36.52145, + "asset_name": "occumed-us--texas--r2-c3.pmtiles", + "metadata_name": "occumed-us--texas--r2-c3.json" + }, + { + "id": "us/us-virgin-islands", + "slug": "us--us-virgin-islands", + "name": "us/us-virgin-islands", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/us-virgin-islands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/us-virgin-islands", + "source_size_bytes": 3114269, + "west": -65.17502, + "south": 17.28246, + "east": -63.95554, + "north": 18.48596, + "asset_name": "occumed-us--us-virgin-islands.pmtiles", + "metadata_name": "occumed-us--us-virgin-islands.json" + }, + { + "id": "us/utah", + "slug": "us--utah", + "name": "us/utah", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/utah-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/utah", + "source_size_bytes": 166503874, + "west": -114.0556, + "south": 36.9963, + "east": -109.0394, + "north": 42.00323, + "asset_name": "occumed-us--utah.pmtiles", + "metadata_name": "occumed-us--utah.json" + }, + { + "id": "us/vermont", + "slug": "us--vermont", + "name": "us/vermont", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/vermont-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/vermont", + "source_size_bytes": 45657162, + "west": -73.43943, + "south": 42.72498, + "east": -71.46476, + "north": 45.02309, + "asset_name": "occumed-us--vermont.pmtiles", + "metadata_name": "occumed-us--vermont.json" + }, + { + "id": "us/virginia--r1-c1", + "slug": "us--virginia--r1-c1", + "name": "us/virginia 1.1", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/virginia-latest.osm.pbf", + "extract_bbox": "-83.67841,36.53798,-81.333185,39.46901", + "source_region_id": "us/virginia", + "source_size_bytes": 425665038, + "west": -83.67841, + "south": 36.53798, + "east": -81.333185, + "north": 39.46901, + "asset_name": "occumed-us--virginia--r1-c1.pmtiles", + "metadata_name": "occumed-us--virginia--r1-c1.json" + }, + { + "id": "us/virginia--r1-c2", + "slug": "us--virginia--r1-c2", + "name": "us/virginia 1.2", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/virginia-latest.osm.pbf", + "extract_bbox": "-81.333185,36.53798,-78.98796,39.46901", + "source_region_id": "us/virginia", + "source_size_bytes": 425665038, + "west": -81.333185, + "south": 36.53798, + "east": -78.98796, + "north": 39.46901, + "asset_name": "occumed-us--virginia--r1-c2.pmtiles", + "metadata_name": "occumed-us--virginia--r1-c2.json" + }, + { + "id": "us/virginia--r1-c3", + "slug": "us--virginia--r1-c3", + "name": "us/virginia 1.3", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/virginia-latest.osm.pbf", + "extract_bbox": "-78.98796,36.53798,-76.642735,39.46901", + "source_region_id": "us/virginia", + "source_size_bytes": 425665038, + "west": -78.98796, + "south": 36.53798, + "east": -76.642735, + "north": 39.46901, + "asset_name": "occumed-us--virginia--r1-c3.pmtiles", + "metadata_name": "occumed-us--virginia--r1-c3.json" + }, + { + "id": "us/virginia--r1-c4", + "slug": "us--virginia--r1-c4", + "name": "us/virginia 1.4", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/virginia-latest.osm.pbf", + "extract_bbox": "-76.642735,36.53798,-74.29751,39.46901", + "source_region_id": "us/virginia", + "source_size_bytes": 425665038, + "west": -76.642735, + "south": 36.53798, + "east": -74.29751, + "north": 39.46901, + "asset_name": "occumed-us--virginia--r1-c4.pmtiles", + "metadata_name": "occumed-us--virginia--r1-c4.json" + }, + { + "id": "us/washington", + "slug": "us--washington", + "name": "us/washington", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/washington-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/washington", + "source_size_bytes": 359364192, + "west": -126.7423, + "south": 45.53882, + "east": -116.9115, + "north": 49.00708, + "asset_name": "occumed-us--washington.pmtiles", + "metadata_name": "occumed-us--washington.json" + }, + { + "id": "us/west-virginia", + "slug": "us--west-virginia", + "name": "us/west-virginia", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/west-virginia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/west-virginia", + "source_size_bytes": 97483385, + "west": -82.64965, + "south": 37.19858, + "east": -77.7141, + "north": 40.64636, + "asset_name": "occumed-us--west-virginia.pmtiles", + "metadata_name": "occumed-us--west-virginia.json" + }, + { + "id": "us/wisconsin", + "slug": "us--wisconsin", + "name": "us/wisconsin", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/wisconsin-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/wisconsin", + "source_size_bytes": 290898998, + "west": -92.89089, + "south": 42.48899, + "east": -86.20021, + "north": 47.41451, + "asset_name": "occumed-us--wisconsin.pmtiles", + "metadata_name": "occumed-us--wisconsin.json" + }, + { + "id": "us/wyoming", + "slug": "us--wyoming", + "name": "us/wyoming", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/us/wyoming-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "us/wyoming", + "source_size_bytes": 92590015, + "west": -111.0576, + "south": 40.98339, + "east": -103.9413, + "north": 45.01216, + "asset_name": "occumed-us--wyoming.pmtiles", + "metadata_name": "occumed-us--wyoming.json" + }, + { + "id": "ustecky", + "slug": "ustecky", + "name": "Ústecký kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/ustecky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ustecky", + "source_size_bytes": 111206038, + "west": 12.93716, + "south": 50.07552, + "east": 14.66589, + "north": 51.06426, + "asset_name": "occumed-ustecky.pmtiles", + "metadata_name": "occumed-ustecky.json" + }, + { + "id": "utrecht", + "slug": "utrecht", + "name": "Utrecht", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/utrecht-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "utrecht", + "source_size_bytes": 97927638, + "west": 4.790849, + "south": 51.85615, + "east": 5.62829, + "north": 52.30494, + "asset_name": "occumed-utrecht.pmtiles", + "metadata_name": "occumed-utrecht.json" + }, + { + "id": "uzbekistan", + "slug": "uzbekistan", + "name": "Uzbekistan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/uzbekistan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "uzbekistan", + "source_size_bytes": 121594347, + "west": 55.97708, + "south": 37.16636, + "east": 73.17463, + "north": 45.61884, + "asset_name": "occumed-uzbekistan.pmtiles", + "metadata_name": "occumed-uzbekistan.json" + }, + { + "id": "valencia", + "slug": "valencia", + "name": "Valencia", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/spain/valencia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "valencia", + "source_size_bytes": 138765289, + "west": -1.531649, + "south": 37.84341, + "east": 1.686396, + "north": 40.79328, + "asset_name": "occumed-valencia.pmtiles", + "metadata_name": "occumed-valencia.json" + }, + { + "id": "vanuatu", + "slug": "vanuatu", + "name": "Vanuatu", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/vanuatu-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "vanuatu", + "source_size_bytes": 7888865, + "west": 163.3086, + "south": -21.64288, + "east": 173.6089, + "north": -12.29626, + "asset_name": "occumed-vanuatu.pmtiles", + "metadata_name": "occumed-vanuatu.json" + }, + { + "id": "venezuela", + "slug": "venezuela", + "name": "Venezuela", + "continent": "south-america", + "pbf_url": "https://download.geofabrik.de/south-america/venezuela-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "venezuela", + "source_size_bytes": 124251917, + "west": -73.38098, + "south": 0.621727, + "east": -59.51474, + "north": 15.96134, + "asset_name": "occumed-venezuela.pmtiles", + "metadata_name": "occumed-venezuela.json" + }, + { + "id": "vestlandet", + "slug": "vestlandet", + "name": "Vestlandet
(Western Norway)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/norway/vestlandet-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "vestlandet", + "source_size_bytes": 256477886, + "west": 2.32908, + "south": 57.63122, + "east": 9.374655, + "north": 65.12362, + "asset_name": "occumed-vestlandet.pmtiles", + "metadata_name": "occumed-vestlandet.json" + }, + { + "id": "victoria", + "slug": "victoria", + "name": "Victoria", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/victoria-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "victoria", + "source_size_bytes": 238779146, + "west": 140.9574, + "south": -39.23224, + "east": 150.4683, + "north": -33.97931, + "asset_name": "occumed-victoria.pmtiles", + "metadata_name": "occumed-victoria.json" + }, + { + "id": "vietnam", + "slug": "vietnam", + "name": "Vietnam", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/vietnam-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "vietnam", + "source_size_bytes": 325637347, + "west": 102.0959, + "south": 7.382239, + "east": 114.6423, + "north": 23.40214, + "asset_name": "occumed-vietnam.pmtiles", + "metadata_name": "occumed-vietnam.json" + }, + { + "id": "volga-fed-district--r1-c1", + "slug": "volga-fed-district--r1-c1", + "name": "Volga Federal District 1.1", + "continent": "volga-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/volga-fed-district-latest.osm.pbf", + "extract_bbox": "41.72107,49.75097,51.72739,55.73534", + "source_region_id": "volga-fed-district", + "source_size_bytes": 768647327, + "west": 41.72107, + "south": 49.75097, + "east": 51.72739, + "north": 55.73534, + "asset_name": "occumed-volga-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-volga-fed-district--r1-c1.json" + }, + { + "id": "volga-fed-district--r1-c2", + "slug": "volga-fed-district--r1-c2", + "name": "Volga Federal District 1.2", + "continent": "volga-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/volga-fed-district-latest.osm.pbf", + "extract_bbox": "51.72739,49.75097,61.73371,55.73534", + "source_region_id": "volga-fed-district", + "source_size_bytes": 768647327, + "west": 51.72739, + "south": 49.75097, + "east": 61.73371, + "north": 55.73534, + "asset_name": "occumed-volga-fed-district--r1-c2.pmtiles", + "metadata_name": "occumed-volga-fed-district--r1-c2.json" + }, + { + "id": "volga-fed-district--r2-c1", + "slug": "volga-fed-district--r2-c1", + "name": "Volga Federal District 2.1", + "continent": "volga-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/volga-fed-district-latest.osm.pbf", + "extract_bbox": "41.72107,55.73534,51.72739,61.71971", + "source_region_id": "volga-fed-district", + "source_size_bytes": 768647327, + "west": 41.72107, + "south": 55.73534, + "east": 51.72739, + "north": 61.71971, + "asset_name": "occumed-volga-fed-district--r2-c1.pmtiles", + "metadata_name": "occumed-volga-fed-district--r2-c1.json" + }, + { + "id": "volga-fed-district--r2-c2", + "slug": "volga-fed-district--r2-c2", + "name": "Volga Federal District 2.2", + "continent": "volga-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/volga-fed-district-latest.osm.pbf", + "extract_bbox": "51.72739,55.73534,61.73371,61.71971", + "source_region_id": "volga-fed-district", + "source_size_bytes": 768647327, + "west": 51.72739, + "south": 55.73534, + "east": 61.73371, + "north": 61.71971, + "asset_name": "occumed-volga-fed-district--r2-c2.pmtiles", + "metadata_name": "occumed-volga-fed-district--r2-c2.json" + }, + { + "id": "vysocina", + "slug": "vysocina", + "name": "Kraj Vysočina", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/vysocina-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "vysocina", + "source_size_bytes": 72962400, + "west": 14.88686, + "south": 48.9362, + "east": 16.41962, + "north": 49.8613, + "asset_name": "occumed-vysocina.pmtiles", + "metadata_name": "occumed-vysocina.json" + }, + { + "id": "wales", + "slug": "wales", + "name": "Wales", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/wales-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "wales", + "source_size_bytes": 145490497, + "west": -6.183241, + "south": 51.03997, + "east": -2.648042, + "north": 53.76632, + "asset_name": "occumed-wales.pmtiles", + "metadata_name": "occumed-wales.json" + }, + { + "id": "wallis-et-futuna", + "slug": "wallis-et-futuna", + "name": "Wallis et Futuna", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/wallis-et-futuna-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "wallis-et-futuna", + "source_size_bytes": 617194, + "west": -179.978, + "south": -16.25685, + "east": -174.1553, + "north": -9.05868, + "asset_name": "occumed-wallis-et-futuna.pmtiles", + "metadata_name": "occumed-wallis-et-futuna.json" + }, + { + "id": "warminsko-mazurskie", + "slug": "warminsko-mazurskie", + "name": "Województwo warmińsko-mazurskie
(Warmian-Masurian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/warminsko-mazurskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "warminsko-mazurskie", + "source_size_bytes": 84141516, + "west": 19.11666, + "south": 53.12575, + "east": 22.82058, + "north": 54.51456, + "asset_name": "occumed-warminsko-mazurskie.pmtiles", + "metadata_name": "occumed-warminsko-mazurskie.json" + }, + { + "id": "warwickshire", + "slug": "warwickshire", + "name": "Warwickshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/warwickshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "warwickshire", + "source_size_bytes": 24169759, + "west": -1.963, + "south": 51.95471, + "east": -1.17115, + "north": 52.68823, + "asset_name": "occumed-warwickshire.pmtiles", + "metadata_name": "occumed-warwickshire.json" + }, + { + "id": "west-midlands", + "slug": "west-midlands", + "name": "West Midlands", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/west-midlands-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "west-midlands", + "source_size_bytes": 59192221, + "west": -2.208211, + "south": 52.3457, + "east": -1.422524, + "north": 52.6643, + "asset_name": "occumed-west-midlands.pmtiles", + "metadata_name": "occumed-west-midlands.json" + }, + { + "id": "west-sussex", + "slug": "west-sussex", + "name": "West Sussex", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/west-sussex-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "west-sussex", + "source_size_bytes": 48909430, + "west": -0.956244, + "south": 50.70685, + "east": 0.041342, + "north": 51.169, + "asset_name": "occumed-west-sussex.pmtiles", + "metadata_name": "occumed-west-sussex.json" + }, + { + "id": "west-yorkshire", + "slug": "west-yorkshire", + "name": "West Yorkshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/west-yorkshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "west-yorkshire", + "source_size_bytes": 52949230, + "west": -2.175545, + "south": 53.51822, + "east": -1.196, + "north": 53.96491, + "asset_name": "occumed-west-yorkshire.pmtiles", + "metadata_name": "occumed-west-yorkshire.json" + }, + { + "id": "western-australia", + "slug": "western-australia", + "name": "Western Australia", + "continent": "australia-oceania", + "pbf_url": "https://download.geofabrik.de/australia-oceania/australia/western-australia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "western-australia", + "source_size_bytes": 113588670, + "west": 109.9281, + "south": -41.16427, + "east": 130.32, + "north": -12.83116, + "asset_name": "occumed-western-australia.pmtiles", + "metadata_name": "occumed-western-australia.json" + }, + { + "id": "western-zone", + "slug": "western-zone", + "name": "Western Zone", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/india/western-zone-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "western-zone", + "source_size_bytes": 218426611, + "west": 67.67457, + "south": 14.38929, + "east": 80.91362, + "north": 24.71756, + "asset_name": "occumed-western-zone.pmtiles", + "metadata_name": "occumed-western-zone.json" + }, + { + "id": "wielkopolskie", + "slug": "wielkopolskie", + "name": "Województwo wielkopolskie
(Greater Poland Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/wielkopolskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "wielkopolskie", + "source_size_bytes": 157791053, + "west": 15.76036, + "south": 51.08403, + "east": 19.12931, + "north": 53.68105, + "asset_name": "occumed-wielkopolskie.pmtiles", + "metadata_name": "occumed-wielkopolskie.json" + }, + { + "id": "wiltshire", + "slug": "wiltshire", + "name": "Wiltshire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/wiltshire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "wiltshire", + "source_size_bytes": 33888322, + "west": -2.363253, + "south": 50.9465, + "east": -1.488811, + "north": 51.70637, + "asset_name": "occumed-wiltshire.pmtiles", + "metadata_name": "occumed-wiltshire.json" + }, + { + "id": "worcestershire", + "slug": "worcestershire", + "name": "Worcestershire", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/worcestershire-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "worcestershire", + "source_size_bytes": 20184527, + "west": -2.66399, + "south": 51.9654, + "east": -1.756496, + "north": 52.4565, + "asset_name": "occumed-worcestershire.pmtiles", + "metadata_name": "occumed-worcestershire.json" + }, + { + "id": "xinjiang", + "slug": "xinjiang", + "name": "Xinjiang", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/xinjiang-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "xinjiang", + "source_size_bytes": 47214941, + "west": 73.41788, + "south": 34.26775, + "east": 96.43, + "north": 49.26201, + "asset_name": "occumed-xinjiang.pmtiles", + "metadata_name": "occumed-xinjiang.json" + }, + { + "id": "yemen", + "slug": "yemen", + "name": "Yemen", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/yemen-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "yemen", + "source_size_bytes": 43017491, + "west": 41.06894, + "south": 11.36768, + "east": 55.51167, + "north": 19.03189, + "asset_name": "occumed-yemen.pmtiles", + "metadata_name": "occumed-yemen.json" + }, + { + "id": "yukon", + "slug": "yukon", + "name": "Yukon", + "continent": "north-america", + "pbf_url": "https://download.geofabrik.de/north-america/canada/yukon-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "yukon", + "source_size_bytes": 74086123, + "west": -141.2389, + "south": 59.99739, + "east": -123.8021, + "north": 70.16293, + "asset_name": "occumed-yukon.pmtiles", + "metadata_name": "occumed-yukon.json" + }, + { + "id": "yunnan", + "slug": "yunnan", + "name": "Yunnan", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/yunnan-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "yunnan", + "source_size_bytes": 91202281, + "west": 97.42851, + "south": 21.04476, + "east": 106.215, + "north": 29.23518, + "asset_name": "occumed-yunnan.pmtiles", + "metadata_name": "occumed-yunnan.json" + }, + { + "id": "zachodniopomorskie", + "slug": "zachodniopomorskie", + "name": "Województwo zachodniopomorskie
(West Pomeranian Voivodeship)", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/poland/zachodniopomorskie-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zachodniopomorskie", + "source_size_bytes": 97106805, + "west": 13.99022, + "south": 52.61742, + "east": 16.98847, + "north": 55.00664, + "asset_name": "occumed-zachodniopomorskie.pmtiles", + "metadata_name": "occumed-zachodniopomorskie.json" + }, + { + "id": "zambia", + "slug": "zambia", + "name": "Zambia", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/zambia-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zambia", + "source_size_bytes": 251593990, + "west": 21.98982, + "south": -18.08777, + "east": 33.71773, + "north": -8.239483, + "asset_name": "occumed-zambia.pmtiles", + "metadata_name": "occumed-zambia.json" + }, + { + "id": "zeeland", + "slug": "zeeland", + "name": "Zeeland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/zeeland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zeeland", + "source_size_bytes": 43775084, + "west": 3.233941, + "south": 51.19717, + "east": 4.278407, + "north": 51.87013, + "asset_name": "occumed-zeeland.pmtiles", + "metadata_name": "occumed-zeeland.json" + }, + { + "id": "zhejiang", + "slug": "zhejiang", + "name": "Zhejiang", + "continent": "asia", + "pbf_url": "https://download.geofabrik.de/asia/china/zhejiang-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zhejiang", + "source_size_bytes": 89138091, + "west": 118.0206, + "south": 26.69164, + "east": 123.8379, + "north": 31.19078, + "asset_name": "occumed-zhejiang.pmtiles", + "metadata_name": "occumed-zhejiang.json" + }, + { + "id": "zimbabwe", + "slug": "zimbabwe", + "name": "Zimbabwe", + "continent": "africa", + "pbf_url": "https://download.geofabrik.de/africa/zimbabwe-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zimbabwe", + "source_size_bytes": 178971824, + "west": 25.2229, + "south": -22.44725, + "east": 33.08541, + "north": -15.58707, + "asset_name": "occumed-zimbabwe.pmtiles", + "metadata_name": "occumed-zimbabwe.json" + }, + { + "id": "zlinsky", + "slug": "zlinsky", + "name": "Zlínský kraj", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/czech-republic/zlinsky-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zlinsky", + "source_size_bytes": 52410533, + "west": 17.10807, + "south": 48.8374, + "east": 18.45055, + "north": 49.54122, + "asset_name": "occumed-zlinsky.pmtiles", + "metadata_name": "occumed-zlinsky.json" + }, + { + "id": "zuid-holland", + "slug": "zuid-holland", + "name": "Zuid-Holland", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/netherlands/zuid-holland-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "zuid-holland", + "source_size_bytes": 209943651, + "west": 3.345328, + "south": 51.64252, + "east": 5.032393, + "north": 52.47611, + "asset_name": "occumed-zuid-holland.pmtiles", + "metadata_name": "occumed-zuid-holland.json" + } + ], + "canonical": true, + "excludedSourceRegions": [ + "alps", + "britain-and-ireland", + "dach", + "great-britain", + "sea", + "south-africa-and-lesotho", + "us", + "us-midwest", + "us-northeast", + "us-pacific", + "us-south", + "us-west" + ] +} diff --git a/diagnostics/world-release-inventory/missing-only-plan.json b/diagnostics/world-release-inventory/missing-only-plan.json new file mode 100644 index 00000000..7689527e --- /dev/null +++ b/diagnostics/world-release-inventory/missing-only-plan.json @@ -0,0 +1,99 @@ +{ + "include": [ + { + "id": "enfield", + "slug": "enfield", + "name": "Enfield", + "continent": "europe", + "pbf_url": "https://download.geofabrik.de/europe/united-kingdom/england/london/enfield-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "enfield", + "source_size_bytes": 2940, + "west": -0.185433, + "south": 51.60542, + "east": -0.008839, + "north": 51.69193, + "asset_name": "occumed-enfield.pmtiles", + "metadata_name": "occumed-enfield.json" + }, + { + "id": "far-eastern-fed-district", + "slug": "far-eastern-fed-district", + "name": "Far Eastern Federal District", + "continent": "far-eastern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/far-eastern-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "far-eastern-fed-district", + "source_size_bytes": 382069908, + "west": 105.4219, + "south": 37.34659, + "east": -168.6841, + "north": 82.00023, + "asset_name": "occumed-far-eastern-fed-district.pmtiles", + "metadata_name": "occumed-far-eastern-fed-district.json" + }, + { + "id": "northwestern-fed-district--r1-c1", + "slug": "northwestern-fed-district--r1-c1", + "name": "Northwestern Federal District 1.1", + "continent": "northwestern-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/northwestern-fed-district-latest.osm.pbf", + "extract_bbox": "19.40837,54.31282,46.01659,68.429215", + "source_region_id": "northwestern-fed-district", + "source_size_bytes": 647303617, + "west": 19.40837, + "south": 54.31282, + "east": 46.01659, + "north": 68.429215, + "asset_name": "occumed-northwestern-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-northwestern-fed-district--r1-c1.json" + }, + { + "id": "siberian-fed-district--r1-c1", + "slug": "siberian-fed-district--r1-c1", + "name": "Siberian Federal District 1.1", + "continent": "siberian-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/siberian-fed-district-latest.osm.pbf", + "extract_bbox": "70.27478,49.02101,108.99404,65.45424", + "source_region_id": "siberian-fed-district", + "source_size_bytes": 581322916, + "west": 70.27478, + "south": 49.02101, + "east": 108.99404, + "north": 65.45424, + "asset_name": "occumed-siberian-fed-district--r1-c1.pmtiles", + "metadata_name": "occumed-siberian-fed-district--r1-c1.json" + }, + { + "id": "ural-fed-district", + "slug": "ural-fed-district", + "name": "Ural Federal District", + "continent": "ural-fed-district", + "pbf_url": "https://download.geofabrik.de/russia/ural-fed-district-latest.osm.pbf", + "extract_bbox": "", + "source_region_id": "ural-fed-district", + "source_size_bytes": 392764484, + "west": 57.04259, + "south": 51.8264, + "east": 86.0952, + "north": 75.011, + "asset_name": "occumed-ural-fed-district.pmtiles", + "metadata_name": "occumed-ural-fed-district.json" + } + ], + "canonical": true, + "excludedSourceRegions": [ + "alps", + "britain-and-ireland", + "dach", + "great-britain", + "sea", + "south-africa-and-lesotho", + "us", + "us-midwest", + "us-northeast", + "us-pacific", + "us-south", + "us-west" + ] +} diff --git a/diagnostics/world-release-inventory/published-state-summary.json b/diagnostics/world-release-inventory/published-state-summary.json new file mode 100644 index 00000000..9cffec8e --- /dev/null +++ b/diagnostics/world-release-inventory/published-state-summary.json @@ -0,0 +1,5180 @@ +{ + "capturedAt": "2026-07-27T01:19:59.450Z", + "releaseTag": "occumed-world-v1", + "canonicalShardCount": 724, + "totalReleaseAssetCount": 896, + "totalReleasePmtilesCount": 736, + "publishedCanonicalCount": 719, + "missingCanonicalCount": 5, + "publishedCanonicalPercentage": 99.31, + "publishedCanonicalBytes": 258034999774, + "zeroSizePublishedCount": 0, + "extraPmtilesAssetCount": 17, + "publishedRegions": [ + { + "id": "act", + "name": "Australian Capital Territory", + "asset": "occumed-act.pmtiles", + "sizeBytes": 36434999, + "updatedAt": "2026-07-26T19:17:12Z" + }, + { + "id": "afghanistan", + "name": "Afghanistan", + "asset": "occumed-afghanistan.pmtiles", + "sizeBytes": 524859186, + "updatedAt": "2026-07-26T18:26:01Z" + }, + { + "id": "albania", + "name": "Albania", + "asset": "occumed-albania.pmtiles", + "sizeBytes": 176690304, + "updatedAt": "2026-07-26T18:07:04Z" + }, + { + "id": "alberta", + "name": "Alberta", + "asset": "occumed-alberta.pmtiles", + "sizeBytes": 1594870445, + "updatedAt": "2026-07-26T18:30:55Z" + }, + { + "id": "algeria", + "name": "Algeria", + "asset": "occumed-algeria.pmtiles", + "sizeBytes": 942937197, + "updatedAt": "2026-07-26T19:32:26Z" + }, + { + "id": "alsace", + "name": "Alsace", + "asset": "occumed-alsace.pmtiles", + "sizeBytes": 264375380, + "updatedAt": "2026-07-26T18:41:39Z" + }, + { + "id": "american-oceania", + "name": "American Oceania", + "asset": "occumed-american-oceania.pmtiles", + "sizeBytes": 20201701, + "updatedAt": "2026-07-26T19:19:34Z" + }, + { + "id": "andalucia", + "name": "Andalucía", + "asset": "occumed-andalucia.pmtiles", + "sizeBytes": 525892756, + "updatedAt": "2026-07-26T18:23:32Z" + }, + { + "id": "andorra", + "name": "Andorra", + "asset": "occumed-andorra.pmtiles", + "sizeBytes": 7161860, + "updatedAt": "2026-07-26T18:39:48Z" + }, + { + "id": "angola", + "name": "Angola", + "asset": "occumed-angola.pmtiles", + "sizeBytes": 442106339, + "updatedAt": "2026-07-26T18:24:56Z" + }, + { + "id": "anhui", + "name": "Anhui", + "asset": "occumed-anhui.pmtiles", + "sizeBytes": 278347582, + "updatedAt": "2026-07-26T19:23:26Z" + }, + { + "id": "antarctica", + "name": "Antarctica", + "asset": "occumed-antarctica.pmtiles", + "sizeBytes": 165930313, + "updatedAt": "2026-07-26T18:49:09Z" + }, + { + "id": "aquitaine", + "name": "Aquitaine", + "asset": "occumed-aquitaine.pmtiles", + "sizeBytes": 736363106, + "updatedAt": "2026-07-26T18:06:23Z" + }, + { + "id": "aragon", + "name": "Aragón", + "asset": "occumed-aragon.pmtiles", + "sizeBytes": 321522392, + "updatedAt": "2026-07-26T18:23:06Z" + }, + { + "id": "argentina--r1-c1", + "name": "Argentina 1.1", + "asset": "occumed-argentina--r1-c1.pmtiles", + "sizeBytes": 494017218, + "updatedAt": "2026-07-26T22:07:34Z" + }, + { + "id": "argentina--r1-c2", + "name": "Argentina 1.2", + "asset": "occumed-argentina--r1-c2.pmtiles", + "sizeBytes": 43994446, + "updatedAt": "2026-07-26T22:35:19Z" + }, + { + "id": "argentina--r2-c1", + "name": "Argentina 2.1", + "asset": "occumed-argentina--r2-c1.pmtiles", + "sizeBytes": 708652049, + "updatedAt": "2026-07-26T22:44:21Z" + }, + { + "id": "argentina--r2-c2", + "name": "Argentina 2.2", + "asset": "occumed-argentina--r2-c2.pmtiles", + "sizeBytes": 1101912183, + "updatedAt": "2026-07-26T22:27:58Z" + }, + { + "id": "armenia", + "name": "Armenia", + "asset": "occumed-armenia.pmtiles", + "sizeBytes": 161582537, + "updatedAt": "2026-07-26T18:36:00Z" + }, + { + "id": "arnsberg-regbez", + "name": "Regierungsbezirk Arnsberg", + "asset": "occumed-arnsberg-regbez.pmtiles", + "sizeBytes": 390544548, + "updatedAt": "2026-07-26T20:29:16Z" + }, + { + "id": "ashmore-cartier", + "name": "Ashmore and Cartier Islands", + "asset": "occumed-ashmore-cartier.pmtiles", + "sizeBytes": 333538, + "updatedAt": "2026-07-26T18:27:23Z" + }, + { + "id": "asturias", + "name": "Asturias", + "asset": "occumed-asturias.pmtiles", + "sizeBytes": 99419202, + "updatedAt": "2026-07-26T20:31:37Z" + }, + { + "id": "austria--r1-c1", + "name": "Austria 1.1", + "asset": "occumed-austria--r1-c1.pmtiles", + "sizeBytes": 218677278, + "updatedAt": "2026-07-26T22:39:45Z" + }, + { + "id": "austria--r1-c2", + "name": "Austria 1.2", + "asset": "occumed-austria--r1-c2.pmtiles", + "sizeBytes": 374476041, + "updatedAt": "2026-07-26T22:51:40Z" + }, + { + "id": "austria--r1-c3", + "name": "Austria 1.3", + "asset": "occumed-austria--r1-c3.pmtiles", + "sizeBytes": 404662517, + "updatedAt": "2026-07-26T22:30:46Z" + }, + { + "id": "austria--r2-c1", + "name": "Austria 2.1", + "asset": "occumed-austria--r2-c1.pmtiles", + "sizeBytes": 172534, + "updatedAt": "2026-07-26T22:42:10Z" + }, + { + "id": "austria--r2-c2", + "name": "Austria 2.2", + "asset": "occumed-austria--r2-c2.pmtiles", + "sizeBytes": 342214553, + "updatedAt": "2026-07-26T22:19:26Z" + }, + { + "id": "austria--r2-c3", + "name": "Austria 2.3", + "asset": "occumed-austria--r2-c3.pmtiles", + "sizeBytes": 568753470, + "updatedAt": "2026-07-26T22:18:09Z" + }, + { + "id": "auvergne", + "name": "Auvergne", + "asset": "occumed-auvergne.pmtiles", + "sizeBytes": 436726100, + "updatedAt": "2026-07-26T19:29:09Z" + }, + { + "id": "azerbaijan", + "name": "Azerbaijan", + "asset": "occumed-azerbaijan.pmtiles", + "sizeBytes": 223627675, + "updatedAt": "2026-07-26T18:37:58Z" + }, + { + "id": "azores", + "name": "Azores", + "asset": "occumed-azores.pmtiles", + "sizeBytes": 46849008, + "updatedAt": "2026-07-26T19:20:02Z" + }, + { + "id": "bahamas", + "name": "Bahamas", + "asset": "occumed-bahamas.pmtiles", + "sizeBytes": 38689318, + "updatedAt": "2026-07-26T20:32:27Z" + }, + { + "id": "bangladesh", + "name": "Bangladesh", + "asset": "occumed-bangladesh.pmtiles", + "sizeBytes": 977043755, + "updatedAt": "2026-07-26T20:32:44Z" + }, + { + "id": "basse-normandie", + "name": "Basse-Normandie", + "asset": "occumed-basse-normandie.pmtiles", + "sizeBytes": 377226041, + "updatedAt": "2026-07-26T19:01:15Z" + }, + { + "id": "bedfordshire", + "name": "Bedfordshire", + "asset": "occumed-bedfordshire.pmtiles", + "sizeBytes": 35967869, + "updatedAt": "2026-07-26T19:28:39Z" + }, + { + "id": "beijing", + "name": "Beijing", + "asset": "occumed-beijing.pmtiles", + "sizeBytes": 136593964, + "updatedAt": "2026-07-26T20:33:49Z" + }, + { + "id": "belarus", + "name": "Belarus", + "asset": "occumed-belarus.pmtiles", + "sizeBytes": 1450523897, + "updatedAt": "2026-07-26T20:51:19Z" + }, + { + "id": "belgium--r1-c1", + "name": "Belgium 1.1", + "asset": "occumed-belgium--r1-c1.pmtiles", + "sizeBytes": 10934490, + "updatedAt": "2026-07-26T22:34:32Z" + }, + { + "id": "belgium--r1-c2", + "name": "Belgium 1.2", + "asset": "occumed-belgium--r1-c2.pmtiles", + "sizeBytes": 199226572, + "updatedAt": "2026-07-26T22:17:39Z" + }, + { + "id": "belgium--r1-c3", + "name": "Belgium 1.3", + "asset": "occumed-belgium--r1-c3.pmtiles", + "sizeBytes": 169288251, + "updatedAt": "2026-07-26T22:16:57Z" + }, + { + "id": "belgium--r2-c1", + "name": "Belgium 2.1", + "asset": "occumed-belgium--r2-c1.pmtiles", + "sizeBytes": 310222580, + "updatedAt": "2026-07-26T22:37:08Z" + }, + { + "id": "belgium--r2-c2", + "name": "Belgium 2.2", + "asset": "occumed-belgium--r2-c2.pmtiles", + "sizeBytes": 585752939, + "updatedAt": "2026-07-26T22:19:43Z" + }, + { + "id": "belgium--r2-c3", + "name": "Belgium 2.3", + "asset": "occumed-belgium--r2-c3.pmtiles", + "sizeBytes": 264851520, + "updatedAt": "2026-07-26T22:13:51Z" + }, + { + "id": "belize", + "name": "Belize", + "asset": "occumed-belize.pmtiles", + "sizeBytes": 83085755, + "updatedAt": "2026-07-26T20:52:32Z" + }, + { + "id": "benin", + "name": "Benin", + "asset": "occumed-benin.pmtiles", + "sizeBytes": 158988165, + "updatedAt": "2026-07-26T20:56:04Z" + }, + { + "id": "berkshire", + "name": "Berkshire", + "asset": "occumed-berkshire.pmtiles", + "sizeBytes": 51304667, + "updatedAt": "2026-07-26T21:06:18Z" + }, + { + "id": "berlin", + "name": "Berlin", + "asset": "occumed-berlin.pmtiles", + "sizeBytes": 138039614, + "updatedAt": "2026-07-26T19:31:11Z" + }, + { + "id": "bermuda", + "name": "Bermuda", + "asset": "occumed-bermuda.pmtiles", + "sizeBytes": 4564397, + "updatedAt": "2026-07-26T20:48:25Z" + }, + { + "id": "bhutan", + "name": "Bhutan", + "asset": "occumed-bhutan.pmtiles", + "sizeBytes": 98405974, + "updatedAt": "2026-07-26T20:50:33Z" + }, + { + "id": "bolivia", + "name": "Bolivia", + "asset": "occumed-bolivia.pmtiles", + "sizeBytes": 794325354, + "updatedAt": "2026-07-26T20:56:28Z" + }, + { + "id": "bosnia-herzegovina", + "name": "Bosnia-Herzegovina", + "asset": "occumed-bosnia-herzegovina.pmtiles", + "sizeBytes": 532980424, + "updatedAt": "2026-07-26T21:04:54Z" + }, + { + "id": "botswana", + "name": "Botswana", + "asset": "occumed-botswana.pmtiles", + "sizeBytes": 300738699, + "updatedAt": "2026-07-26T21:07:11Z" + }, + { + "id": "bourgogne", + "name": "Bourgogne", + "asset": "occumed-bourgogne.pmtiles", + "sizeBytes": 548188641, + "updatedAt": "2026-07-26T21:04:03Z" + }, + { + "id": "brandenburg", + "name": "Brandenburg (mit Berlin)", + "asset": "occumed-brandenburg.pmtiles", + "sizeBytes": 684119245, + "updatedAt": "2026-07-26T21:05:24Z" + }, + { + "id": "bremen", + "name": "Bremen", + "asset": "occumed-bremen.pmtiles", + "sizeBytes": 39435607, + "updatedAt": "2026-07-26T21:10:00Z" + }, + { + "id": "bretagne", + "name": "Bretagne", + "asset": "occumed-bretagne.pmtiles", + "sizeBytes": 712827446, + "updatedAt": "2026-07-26T21:13:45Z" + }, + { + "id": "bristol", + "name": "Bristol", + "asset": "occumed-bristol.pmtiles", + "sizeBytes": 24851824, + "updatedAt": "2026-07-26T21:08:34Z" + }, + { + "id": "buckinghamshire", + "name": "Buckinghamshire", + "asset": "occumed-buckinghamshire.pmtiles", + "sizeBytes": 56010425, + "updatedAt": "2026-07-26T21:12:09Z" + }, + { + "id": "bulgaria", + "name": "Bulgaria", + "asset": "occumed-bulgaria.pmtiles", + "sizeBytes": 610762555, + "updatedAt": "2026-07-26T21:14:51Z" + }, + { + "id": "burkina-faso", + "name": "Burkina Faso", + "asset": "occumed-burkina-faso.pmtiles", + "sizeBytes": 312968500, + "updatedAt": "2026-07-26T21:09:43Z" + }, + { + "id": "burundi", + "name": "Burundi", + "asset": "occumed-burundi.pmtiles", + "sizeBytes": 126332033, + "updatedAt": "2026-07-26T21:09:56Z" + }, + { + "id": "cambodia", + "name": "Cambodia", + "asset": "occumed-cambodia.pmtiles", + "sizeBytes": 188896274, + "updatedAt": "2026-07-26T21:11:10Z" + }, + { + "id": "cambridgeshire", + "name": "Cambridgeshire", + "asset": "occumed-cambridgeshire.pmtiles", + "sizeBytes": 88897417, + "updatedAt": "2026-07-26T21:11:17Z" + }, + { + "id": "cameroon", + "name": "Cameroon", + "asset": "occumed-cameroon.pmtiles", + "sizeBytes": 926285104, + "updatedAt": "2026-07-26T21:24:22Z" + }, + { + "id": "canary-islands", + "name": "Canary Islands", + "asset": "occumed-canary-islands.pmtiles", + "sizeBytes": 131546103, + "updatedAt": "2026-07-26T21:12:39Z" + }, + { + "id": "cantabria", + "name": "Cantabria", + "asset": "occumed-cantabria.pmtiles", + "sizeBytes": 73528503, + "updatedAt": "2026-07-26T21:09:58Z" + }, + { + "id": "cape-verde", + "name": "Cape Verde", + "asset": "occumed-cape-verde.pmtiles", + "sizeBytes": 29443943, + "updatedAt": "2026-07-26T21:09:32Z" + }, + { + "id": "castilla-la-mancha", + "name": "Castilla-La Mancha", + "asset": "occumed-castilla-la-mancha.pmtiles", + "sizeBytes": 372634455, + "updatedAt": "2026-07-26T21:14:18Z" + }, + { + "id": "castilla-y-leon", + "name": "Castilla y León", + "asset": "occumed-castilla-y-leon.pmtiles", + "sizeBytes": 598132373, + "updatedAt": "2026-07-26T21:15:47Z" + }, + { + "id": "cataluna", + "name": "Cataluña", + "asset": "occumed-cataluna.pmtiles", + "sizeBytes": 542237446, + "updatedAt": "2026-07-26T21:19:34Z" + }, + { + "id": "central-african-republic", + "name": "Central African Republic", + "asset": "occumed-central-african-republic.pmtiles", + "sizeBytes": 519054892, + "updatedAt": "2026-07-26T21:17:27Z" + }, + { + "id": "central-fed-district--r1-c1", + "name": "Central Federal District 1.1", + "asset": "occumed-central-fed-district--r1-c1.pmtiles", + "sizeBytes": 968010742, + "updatedAt": "2026-07-26T21:18:50Z" + }, + { + "id": "central-fed-district--r1-c2", + "name": "Central Federal District 1.2", + "asset": "occumed-central-fed-district--r1-c2.pmtiles", + "sizeBytes": 543404423, + "updatedAt": "2026-07-26T22:37:49Z" + }, + { + "id": "central-fed-district--r2-c1", + "name": "Central Federal District 2.1", + "asset": "occumed-central-fed-district--r2-c1.pmtiles", + "sizeBytes": 1362404889, + "updatedAt": "2026-07-26T22:25:27Z" + }, + { + "id": "central-fed-district--r2-c2", + "name": "Central Federal District 2.2", + "asset": "occumed-central-fed-district--r2-c2.pmtiles", + "sizeBytes": 623131423, + "updatedAt": "2026-07-26T22:09:09Z" + }, + { + "id": "central-zone", + "name": "Central Zone", + "asset": "occumed-central-zone.pmtiles", + "sizeBytes": 1354557374, + "updatedAt": "2026-07-26T21:25:09Z" + }, + { + "id": "centre", + "name": "Centre", + "asset": "occumed-centre.pmtiles", + "sizeBytes": 633753977, + "updatedAt": "2026-07-26T21:24:40Z" + }, + { + "id": "centro", + "name": "Centro", + "asset": "occumed-centro.pmtiles", + "sizeBytes": 1010943038, + "updatedAt": "2026-07-26T21:23:56Z" + }, + { + "id": "centro-oeste", + "name": "Centro-Oeste", + "asset": "occumed-centro-oeste.pmtiles", + "sizeBytes": 1031568470, + "updatedAt": "2026-07-26T21:22:31Z" + }, + { + "id": "ceuta", + "name": "Ceuta", + "asset": "occumed-ceuta.pmtiles", + "sizeBytes": 1157042, + "updatedAt": "2026-07-26T21:23:54Z" + }, + { + "id": "chad", + "name": "Chad", + "asset": "occumed-chad.pmtiles", + "sizeBytes": 445874405, + "updatedAt": "2026-07-26T21:22:15Z" + }, + { + "id": "champagne-ardenne", + "name": "Champagne Ardenne", + "asset": "occumed-champagne-ardenne.pmtiles", + "sizeBytes": 314267520, + "updatedAt": "2026-07-26T21:31:10Z" + }, + { + "id": "cheshire", + "name": "Cheshire", + "asset": "occumed-cheshire.pmtiles", + "sizeBytes": 91979404, + "updatedAt": "2026-07-26T21:24:12Z" + }, + { + "id": "chile", + "name": "Chile", + "asset": "occumed-chile.pmtiles", + "sizeBytes": 1161916103, + "updatedAt": "2026-07-26T19:12:09Z" + }, + { + "id": "chongqing", + "name": "Chongqing", + "asset": "occumed-chongqing.pmtiles", + "sizeBytes": 159101291, + "updatedAt": "2026-07-26T21:20:06Z" + }, + { + "id": "christmas-island", + "name": "Christmas Island", + "asset": "occumed-christmas-island.pmtiles", + "sizeBytes": 894028, + "updatedAt": "2026-07-26T21:23:15Z" + }, + { + "id": "chubu--r1-c1", + "name": "Chūbu region 1.1", + "asset": "occumed-chubu--r1-c1.pmtiles", + "sizeBytes": 494208569, + "updatedAt": "2026-07-26T22:37:08Z" + }, + { + "id": "chubu--r1-c2", + "name": "Chūbu region 1.2", + "asset": "occumed-chubu--r1-c2.pmtiles", + "sizeBytes": 384550417, + "updatedAt": "2026-07-26T22:50:32Z" + }, + { + "id": "chubu--r2-c1", + "name": "Chūbu region 2.1", + "asset": "occumed-chubu--r2-c1.pmtiles", + "sizeBytes": 96054826, + "updatedAt": "2026-07-26T22:27:06Z" + }, + { + "id": "chubu--r2-c2", + "name": "Chūbu region 2.2", + "asset": "occumed-chubu--r2-c2.pmtiles", + "sizeBytes": 184814398, + "updatedAt": "2026-07-26T22:56:26Z" + }, + { + "id": "chugoku", + "name": "Chūgoku region", + "asset": "occumed-chugoku.pmtiles", + "sizeBytes": 484786493, + "updatedAt": "2026-07-26T21:33:07Z" + }, + { + "id": "cocos-islands", + "name": "Cocos (Keeling) Islands", + "asset": "occumed-cocos-islands.pmtiles", + "sizeBytes": 683118, + "updatedAt": "2026-07-26T21:33:01Z" + }, + { + "id": "colombia", + "name": "Colombia", + "asset": "occumed-colombia.pmtiles", + "sizeBytes": 1168345134, + "updatedAt": "2026-07-26T21:36:41Z" + }, + { + "id": "comores", + "name": "Comores", + "asset": "occumed-comores.pmtiles", + "sizeBytes": 9438378, + "updatedAt": "2026-07-26T21:36:51Z" + }, + { + "id": "congo-brazzaville", + "name": "Congo (Republic/Brazzaville)", + "asset": "occumed-congo-brazzaville.pmtiles", + "sizeBytes": 172894776, + "updatedAt": "2026-07-26T21:35:57Z" + }, + { + "id": "congo-democratic-republic--r1-c1", + "name": "Congo (Democratic Republic/Kinshasa) 1.1", + "asset": "occumed-congo-democratic-republic--r1-c1.pmtiles", + "sizeBytes": 132677433, + "updatedAt": "2026-07-26T22:11:04Z" + }, + { + "id": "congo-democratic-republic--r1-c2", + "name": "Congo (Democratic Republic/Kinshasa) 1.2", + "asset": "occumed-congo-democratic-republic--r1-c2.pmtiles", + "sizeBytes": 159413055, + "updatedAt": "2026-07-26T22:06:58Z" + }, + { + "id": "congo-democratic-republic--r1-c3", + "name": "Congo (Democratic Republic/Kinshasa) 1.3", + "asset": "occumed-congo-democratic-republic--r1-c3.pmtiles", + "sizeBytes": 224522290, + "updatedAt": "2026-07-26T22:35:07Z" + }, + { + "id": "congo-democratic-republic--r2-c1", + "name": "Congo (Democratic Republic/Kinshasa) 2.1", + "asset": "occumed-congo-democratic-republic--r2-c1.pmtiles", + "sizeBytes": 45624999, + "updatedAt": "2026-07-26T22:16:46Z" + }, + { + "id": "congo-democratic-republic--r2-c2", + "name": "Congo (Democratic Republic/Kinshasa) 2.2", + "asset": "occumed-congo-democratic-republic--r2-c2.pmtiles", + "sizeBytes": 200154842, + "updatedAt": "2026-07-26T22:11:43Z" + }, + { + "id": "congo-democratic-republic--r2-c3", + "name": "Congo (Democratic Republic/Kinshasa) 2.3", + "asset": "occumed-congo-democratic-republic--r2-c3.pmtiles", + "sizeBytes": 728246361, + "updatedAt": "2026-07-26T22:41:33Z" + }, + { + "id": "cook-islands", + "name": "Cook Islands", + "asset": "occumed-cook-islands.pmtiles", + "sizeBytes": 4262253, + "updatedAt": "2026-07-26T21:34:56Z" + }, + { + "id": "coral-sea-islands", + "name": "Coral Sea Islands", + "asset": "occumed-coral-sea-islands.pmtiles", + "sizeBytes": 4379043, + "updatedAt": "2026-07-26T21:31:25Z" + }, + { + "id": "cornwall", + "name": "Cornwall", + "asset": "occumed-cornwall.pmtiles", + "sizeBytes": 84225998, + "updatedAt": "2026-07-26T21:39:20Z" + }, + { + "id": "corse", + "name": "Corse", + "asset": "occumed-corse.pmtiles", + "sizeBytes": 96962099, + "updatedAt": "2026-07-26T21:43:09Z" + }, + { + "id": "costa-rica", + "name": "Costa Rica", + "asset": "occumed-costa-rica.pmtiles", + "sizeBytes": 168033754, + "updatedAt": "2026-07-26T21:50:33Z" + }, + { + "id": "crimean-fed-district", + "name": "Crimean Federal District", + "asset": "occumed-crimean-fed-district.pmtiles", + "sizeBytes": 138737670, + "updatedAt": "2026-07-26T21:42:56Z" + }, + { + "id": "croatia", + "name": "Croatia", + "asset": "occumed-croatia.pmtiles", + "sizeBytes": 635107281, + "updatedAt": "2026-07-26T21:48:02Z" + }, + { + "id": "cuba", + "name": "Cuba", + "asset": "occumed-cuba.pmtiles", + "sizeBytes": 259848036, + "updatedAt": "2026-07-26T21:47:20Z" + }, + { + "id": "cumbria", + "name": "Cumbria", + "asset": "occumed-cumbria.pmtiles", + "sizeBytes": 100982605, + "updatedAt": "2026-07-26T21:47:46Z" + }, + { + "id": "cyprus", + "name": "Cyprus", + "asset": "occumed-cyprus.pmtiles", + "sizeBytes": 113616868, + "updatedAt": "2026-07-26T21:46:25Z" + }, + { + "id": "denmark--r1-c1", + "name": "Denmark 1.1", + "asset": "occumed-denmark--r1-c1.pmtiles", + "sizeBytes": 422432638, + "updatedAt": "2026-07-26T22:21:35Z" + }, + { + "id": "denmark--r1-c2", + "name": "Denmark 1.2", + "asset": "occumed-denmark--r1-c2.pmtiles", + "sizeBytes": 439926482, + "updatedAt": "2026-07-26T22:26:10Z" + }, + { + "id": "denmark--r1-c3", + "name": "Denmark 1.3", + "asset": "occumed-denmark--r1-c3.pmtiles", + "sizeBytes": 26074393, + "updatedAt": "2026-07-26T22:31:34Z" + }, + { + "id": "denmark--r2-c1", + "name": "Denmark 2.1", + "asset": "occumed-denmark--r2-c1.pmtiles", + "sizeBytes": 303663384, + "updatedAt": "2026-07-26T22:19:00Z" + }, + { + "id": "denmark--r2-c2", + "name": "Denmark 2.2", + "asset": "occumed-denmark--r2-c2.pmtiles", + "sizeBytes": 48684592, + "updatedAt": "2026-07-26T22:22:36Z" + }, + { + "id": "denmark--r2-c3", + "name": "Denmark 2.3", + "asset": "occumed-denmark--r2-c3.pmtiles", + "sizeBytes": 16732, + "updatedAt": "2026-07-26T22:37:05Z" + }, + { + "id": "derbyshire", + "name": "Derbyshire", + "asset": "occumed-derbyshire.pmtiles", + "sizeBytes": 87113030, + "updatedAt": "2026-07-26T19:01:03Z" + }, + { + "id": "detmold-regbez", + "name": "Regierungsbezirk Detmold", + "asset": "occumed-detmold-regbez.pmtiles", + "sizeBytes": 307454046, + "updatedAt": "2026-07-26T21:54:06Z" + }, + { + "id": "devon", + "name": "Devon", + "asset": "occumed-devon.pmtiles", + "sizeBytes": 138566839, + "updatedAt": "2026-07-26T21:49:21Z" + }, + { + "id": "djibouti", + "name": "Djibouti", + "asset": "occumed-djibouti.pmtiles", + "sizeBytes": 20762518, + "updatedAt": "2026-07-26T21:47:53Z" + }, + { + "id": "dolnoslaskie", + "name": "Województwo dolnośląskie
(Lower Silesian Voivodeship)", + "asset": "occumed-dolnoslaskie.pmtiles", + "sizeBytes": 413964274, + "updatedAt": "2026-07-26T21:53:22Z" + }, + { + "id": "dorset", + "name": "Dorset", + "asset": "occumed-dorset.pmtiles", + "sizeBytes": 65597283, + "updatedAt": "2026-07-26T21:55:27Z" + }, + { + "id": "drenthe", + "name": "Drenthe", + "asset": "occumed-drenthe.pmtiles", + "sizeBytes": 111289821, + "updatedAt": "2026-07-26T22:10:30Z" + }, + { + "id": "duesseldorf-regbez", + "name": "Regierungsbezirk Düsseldorf", + "asset": "occumed-duesseldorf-regbez.pmtiles", + "sizeBytes": 400838386, + "updatedAt": "2026-07-26T21:56:15Z" + }, + { + "id": "durham", + "name": "Durham", + "asset": "occumed-durham.pmtiles", + "sizeBytes": 58572346, + "updatedAt": "2026-07-26T19:14:12Z" + }, + { + "id": "east-sussex", + "name": "East Sussex", + "asset": "occumed-east-sussex.pmtiles", + "sizeBytes": 47857312, + "updatedAt": "2026-07-26T21:59:55Z" + }, + { + "id": "east-timor", + "name": "East Timor", + "asset": "occumed-east-timor.pmtiles", + "sizeBytes": 55603406, + "updatedAt": "2026-07-26T22:00:25Z" + }, + { + "id": "east-yorkshire-with-hull", + "name": "East Yorkshire with Hull", + "asset": "occumed-east-yorkshire-with-hull.pmtiles", + "sizeBytes": 59191237, + "updatedAt": "2026-07-26T21:58:04Z" + }, + { + "id": "eastern-zone", + "name": "Eastern Zone", + "asset": "occumed-eastern-zone.pmtiles", + "sizeBytes": 870883095, + "updatedAt": "2026-07-26T22:15:39Z" + }, + { + "id": "ecuador", + "name": "Ecuador", + "asset": "occumed-ecuador.pmtiles", + "sizeBytes": 450049072, + "updatedAt": "2026-07-26T22:13:47Z" + }, + { + "id": "egypt", + "name": "Egypt", + "asset": "occumed-egypt.pmtiles", + "sizeBytes": 540285024, + "updatedAt": "2026-07-26T22:04:02Z" + }, + { + "id": "el-salvador", + "name": "El Salvador", + "asset": "occumed-el-salvador.pmtiles", + "sizeBytes": 110160930, + "updatedAt": "2026-07-26T22:00:22Z" + }, + { + "id": "equatorial-guinea", + "name": "Equatorial Guinea", + "asset": "occumed-equatorial-guinea.pmtiles", + "sizeBytes": 30257207, + "updatedAt": "2026-07-26T22:07:41Z" + }, + { + "id": "eritrea", + "name": "Eritrea", + "asset": "occumed-eritrea.pmtiles", + "sizeBytes": 69410613, + "updatedAt": "2026-07-26T23:29:01Z" + }, + { + "id": "essex", + "name": "Essex", + "asset": "occumed-essex.pmtiles", + "sizeBytes": 109351203, + "updatedAt": "2026-07-26T22:15:01Z" + }, + { + "id": "estonia", + "name": "Estonia", + "asset": "occumed-estonia.pmtiles", + "sizeBytes": 439119935, + "updatedAt": "2026-07-26T22:07:43Z" + }, + { + "id": "ethiopia", + "name": "Ethiopia", + "asset": "occumed-ethiopia.pmtiles", + "sizeBytes": 585906172, + "updatedAt": "2026-07-26T22:08:29Z" + }, + { + "id": "extremadura", + "name": "Extremadura", + "asset": "occumed-extremadura.pmtiles", + "sizeBytes": 152656958, + "updatedAt": "2026-07-26T22:13:39Z" + }, + { + "id": "falklands", + "name": "Falkland Islands", + "asset": "occumed-falklands.pmtiles", + "sizeBytes": 16739176, + "updatedAt": "2026-07-26T22:14:13Z" + }, + { + "id": "faroe-islands", + "name": "Faroe Islands", + "asset": "occumed-faroe-islands.pmtiles", + "sizeBytes": 22731128, + "updatedAt": "2026-07-26T22:16:33Z" + }, + { + "id": "fiji", + "name": "Fiji", + "asset": "occumed-fiji.pmtiles", + "sizeBytes": 49960591, + "updatedAt": "2026-07-26T22:13:37Z" + }, + { + "id": "finland--r1-c1", + "name": "Finland 1.1", + "asset": "occumed-finland--r1-c1.pmtiles", + "sizeBytes": 1252280200, + "updatedAt": "2026-07-26T22:25:25Z" + }, + { + "id": "finland--r1-c2", + "name": "Finland 1.2", + "asset": "occumed-finland--r1-c2.pmtiles", + "sizeBytes": 1242034349, + "updatedAt": "2026-07-26T22:31:36Z" + }, + { + "id": "finland--r2-c1", + "name": "Finland 2.1", + "asset": "occumed-finland--r2-c1.pmtiles", + "sizeBytes": 204259001, + "updatedAt": "2026-07-26T22:19:32Z" + }, + { + "id": "finland--r2-c2", + "name": "Finland 2.2", + "asset": "occumed-finland--r2-c2.pmtiles", + "sizeBytes": 455403081, + "updatedAt": "2026-07-26T23:59:01Z" + }, + { + "id": "flevoland", + "name": "Flevoland", + "asset": "occumed-flevoland.pmtiles", + "sizeBytes": 58935688, + "updatedAt": "2026-07-26T23:50:26Z" + }, + { + "id": "franche-comte", + "name": "Franche Comte", + "asset": "occumed-franche-comte.pmtiles", + "sizeBytes": 310799254, + "updatedAt": "2026-07-26T23:30:30Z" + }, + { + "id": "freiburg-regbez", + "name": "Regierungsbezirk Freiburg", + "asset": "occumed-freiburg-regbez.pmtiles", + "sizeBytes": 354620491, + "updatedAt": "2026-07-26T22:22:08Z" + }, + { + "id": "friesland", + "name": "Friesland", + "asset": "occumed-friesland.pmtiles", + "sizeBytes": 156892097, + "updatedAt": "2026-07-26T23:31:39Z" + }, + { + "id": "fujian", + "name": "Fujian", + "asset": "occumed-fujian.pmtiles", + "sizeBytes": 214073825, + "updatedAt": "2026-07-26T23:32:12Z" + }, + { + "id": "gabon", + "name": "Gabon", + "asset": "occumed-gabon.pmtiles", + "sizeBytes": 155282737, + "updatedAt": "2026-07-27T00:04:51Z" + }, + { + "id": "galicia", + "name": "Galicia", + "asset": "occumed-galicia.pmtiles", + "sizeBytes": 321157940, + "updatedAt": "2026-07-26T23:53:12Z" + }, + { + "id": "gansu", + "name": "Gansu", + "asset": "occumed-gansu.pmtiles", + "sizeBytes": 366854805, + "updatedAt": "2026-07-26T23:31:50Z" + }, + { + "id": "gcc-states", + "name": "GCC States", + "asset": "occumed-gcc-states.pmtiles", + "sizeBytes": 1236171015, + "updatedAt": "2026-07-26T23:38:50Z" + }, + { + "id": "gelderland", + "name": "Gelderland", + "asset": "occumed-gelderland.pmtiles", + "sizeBytes": 307868040, + "updatedAt": "2026-07-26T23:52:20Z" + }, + { + "id": "georgia", + "name": "Georgia", + "asset": "occumed-georgia.pmtiles", + "sizeBytes": 340503632, + "updatedAt": "2026-07-26T23:52:25Z" + }, + { + "id": "ghana", + "name": "Ghana", + "asset": "occumed-ghana.pmtiles", + "sizeBytes": 361194710, + "updatedAt": "2026-07-27T00:16:52Z" + }, + { + "id": "gloucestershire", + "name": "Gloucestershire", + "asset": "occumed-gloucestershire.pmtiles", + "sizeBytes": 95961141, + "updatedAt": "2026-07-26T23:55:28Z" + }, + { + "id": "greater-manchester", + "name": "Greater Manchester", + "asset": "occumed-greater-manchester.pmtiles", + "sizeBytes": 117655154, + "updatedAt": "2026-07-26T23:49:46Z" + }, + { + "id": "greece", + "name": "Greece", + "asset": "occumed-greece.pmtiles", + "sizeBytes": 950122454, + "updatedAt": "2026-07-27T00:02:28Z" + }, + { + "id": "greenland", + "name": "Greenland", + "asset": "occumed-greenland.pmtiles", + "sizeBytes": 518944402, + "updatedAt": "2026-07-27T00:06:03Z" + }, + { + "id": "groningen", + "name": "Groningen", + "asset": "occumed-groningen.pmtiles", + "sizeBytes": 99007795, + "updatedAt": "2026-07-26T23:57:19Z" + }, + { + "id": "guadeloupe", + "name": "Guadeloupe", + "asset": "occumed-guadeloupe.pmtiles", + "sizeBytes": 45917848, + "updatedAt": "2026-07-26T18:58:10Z" + }, + { + "id": "guangdong", + "name": "Guangdong (with Hong Kong and Macau)", + "asset": "occumed-guangdong.pmtiles", + "sizeBytes": 586170868, + "updatedAt": "2026-07-27T00:19:41Z" + }, + { + "id": "guangxi", + "name": "Guangxi", + "asset": "occumed-guangxi.pmtiles", + "sizeBytes": 290965551, + "updatedAt": "2026-07-27T00:05:22Z" + }, + { + "id": "guatemala", + "name": "Guatemala", + "asset": "occumed-guatemala.pmtiles", + "sizeBytes": 392743267, + "updatedAt": "2026-07-27T00:02:50Z" + }, + { + "id": "guernsey-jersey", + "name": "Guernsey and Jersey", + "asset": "occumed-guernsey-jersey.pmtiles", + "sizeBytes": 10831604, + "updatedAt": "2026-07-27T00:04:25Z" + }, + { + "id": "guinea", + "name": "Guinea", + "asset": "occumed-guinea.pmtiles", + "sizeBytes": 381126978, + "updatedAt": "2026-07-27T00:08:09Z" + }, + { + "id": "guinea-bissau", + "name": "Guinea-Bissau", + "asset": "occumed-guinea-bissau.pmtiles", + "sizeBytes": 48372511, + "updatedAt": "2026-07-27T00:31:37Z" + }, + { + "id": "guizhou", + "name": "Guizhou", + "asset": "occumed-guizhou.pmtiles", + "sizeBytes": 187083973, + "updatedAt": "2026-07-27T00:20:50Z" + }, + { + "id": "guyana", + "name": "Guyana", + "asset": "occumed-guyana.pmtiles", + "sizeBytes": 65547727, + "updatedAt": "2026-07-27T00:06:01Z" + }, + { + "id": "guyane", + "name": "Guyane", + "asset": "occumed-guyane.pmtiles", + "sizeBytes": 62315268, + "updatedAt": "2026-07-27T00:13:22Z" + }, + { + "id": "hainan", + "name": "Hainan", + "asset": "occumed-hainan.pmtiles", + "sizeBytes": 55842049, + "updatedAt": "2026-07-27T00:17:57Z" + }, + { + "id": "haiti-and-domrep", + "name": "Haiti and Dominican Republic", + "asset": "occumed-haiti-and-domrep.pmtiles", + "sizeBytes": 253692924, + "updatedAt": "2026-07-27T00:19:12Z" + }, + { + "id": "hamburg", + "name": "Hamburg", + "asset": "occumed-hamburg.pmtiles", + "sizeBytes": 84320128, + "updatedAt": "2026-07-27T00:36:40Z" + }, + { + "id": "hampshire", + "name": "Hampshire", + "asset": "occumed-hampshire.pmtiles", + "sizeBytes": 139572076, + "updatedAt": "2026-07-27T00:23:59Z" + }, + { + "id": "haute-normandie", + "name": "Haute-Normandie", + "asset": "occumed-haute-normandie.pmtiles", + "sizeBytes": 271336712, + "updatedAt": "2026-07-27T00:20:10Z" + }, + { + "id": "heard-mcdonald", + "name": "Heard Island and McDonald Islands", + "asset": "occumed-heard-mcdonald.pmtiles", + "sizeBytes": 1341155, + "updatedAt": "2026-07-27T00:24:38Z" + }, + { + "id": "hebei", + "name": "Hebei (with Beijing and Tianjin)", + "asset": "occumed-hebei.pmtiles", + "sizeBytes": 588980181, + "updatedAt": "2026-07-27T00:36:57Z" + }, + { + "id": "heilongjiang", + "name": "Heilongjiang", + "asset": "occumed-heilongjiang.pmtiles", + "sizeBytes": 368865074, + "updatedAt": "2026-07-27T00:23:28Z" + }, + { + "id": "henan", + "name": "Henan", + "asset": "occumed-henan.pmtiles", + "sizeBytes": 314414023, + "updatedAt": "2026-07-27T00:44:32Z" + }, + { + "id": "herefordshire", + "name": "Herefordshire", + "asset": "occumed-herefordshire.pmtiles", + "sizeBytes": 39647151, + "updatedAt": "2026-07-27T00:39:53Z" + }, + { + "id": "hertfordshire", + "name": "Hertfordshire", + "asset": "occumed-hertfordshire.pmtiles", + "sizeBytes": 85482407, + "updatedAt": "2026-07-27T00:39:14Z" + }, + { + "id": "hessen", + "name": "Hessen", + "asset": "occumed-hessen.pmtiles", + "sizeBytes": 763196531, + "updatedAt": "2026-07-27T00:36:22Z" + }, + { + "id": "hokkaido", + "name": "Hokkaidō", + "asset": "occumed-hokkaido.pmtiles", + "sizeBytes": 578930393, + "updatedAt": "2026-07-27T00:37:11Z" + }, + { + "id": "honduras", + "name": "Honduras", + "asset": "occumed-honduras.pmtiles", + "sizeBytes": 259154153, + "updatedAt": "2026-07-27T00:29:12Z" + }, + { + "id": "hong-kong", + "name": "Hong Kong", + "asset": "occumed-hong-kong.pmtiles", + "sizeBytes": 56551470, + "updatedAt": "2026-07-27T00:56:52Z" + }, + { + "id": "hubei", + "name": "Hubei", + "asset": "occumed-hubei.pmtiles", + "sizeBytes": 294352051, + "updatedAt": "2026-07-27T00:43:56Z" + }, + { + "id": "hunan", + "name": "Hunan", + "asset": "occumed-hunan.pmtiles", + "sizeBytes": 283687447, + "updatedAt": "2026-07-27T00:30:05Z" + }, + { + "id": "hungary", + "name": "Hungary", + "asset": "occumed-hungary.pmtiles", + "sizeBytes": 1030975949, + "updatedAt": "2026-07-27T00:51:00Z" + }, + { + "id": "iceland", + "name": "Iceland", + "asset": "occumed-iceland.pmtiles", + "sizeBytes": 380787602, + "updatedAt": "2026-07-27T00:41:22Z" + }, + { + "id": "ile-de-clipperton", + "name": "Île de Clipperton", + "asset": "occumed-ile-de-clipperton.pmtiles", + "sizeBytes": 168564, + "updatedAt": "2026-07-27T00:44:36Z" + }, + { + "id": "ile-de-france", + "name": "Ile-de-France", + "asset": "occumed-ile-de-france.pmtiles", + "sizeBytes": 566480882, + "updatedAt": "2026-07-27T01:12:04Z" + }, + { + "id": "inner-mongolia", + "name": "Inner Mongolia", + "asset": "occumed-inner-mongolia.pmtiles", + "sizeBytes": 468178127, + "updatedAt": "2026-07-27T00:49:00Z" + }, + { + "id": "interior-admreg", + "name": "Interior Administrative Region", + "asset": "occumed-interior-admreg.pmtiles", + "sizeBytes": 456511315, + "updatedAt": "2026-07-27T00:47:19Z" + }, + { + "id": "iran", + "name": "Iran", + "asset": "occumed-iran.pmtiles", + "sizeBytes": 1351335952, + "updatedAt": "2026-07-27T00:58:24Z" + }, + { + "id": "iraq", + "name": "Iraq", + "asset": "occumed-iraq.pmtiles", + "sizeBytes": 409272005, + "updatedAt": "2026-07-27T01:00:51Z" + }, + { + "id": "ireland-and-northern-ireland--r1-c1", + "name": "Ireland and Northern Ireland 1.1", + "asset": "occumed-ireland-and-northern-ireland--r1-c1.pmtiles", + "sizeBytes": 19231092, + "updatedAt": "2026-07-27T00:49:12Z" + }, + { + "id": "ireland-and-northern-ireland--r1-c2", + "name": "Ireland and Northern Ireland 1.2", + "asset": "occumed-ireland-and-northern-ireland--r1-c2.pmtiles", + "sizeBytes": 377634183, + "updatedAt": "2026-07-27T01:02:25Z" + }, + { + "id": "ireland-and-northern-ireland--r2-c1", + "name": "Ireland and Northern Ireland 2.1", + "asset": "occumed-ireland-and-northern-ireland--r2-c1.pmtiles", + "sizeBytes": 19565312, + "updatedAt": "2026-07-27T00:58:04Z" + }, + { + "id": "ireland-and-northern-ireland--r2-c2", + "name": "Ireland and Northern Ireland 2.2", + "asset": "occumed-ireland-and-northern-ireland--r2-c2.pmtiles", + "sizeBytes": 686760910, + "updatedAt": "2026-07-27T00:55:33Z" + }, + { + "id": "island-admreg", + "name": "Island Administrative Region", + "asset": "occumed-island-admreg.pmtiles", + "sizeBytes": 304551180, + "updatedAt": "2026-07-27T01:09:56Z" + }, + { + "id": "islas-baleares", + "name": "Islas Baleares", + "asset": "occumed-islas-baleares.pmtiles", + "sizeBytes": 98788180, + "updatedAt": "2026-07-27T00:55:51Z" + }, + { + "id": "isle-of-man", + "name": "Isle of Man", + "asset": "occumed-isle-of-man.pmtiles", + "sizeBytes": 15291832, + "updatedAt": "2026-07-27T00:50:04Z" + }, + { + "id": "isle-of-wight", + "name": "Isle of Wight", + "asset": "occumed-isle-of-wight.pmtiles", + "sizeBytes": 17420659, + "updatedAt": "2026-07-27T01:18:18Z" + }, + { + "id": "isole", + "name": "Isole", + "asset": "occumed-isole.pmtiles", + "sizeBytes": 564977947, + "updatedAt": "2026-07-27T01:01:06Z" + }, + { + "id": "israel-and-palestine", + "name": "Israel and Palestine", + "asset": "occumed-israel-and-palestine.pmtiles", + "sizeBytes": 290698810, + "updatedAt": "2026-07-27T00:58:01Z" + }, + { + "id": "ivory-coast", + "name": "Ivory Coast", + "asset": "occumed-ivory-coast.pmtiles", + "sizeBytes": 394557871, + "updatedAt": "2026-07-26T20:50:58Z" + }, + { + "id": "jamaica", + "name": "Jamaica", + "asset": "occumed-jamaica.pmtiles", + "sizeBytes": 102204315, + "updatedAt": "2026-07-27T00:59:11Z" + }, + { + "id": "java--r1-c1", + "name": "Java 1.1", + "asset": "occumed-java--r1-c1.pmtiles", + "sizeBytes": 300265539, + "updatedAt": "2026-07-26T22:32:34Z" + }, + { + "id": "java--r1-c2", + "name": "Java 1.2", + "asset": "occumed-java--r1-c2.pmtiles", + "sizeBytes": 942922509, + "updatedAt": "2026-07-26T22:22:15Z" + }, + { + "id": "java--r1-c3", + "name": "Java 1.3", + "asset": "occumed-java--r1-c3.pmtiles", + "sizeBytes": 327977568, + "updatedAt": "2026-07-26T22:10:47Z" + }, + { + "id": "java--r2-c1", + "name": "Java 2.1", + "asset": "occumed-java--r2-c1.pmtiles", + "sizeBytes": 489881170, + "updatedAt": "2026-07-26T22:38:30Z" + }, + { + "id": "java--r2-c2", + "name": "Java 2.2", + "asset": "occumed-java--r2-c2.pmtiles", + "sizeBytes": 56939927, + "updatedAt": "2026-07-26T22:46:47Z" + }, + { + "id": "java--r2-c3", + "name": "Java 2.3", + "asset": "occumed-java--r2-c3.pmtiles", + "sizeBytes": 6279835, + "updatedAt": "2026-07-26T22:15:35Z" + }, + { + "id": "jiangsu", + "name": "Jiangsu", + "asset": "occumed-jiangsu.pmtiles", + "sizeBytes": 384171447, + "updatedAt": "2026-07-26T18:37:53Z" + }, + { + "id": "jiangxi", + "name": "Jiangxi", + "asset": "occumed-jiangxi.pmtiles", + "sizeBytes": 281685209, + "updatedAt": "2026-07-26T21:05:34Z" + }, + { + "id": "jihocesky", + "name": "Jihočeský kraj", + "asset": "occumed-jihocesky.pmtiles", + "sizeBytes": 221786195, + "updatedAt": "2026-07-26T18:34:30Z" + }, + { + "id": "jihomoravsky", + "name": "Jihomoravský kraj", + "asset": "occumed-jihomoravsky.pmtiles", + "sizeBytes": 191822637, + "updatedAt": "2026-07-27T01:19:17Z" + }, + { + "id": "jilin", + "name": "Jilin", + "asset": "occumed-jilin.pmtiles", + "sizeBytes": 225175905, + "updatedAt": "2026-07-26T21:06:35Z" + }, + { + "id": "jordan", + "name": "Jordan", + "asset": "occumed-jordan.pmtiles", + "sizeBytes": 98381065, + "updatedAt": "2026-07-26T20:35:05Z" + }, + { + "id": "kalimantan", + "name": "Kalimantan", + "asset": "occumed-kalimantan.pmtiles", + "sizeBytes": 517802051, + "updatedAt": "2026-07-27T01:13:20Z" + }, + { + "id": "kaliningrad", + "name": "Kaliningrad", + "asset": "occumed-kaliningrad.pmtiles", + "sizeBytes": 105611539, + "updatedAt": "2026-07-26T21:05:13Z" + }, + { + "id": "kansai", + "name": "Kansai region (a.k.a. Kinki region)", + "asset": "occumed-kansai.pmtiles", + "sizeBytes": 779479666, + "updatedAt": "2026-07-26T20:47:15Z" + }, + { + "id": "kanto--r1-c1", + "name": "Kantō region 1.1", + "asset": "occumed-kanto--r1-c1.pmtiles", + "sizeBytes": 261656, + "updatedAt": "2026-07-26T22:41:56Z" + }, + { + "id": "kanto--r1-c2", + "name": "Kantō region 1.2", + "asset": "occumed-kanto--r1-c2.pmtiles", + "sizeBytes": 1967497, + "updatedAt": "2026-07-26T22:52:55Z" + }, + { + "id": "kanto--r1-c3", + "name": "Kantō region 1.3", + "asset": "occumed-kanto--r1-c3.pmtiles", + "sizeBytes": 16732, + "updatedAt": "2026-07-26T22:08:31Z" + }, + { + "id": "kanto--r2-c1", + "name": "Kantō region 2.1", + "asset": "occumed-kanto--r2-c1.pmtiles", + "sizeBytes": 1037513008, + "updatedAt": "2026-07-26T22:37:27Z" + }, + { + "id": "kanto--r2-c2", + "name": "Kantō region 2.2", + "asset": "occumed-kanto--r2-c2.pmtiles", + "sizeBytes": 16732, + "updatedAt": "2026-07-26T22:47:06Z" + }, + { + "id": "kanto--r2-c3", + "name": "Kantō region 2.3", + "asset": "occumed-kanto--r2-c3.pmtiles", + "sizeBytes": 16732, + "updatedAt": "2026-07-26T22:25:28Z" + }, + { + "id": "karlovarsky", + "name": "Karlovarský kraj", + "asset": "occumed-karlovarsky.pmtiles", + "sizeBytes": 69056031, + "updatedAt": "2026-07-26T21:08:00Z" + }, + { + "id": "karlsruhe-regbez", + "name": "Regierungsbezirk Karlsruhe", + "asset": "occumed-karlsruhe-regbez.pmtiles", + "sizeBytes": 310087853, + "updatedAt": "2026-07-26T20:38:51Z" + }, + { + "id": "kazakhstan", + "name": "Kazakhstan", + "asset": "occumed-kazakhstan.pmtiles", + "sizeBytes": 1251949335, + "updatedAt": "2026-07-26T20:48:31Z" + }, + { + "id": "kent", + "name": "Kent", + "asset": "occumed-kent.pmtiles", + "sizeBytes": 124392093, + "updatedAt": "2026-07-26T21:10:32Z" + }, + { + "id": "kenya", + "name": "Kenya", + "asset": "occumed-kenya.pmtiles", + "sizeBytes": 925764301, + "updatedAt": "2026-07-26T20:48:15Z" + }, + { + "id": "kiribati", + "name": "Kiribati", + "asset": "occumed-kiribati.pmtiles", + "sizeBytes": 11686103, + "updatedAt": "2026-07-26T21:09:44Z" + }, + { + "id": "kitikmeot--r1-c1", + "name": "Kitikmeot Region 1.1", + "asset": "occumed-kitikmeot--r1-c1.pmtiles", + "sizeBytes": 264006853, + "updatedAt": "2026-07-26T22:33:44Z" + }, + { + "id": "kitikmeot--r1-c2", + "name": "Kitikmeot Region 1.2", + "asset": "occumed-kitikmeot--r1-c2.pmtiles", + "sizeBytes": 478328852, + "updatedAt": "2026-07-26T22:16:32Z" + }, + { + "id": "kitikmeot--r1-c3", + "name": "Kitikmeot Region 1.3", + "asset": "occumed-kitikmeot--r1-c3.pmtiles", + "sizeBytes": 334220933, + "updatedAt": "2026-07-26T22:30:32Z" + }, + { + "id": "kitikmeot--r2-c1", + "name": "Kitikmeot Region 2.1", + "asset": "occumed-kitikmeot--r2-c1.pmtiles", + "sizeBytes": 108011358, + "updatedAt": "2026-07-26T22:34:10Z" + }, + { + "id": "kitikmeot--r2-c2", + "name": "Kitikmeot Region 2.2", + "asset": "occumed-kitikmeot--r2-c2.pmtiles", + "sizeBytes": 558692200, + "updatedAt": "2026-07-26T22:52:24Z" + }, + { + "id": "kitikmeot--r2-c3", + "name": "Kitikmeot Region 2.3", + "asset": "occumed-kitikmeot--r2-c3.pmtiles", + "sizeBytes": 249315399, + "updatedAt": "2026-07-26T22:30:07Z" + }, + { + "id": "kivalliq--r1-c1", + "name": "Kivalliq Region 1.1", + "asset": "occumed-kivalliq--r1-c1.pmtiles", + "sizeBytes": 260318539, + "updatedAt": "2026-07-26T22:38:23Z" + }, + { + "id": "kivalliq--r1-c2", + "name": "Kivalliq Region 1.2", + "asset": "occumed-kivalliq--r1-c2.pmtiles", + "sizeBytes": 165400943, + "updatedAt": "2026-07-26T22:46:09Z" + }, + { + "id": "kivalliq--r1-c3", + "name": "Kivalliq Region 1.3", + "asset": "occumed-kivalliq--r1-c3.pmtiles", + "sizeBytes": 16732, + "updatedAt": "2026-07-26T22:22:08Z" + }, + { + "id": "kivalliq--r2-c1", + "name": "Kivalliq Region 2.1", + "asset": "occumed-kivalliq--r2-c1.pmtiles", + "sizeBytes": 628476627, + "updatedAt": "2026-07-26T22:39:09Z" + }, + { + "id": "kivalliq--r2-c2", + "name": "Kivalliq Region 2.2", + "asset": "occumed-kivalliq--r2-c2.pmtiles", + "sizeBytes": 665168093, + "updatedAt": "2026-07-26T22:46:00Z" + }, + { + "id": "kivalliq--r2-c3", + "name": "Kivalliq Region 2.3", + "asset": "occumed-kivalliq--r2-c3.pmtiles", + "sizeBytes": 291947354, + "updatedAt": "2026-07-26T22:20:40Z" + }, + { + "id": "koeln-regbez", + "name": "Regierungsbezirk Köln", + "asset": "occumed-koeln-regbez.pmtiles", + "sizeBytes": 437073822, + "updatedAt": "2026-07-26T20:51:16Z" + }, + { + "id": "kootenay-admreg", + "name": "Kootenay Administrative Region", + "asset": "occumed-kootenay-admreg.pmtiles", + "sizeBytes": 208422383, + "updatedAt": "2026-07-26T21:15:29Z" + }, + { + "id": "kosovo", + "name": "Kosovo", + "asset": "occumed-kosovo.pmtiles", + "sizeBytes": 105933459, + "updatedAt": "2026-07-26T20:46:47Z" + }, + { + "id": "kralovehradecky", + "name": "Královéhradecký kraj", + "asset": "occumed-kralovehradecky.pmtiles", + "sizeBytes": 131369247, + "updatedAt": "2026-07-26T21:16:55Z" + }, + { + "id": "kujawsko-pomorskie", + "name": "Województwo kujawsko-pomorskie
(Kuyavian-Pomeranian Voivodeship)", + "asset": "occumed-kujawsko-pomorskie.pmtiles", + "sizeBytes": 321871495, + "updatedAt": "2026-07-26T21:17:07Z" + }, + { + "id": "kyrgyzstan", + "name": "Kyrgyzstan", + "asset": "occumed-kyrgyzstan.pmtiles", + "sizeBytes": 250477334, + "updatedAt": "2026-07-26T21:03:05Z" + }, + { + "id": "kyushu", + "name": "Kyūshū", + "asset": "occumed-kyushu.pmtiles", + "sizeBytes": 726993967, + "updatedAt": "2026-07-26T21:08:10Z" + }, + { + "id": "la-rioja", + "name": "La Rioja", + "asset": "occumed-la-rioja.pmtiles", + "sizeBytes": 41512047, + "updatedAt": "2026-07-26T21:14:18Z" + }, + { + "id": "lancashire", + "name": "Lancashire", + "asset": "occumed-lancashire.pmtiles", + "sizeBytes": 101461698, + "updatedAt": "2026-07-26T21:08:19Z" + }, + { + "id": "languedoc-roussillon", + "name": "Languedoc-Roussillon", + "asset": "occumed-languedoc-roussillon.pmtiles", + "sizeBytes": 575621588, + "updatedAt": "2026-07-26T21:21:55Z" + }, + { + "id": "laos", + "name": "Laos", + "asset": "occumed-laos.pmtiles", + "sizeBytes": 246241653, + "updatedAt": "2026-07-26T21:18:25Z" + }, + { + "id": "latvia", + "name": "Latvia", + "asset": "occumed-latvia.pmtiles", + "sizeBytes": 510274556, + "updatedAt": "2026-07-26T21:07:57Z" + }, + { + "id": "lebanon", + "name": "Lebanon", + "asset": "occumed-lebanon.pmtiles", + "sizeBytes": 130111355, + "updatedAt": "2026-07-26T21:10:13Z" + }, + { + "id": "leicestershire", + "name": "Leicestershire", + "asset": "occumed-leicestershire.pmtiles", + "sizeBytes": 51494998, + "updatedAt": "2026-07-26T21:20:14Z" + }, + { + "id": "lesotho", + "name": "Lesotho", + "asset": "occumed-lesotho.pmtiles", + "sizeBytes": 283839296, + "updatedAt": "2026-07-26T21:09:08Z" + }, + { + "id": "liaoning", + "name": "Liaoning", + "asset": "occumed-liaoning.pmtiles", + "sizeBytes": 211807459, + "updatedAt": "2026-07-26T21:22:52Z" + }, + { + "id": "liberecky", + "name": "Liberecký kraj", + "asset": "occumed-liberecky.pmtiles", + "sizeBytes": 93932620, + "updatedAt": "2026-07-26T21:26:55Z" + }, + { + "id": "liberia", + "name": "Liberia", + "asset": "occumed-liberia.pmtiles", + "sizeBytes": 117757143, + "updatedAt": "2026-07-26T21:12:08Z" + }, + { + "id": "libya", + "name": "Libya", + "asset": "occumed-libya.pmtiles", + "sizeBytes": 318867279, + "updatedAt": "2026-07-26T21:10:12Z" + }, + { + "id": "liechtenstein", + "name": "Liechtenstein", + "asset": "occumed-liechtenstein.pmtiles", + "sizeBytes": 6924347, + "updatedAt": "2026-07-26T21:23:25Z" + }, + { + "id": "limburg", + "name": "Limburg", + "asset": "occumed-limburg.pmtiles", + "sizeBytes": 166448038, + "updatedAt": "2026-07-26T21:09:32Z" + }, + { + "id": "limousin", + "name": "Limousin", + "asset": "occumed-limousin.pmtiles", + "sizeBytes": 278988122, + "updatedAt": "2026-07-26T21:28:28Z" + }, + { + "id": "lincolnshire", + "name": "Lincolnshire", + "asset": "occumed-lincolnshire.pmtiles", + "sizeBytes": 113881215, + "updatedAt": "2026-07-26T21:29:31Z" + }, + { + "id": "lithuania", + "name": "Lithuania", + "asset": "occumed-lithuania.pmtiles", + "sizeBytes": 798611016, + "updatedAt": "2026-07-26T21:16:04Z" + }, + { + "id": "lodzkie", + "name": "Województwo łódzkie
(Łódź Voivodeship)", + "asset": "occumed-lodzkie.pmtiles", + "sizeBytes": 375041087, + "updatedAt": "2026-07-26T21:19:00Z" + }, + { + "id": "lorraine", + "name": "Lorraine", + "asset": "occumed-lorraine.pmtiles", + "sizeBytes": 429276298, + "updatedAt": "2026-07-26T21:26:05Z" + }, + { + "id": "lubelskie", + "name": "Województwo lubelskie
(Lublin Voivodeship)", + "asset": "occumed-lubelskie.pmtiles", + "sizeBytes": 400086849, + "updatedAt": "2026-07-26T21:19:08Z" + }, + { + "id": "lubuskie", + "name": "Województwo lubuskie
(Lubusz Voivodeship)", + "asset": "occumed-lubuskie.pmtiles", + "sizeBytes": 179158639, + "updatedAt": "2026-07-26T21:33:39Z" + }, + { + "id": "luxembourg", + "name": "Luxembourg", + "asset": "occumed-luxembourg.pmtiles", + "sizeBytes": 102268306, + "updatedAt": "2026-07-26T21:29:28Z" + }, + { + "id": "macau", + "name": "Macau", + "asset": "occumed-macau.pmtiles", + "sizeBytes": 4607275, + "updatedAt": "2026-07-26T21:15:55Z" + }, + { + "id": "macedonia", + "name": "Macedonia", + "asset": "occumed-macedonia.pmtiles", + "sizeBytes": 104375519, + "updatedAt": "2026-07-26T21:20:26Z" + }, + { + "id": "madagascar", + "name": "Madagascar", + "asset": "occumed-madagascar.pmtiles", + "sizeBytes": 1184071138, + "updatedAt": "2026-07-26T21:35:15Z" + }, + { + "id": "madrid", + "name": "Madrid", + "asset": "occumed-madrid.pmtiles", + "sizeBytes": 168326177, + "updatedAt": "2026-07-26T21:19:21Z" + }, + { + "id": "malawi", + "name": "Malawi", + "asset": "occumed-malawi.pmtiles", + "sizeBytes": 381751036, + "updatedAt": "2026-07-26T21:33:56Z" + }, + { + "id": "malaysia-singapore-brunei", + "name": "Malaysia, Singapore, and Brunei", + "asset": "occumed-malaysia-singapore-brunei.pmtiles", + "sizeBytes": 734072913, + "updatedAt": "2026-07-26T21:44:45Z" + }, + { + "id": "maldives", + "name": "Maldives", + "asset": "occumed-maldives.pmtiles", + "sizeBytes": 10181235, + "updatedAt": "2026-07-26T21:21:17Z" + }, + { + "id": "mali", + "name": "Mali", + "asset": "occumed-mali.pmtiles", + "sizeBytes": 694891516, + "updatedAt": "2026-07-26T21:23:00Z" + }, + { + "id": "malopolskie", + "name": "Województwo małopolskie
(Lesser Poland Voivodeship)", + "asset": "occumed-malopolskie.pmtiles", + "sizeBytes": 462664688, + "updatedAt": "2026-07-26T21:36:49Z" + }, + { + "id": "malta", + "name": "Malta", + "asset": "occumed-malta.pmtiles", + "sizeBytes": 17190818, + "updatedAt": "2026-07-26T21:18:51Z" + }, + { + "id": "maluku", + "name": "Maluku", + "asset": "occumed-maluku.pmtiles", + "sizeBytes": 90581034, + "updatedAt": "2026-07-26T21:43:12Z" + }, + { + "id": "manitoba", + "name": "Manitoba", + "asset": "occumed-manitoba.pmtiles", + "sizeBytes": 930534158, + "updatedAt": "2026-07-26T21:48:16Z" + }, + { + "id": "marshall-islands", + "name": "Marshall Islands", + "asset": "occumed-marshall-islands.pmtiles", + "sizeBytes": 6795353, + "updatedAt": "2026-07-26T21:26:30Z" + }, + { + "id": "martinique", + "name": "Martinique", + "asset": "occumed-martinique.pmtiles", + "sizeBytes": 35367757, + "updatedAt": "2026-07-26T21:28:53Z" + }, + { + "id": "mauritania", + "name": "Mauritania", + "asset": "occumed-mauritania.pmtiles", + "sizeBytes": 138229665, + "updatedAt": "2026-07-26T21:39:12Z" + }, + { + "id": "mauritius", + "name": "Mauritius", + "asset": "occumed-mauritius.pmtiles", + "sizeBytes": 28061821, + "updatedAt": "2026-07-26T21:29:35Z" + }, + { + "id": "mayotte", + "name": "Mayotte", + "asset": "occumed-mayotte.pmtiles", + "sizeBytes": 15608467, + "updatedAt": "2026-07-26T21:47:51Z" + }, + { + "id": "mazowieckie", + "name": "Województwo mazowieckie
(Mazovian Voivodeship)", + "asset": "occumed-mazowieckie.pmtiles", + "sizeBytes": 802981589, + "updatedAt": "2026-07-26T21:48:43Z" + }, + { + "id": "mecklenburg-vorpommern", + "name": "Mecklenburg-Vorpommern", + "asset": "occumed-mecklenburg-vorpommern.pmtiles", + "sizeBytes": 387520799, + "updatedAt": "2026-07-26T21:28:34Z" + }, + { + "id": "melilla", + "name": "Melilla", + "asset": "occumed-melilla.pmtiles", + "sizeBytes": 1473060, + "updatedAt": "2026-07-26T21:30:20Z" + }, + { + "id": "merseyside", + "name": "Merseyside", + "asset": "occumed-merseyside.pmtiles", + "sizeBytes": 58023276, + "updatedAt": "2026-07-26T21:49:23Z" + }, + { + "id": "mexico--r1-c1", + "name": "Mexico 1.1", + "asset": "occumed-mexico--r1-c1.pmtiles", + "sizeBytes": 487817, + "updatedAt": "2026-07-26T22:33:31Z" + }, + { + "id": "mexico--r1-c2", + "name": "Mexico 1.2", + "asset": "occumed-mexico--r1-c2.pmtiles", + "sizeBytes": 270186436, + "updatedAt": "2026-07-26T22:17:51Z" + }, + { + "id": "mexico--r1-c3", + "name": "Mexico 1.3", + "asset": "occumed-mexico--r1-c3.pmtiles", + "sizeBytes": 1096982286, + "updatedAt": "2026-07-26T22:24:49Z" + }, + { + "id": "mexico--r2-c1", + "name": "Mexico 2.1", + "asset": "occumed-mexico--r2-c1.pmtiles", + "sizeBytes": 77628845, + "updatedAt": "2026-07-26T22:35:02Z" + }, + { + "id": "mexico--r2-c2", + "name": "Mexico 2.2", + "asset": "occumed-mexico--r2-c2.pmtiles", + "sizeBytes": 792620845, + "updatedAt": "2026-07-26T22:54:08Z" + }, + { + "id": "mexico--r2-c3", + "name": "Mexico 2.3", + "asset": "occumed-mexico--r2-c3.pmtiles", + "sizeBytes": 303707546, + "updatedAt": "2026-07-26T22:22:29Z" + }, + { + "id": "micronesia", + "name": "Micronesia", + "asset": "occumed-micronesia.pmtiles", + "sizeBytes": 9245571, + "updatedAt": "2026-07-26T21:48:20Z" + }, + { + "id": "midi-pyrenees", + "name": "Midi-Pyrenees", + "asset": "occumed-midi-pyrenees.pmtiles", + "sizeBytes": 875187851, + "updatedAt": "2026-07-26T22:00:40Z" + }, + { + "id": "mittelfranken", + "name": "Mittelfranken", + "asset": "occumed-mittelfranken.pmtiles", + "sizeBytes": 216683708, + "updatedAt": "2026-07-26T21:32:33Z" + }, + { + "id": "moldova", + "name": "Moldova", + "asset": "occumed-moldova.pmtiles", + "sizeBytes": 296608474, + "updatedAt": "2026-07-26T21:34:13Z" + }, + { + "id": "monaco", + "name": "Monaco", + "asset": "occumed-monaco.pmtiles", + "sizeBytes": 926330, + "updatedAt": "2026-07-26T21:50:00Z" + }, + { + "id": "mongolia", + "name": "Mongolia", + "asset": "occumed-mongolia.pmtiles", + "sizeBytes": 431678575, + "updatedAt": "2026-07-26T21:30:41Z" + }, + { + "id": "montenegro", + "name": "Montenegro", + "asset": "occumed-montenegro.pmtiles", + "sizeBytes": 105749928, + "updatedAt": "2026-07-26T21:56:42Z" + }, + { + "id": "moravskoslezky", + "name": "Moravskoslezský kraj", + "asset": "occumed-moravskoslezky.pmtiles", + "sizeBytes": 160708737, + "updatedAt": "2026-07-26T22:03:37Z" + }, + { + "id": "morocco", + "name": "Morocco", + "asset": "occumed-morocco.pmtiles", + "sizeBytes": 810224394, + "updatedAt": "2026-07-26T21:42:40Z" + }, + { + "id": "mozambique", + "name": "Mozambique", + "asset": "occumed-mozambique.pmtiles", + "sizeBytes": 716464411, + "updatedAt": "2026-07-26T21:46:00Z" + }, + { + "id": "muenster-regbez", + "name": "Regierungsbezirk Münster", + "asset": "occumed-muenster-regbez.pmtiles", + "sizeBytes": 325261521, + "updatedAt": "2026-07-26T21:53:06Z" + }, + { + "id": "murcia", + "name": "Murcia", + "asset": "occumed-murcia.pmtiles", + "sizeBytes": 104248441, + "updatedAt": "2026-07-26T21:44:53Z" + }, + { + "id": "myanmar", + "name": "Myanmar (a.k.a. Burma)", + "asset": "occumed-myanmar.pmtiles", + "sizeBytes": 1008768919, + "updatedAt": "2026-07-26T22:03:48Z" + }, + { + "id": "namibia", + "name": "Namibia", + "asset": "occumed-namibia.pmtiles", + "sizeBytes": 308169670, + "updatedAt": "2026-07-26T22:05:33Z" + }, + { + "id": "nauru", + "name": "Nauru", + "asset": "occumed-nauru.pmtiles", + "sizeBytes": 617080, + "updatedAt": "2026-07-26T21:43:10Z" + }, + { + "id": "navarra", + "name": "Navarra", + "asset": "occumed-navarra.pmtiles", + "sizeBytes": 122297353, + "updatedAt": "2026-07-26T21:45:23Z" + }, + { + "id": "nepal--r1-c1", + "name": "Nepal 1.1", + "asset": "occumed-nepal--r1-c1.pmtiles", + "sizeBytes": 77967162, + "updatedAt": "2026-07-26T22:41:13Z" + }, + { + "id": "nepal--r1-c2", + "name": "Nepal 1.2", + "asset": "occumed-nepal--r1-c2.pmtiles", + "sizeBytes": 393148706, + "updatedAt": "2026-07-26T22:53:52Z" + }, + { + "id": "nepal--r1-c3", + "name": "Nepal 1.3", + "asset": "occumed-nepal--r1-c3.pmtiles", + "sizeBytes": 420715864, + "updatedAt": "2026-07-26T22:13:55Z" + }, + { + "id": "nepal--r2-c1", + "name": "Nepal 2.1", + "asset": "occumed-nepal--r2-c1.pmtiles", + "sizeBytes": 215348556, + "updatedAt": "2026-07-26T22:37:17Z" + }, + { + "id": "nepal--r2-c2", + "name": "Nepal 2.2", + "asset": "occumed-nepal--r2-c2.pmtiles", + "sizeBytes": 32792643, + "updatedAt": "2026-07-26T22:51:44Z" + }, + { + "id": "nepal--r2-c3", + "name": "Nepal 2.3", + "asset": "occumed-nepal--r2-c3.pmtiles", + "sizeBytes": 174663, + "updatedAt": "2026-07-26T22:27:52Z" + }, + { + "id": "new-brunswick", + "name": "New Brunswick", + "asset": "occumed-new-brunswick.pmtiles", + "sizeBytes": 269490704, + "updatedAt": "2026-07-26T21:46:03Z" + }, + { + "id": "new-caledonia", + "name": "New Caledonia", + "asset": "occumed-new-caledonia.pmtiles", + "sizeBytes": 45828531, + "updatedAt": "2026-07-26T22:03:49Z" + }, + { + "id": "new-south-wales", + "name": "New South Wales (with ACT and JBT)", + "asset": "occumed-new-south-wales.pmtiles", + "sizeBytes": 1060152182, + "updatedAt": "2026-07-26T22:25:02Z" + }, + { + "id": "new-zealand--r1-c1", + "name": "New Zealand 1.1", + "asset": "occumed-new-zealand--r1-c1.pmtiles", + "sizeBytes": 400104175, + "updatedAt": "2026-07-26T22:33:22Z" + }, + { + "id": "new-zealand--r1-c2-s1", + "name": "New Zealand 1.2-s1", + "asset": "occumed-new-zealand--r1-c2-s1.pmtiles", + "sizeBytes": 718406, + "updatedAt": "2026-07-26T22:48:08Z" + }, + { + "id": "new-zealand--r1-c2-s2", + "name": "New Zealand 1.2-s2", + "asset": "occumed-new-zealand--r1-c2-s2.pmtiles", + "sizeBytes": 3837590, + "updatedAt": "2026-07-26T22:27:34Z" + }, + { + "id": "new-zealand--r2-c1", + "name": "New Zealand 2.1", + "asset": "occumed-new-zealand--r2-c1.pmtiles", + "sizeBytes": 184627177, + "updatedAt": "2026-07-26T22:33:31Z" + }, + { + "id": "new-zealand--r2-c2-s1", + "name": "New Zealand 2.2-s1", + "asset": "occumed-new-zealand--r2-c2-s1.pmtiles", + "sizeBytes": 595150201, + "updatedAt": "2026-07-26T22:53:09Z" + }, + { + "id": "new-zealand--r2-c2-s2", + "name": "New Zealand 2.2-s2", + "asset": "occumed-new-zealand--r2-c2-s2.pmtiles", + "sizeBytes": 946882, + "updatedAt": "2026-07-26T22:15:29Z" + }, + { + "id": "newfoundland-and-labrador", + "name": "Newfoundland and Labrador", + "asset": "occumed-newfoundland-and-labrador.pmtiles", + "sizeBytes": 1123080111, + "updatedAt": "2026-07-26T21:51:53Z" + }, + { + "id": "nicaragua", + "name": "Nicaragua", + "asset": "occumed-nicaragua.pmtiles", + "sizeBytes": 255715698, + "updatedAt": "2026-07-26T22:07:59Z" + }, + { + "id": "niederbayern", + "name": "Niederbayern", + "asset": "occumed-niederbayern.pmtiles", + "sizeBytes": 261315005, + "updatedAt": "2026-07-26T21:51:04Z" + }, + { + "id": "niedersachsen--r1-c1", + "name": "Niedersachsen (mit Bremen) 1.1", + "asset": "occumed-niedersachsen--r1-c1.pmtiles", + "sizeBytes": 126162057, + "updatedAt": "2026-07-26T22:56:41Z" + }, + { + "id": "niedersachsen--r1-c2", + "name": "Niedersachsen (mit Bremen) 1.2", + "asset": "occumed-niedersachsen--r1-c2.pmtiles", + "sizeBytes": 283747133, + "updatedAt": "2026-07-26T22:47:02Z" + }, + { + "id": "niedersachsen--r1-c3", + "name": "Niedersachsen (mit Bremen) 1.3", + "asset": "occumed-niedersachsen--r1-c3.pmtiles", + "sizeBytes": 277998678, + "updatedAt": "2026-07-26T22:30:08Z" + }, + { + "id": "niedersachsen--r2-c1", + "name": "Niedersachsen (mit Bremen) 2.1", + "asset": "occumed-niedersachsen--r2-c1.pmtiles", + "sizeBytes": 177979398, + "updatedAt": "2026-07-26T22:39:30Z" + }, + { + "id": "niedersachsen--r2-c2", + "name": "Niedersachsen (mit Bremen) 2.2", + "asset": "occumed-niedersachsen--r2-c2.pmtiles", + "sizeBytes": 347725582, + "updatedAt": "2026-07-26T22:55:06Z" + }, + { + "id": "niedersachsen--r2-c3", + "name": "Niedersachsen (mit Bremen) 2.3", + "asset": "occumed-niedersachsen--r2-c3.pmtiles", + "sizeBytes": 120714497, + "updatedAt": "2026-07-26T22:25:41Z" + }, + { + "id": "niger", + "name": "Niger", + "asset": "occumed-niger.pmtiles", + "sizeBytes": 337858019, + "updatedAt": "2026-07-26T23:28:27Z" + }, + { + "id": "nigeria--r1-c1", + "name": "Nigeria 1.1", + "asset": "occumed-nigeria--r1-c1.pmtiles", + "sizeBytes": 590917628, + "updatedAt": "2026-07-26T22:38:18Z" + }, + { + "id": "nigeria--r1-c2", + "name": "Nigeria 1.2", + "asset": "occumed-nigeria--r1-c2.pmtiles", + "sizeBytes": 337086709, + "updatedAt": "2026-07-26T22:52:30Z" + }, + { + "id": "nigeria--r1-c3", + "name": "Nigeria 1.3", + "asset": "occumed-nigeria--r1-c3.pmtiles", + "sizeBytes": 17939570, + "updatedAt": "2026-07-26T22:53:53Z" + }, + { + "id": "nigeria--r2-c1", + "name": "Nigeria 2.1", + "asset": "occumed-nigeria--r2-c1.pmtiles", + "sizeBytes": 346016473, + "updatedAt": "2026-07-26T22:39:41Z" + }, + { + "id": "nigeria--r2-c2", + "name": "Nigeria 2.2", + "asset": "occumed-nigeria--r2-c2.pmtiles", + "sizeBytes": 462597847, + "updatedAt": "2026-07-26T22:56:37Z" + }, + { + "id": "nigeria--r2-c3", + "name": "Nigeria 2.3", + "asset": "occumed-nigeria--r2-c3.pmtiles", + "sizeBytes": 264443451, + "updatedAt": "2026-07-26T22:12:50Z" + }, + { + "id": "ningxia", + "name": "Ningxia", + "asset": "occumed-ningxia.pmtiles", + "sizeBytes": 60084762, + "updatedAt": "2026-07-26T21:56:09Z" + }, + { + "id": "niue", + "name": "Niue", + "asset": "occumed-niue.pmtiles", + "sizeBytes": 2284129, + "updatedAt": "2026-07-26T22:12:40Z" + }, + { + "id": "noord-brabant", + "name": "Noord-Brabant", + "asset": "occumed-noord-brabant.pmtiles", + "sizeBytes": 336002229, + "updatedAt": "2026-07-26T21:58:18Z" + }, + { + "id": "noord-holland", + "name": "Noord-Holland", + "asset": "occumed-noord-holland.pmtiles", + "sizeBytes": 280700662, + "updatedAt": "2026-07-26T23:28:57Z" + }, + { + "id": "norcal--r1-c1", + "name": "Northern California 1.1", + "asset": "occumed-norcal--r1-c1.pmtiles", + "sizeBytes": 91984894, + "updatedAt": "2026-07-26T22:38:25Z" + }, + { + "id": "norcal--r1-c2", + "name": "Northern California 1.2", + "asset": "occumed-norcal--r1-c2.pmtiles", + "sizeBytes": 909556214, + "updatedAt": "2026-07-26T22:51:11Z" + }, + { + "id": "norcal--r1-c3", + "name": "Northern California 1.3", + "asset": "occumed-norcal--r1-c3.pmtiles", + "sizeBytes": 88600395, + "updatedAt": "2026-07-26T22:27:41Z" + }, + { + "id": "norcal--r2-c1", + "name": "Northern California 2.1", + "asset": "occumed-norcal--r2-c1.pmtiles", + "sizeBytes": 179275933, + "updatedAt": "2026-07-26T22:56:54Z" + }, + { + "id": "norcal--r2-c2", + "name": "Northern California 2.2", + "asset": "occumed-norcal--r2-c2.pmtiles", + "sizeBytes": 279414573, + "updatedAt": "2026-07-26T22:45:51Z" + }, + { + "id": "norcal--r2-c3", + "name": "Northern California 2.3", + "asset": "occumed-norcal--r2-c3.pmtiles", + "sizeBytes": 16732, + "updatedAt": "2026-07-26T22:30:38Z" + }, + { + "id": "nord-est--r1-c1", + "name": "Nord-Est 1.1", + "asset": "occumed-nord-est--r1-c1.pmtiles", + "sizeBytes": 365342665, + "updatedAt": "2026-07-26T22:36:59Z" + }, + { + "id": "nord-est--r1-c2", + "name": "Nord-Est 1.2", + "asset": "occumed-nord-est--r1-c2.pmtiles", + "sizeBytes": 259275103, + "updatedAt": "2026-07-26T22:47:35Z" + }, + { + "id": "nord-est--r2-c1", + "name": "Nord-Est 2.1", + "asset": "occumed-nord-est--r2-c1.pmtiles", + "sizeBytes": 291775631, + "updatedAt": "2026-07-26T19:34:50Z" + }, + { + "id": "nord-est--r2-c2", + "name": "Nord-Est 2.2", + "asset": "occumed-nord-est--r2-c2.pmtiles", + "sizeBytes": 550530853, + "updatedAt": "2026-07-26T19:07:08Z" + }, + { + "id": "nord-norge--r1-c1", + "name": "Nord-Norge
(Northern Norway) 1.1", + "asset": "occumed-nord-norge--r1-c1.pmtiles", + "sizeBytes": 458668212, + "updatedAt": "2026-07-26T22:31:23Z" + }, + { + "id": "nord-norge--r1-c2", + "name": "Nord-Norge
(Northern Norway) 1.2", + "asset": "occumed-nord-norge--r1-c2.pmtiles", + "sizeBytes": 74310608, + "updatedAt": "2026-07-26T22:34:50Z" + }, + { + "id": "nord-norge--r1-c3", + "name": "Nord-Norge
(Northern Norway) 1.3", + "asset": "occumed-nord-norge--r1-c3.pmtiles", + "sizeBytes": 392183, + "updatedAt": "2026-07-26T22:41:05Z" + }, + { + "id": "nord-norge--r2-c1", + "name": "Nord-Norge
(Northern Norway) 2.1", + "asset": "occumed-nord-norge--r2-c1.pmtiles", + "sizeBytes": 37509044, + "updatedAt": "2026-07-26T22:29:34Z" + }, + { + "id": "nord-norge--r2-c2", + "name": "Nord-Norge
(Northern Norway) 2.2", + "asset": "occumed-nord-norge--r2-c2.pmtiles", + "sizeBytes": 511766239, + "updatedAt": "2026-07-26T22:43:11Z" + }, + { + "id": "nord-norge--r2-c3", + "name": "Nord-Norge
(Northern Norway) 2.3", + "asset": "occumed-nord-norge--r2-c3.pmtiles", + "sizeBytes": 312787292, + "updatedAt": "2026-07-26T22:18:35Z" + }, + { + "id": "nord-ovest--r1-c1", + "name": "Nord-Ovest 1.1", + "asset": "occumed-nord-ovest--r1-c1.pmtiles", + "sizeBytes": 248082636, + "updatedAt": "2026-07-26T22:29:14Z" + }, + { + "id": "nord-ovest--r1-c2", + "name": "Nord-Ovest 1.2", + "asset": "occumed-nord-ovest--r1-c2.pmtiles", + "sizeBytes": 208496274, + "updatedAt": "2026-07-26T22:57:34Z" + }, + { + "id": "nord-ovest--r1-c3", + "name": "Nord-Ovest 1.3", + "asset": "occumed-nord-ovest--r1-c3.pmtiles", + "sizeBytes": 31488605, + "updatedAt": "2026-07-26T22:52:33Z" + }, + { + "id": "nord-ovest--r2-c1", + "name": "Nord-Ovest 2.1", + "asset": "occumed-nord-ovest--r2-c1.pmtiles", + "sizeBytes": 181023595, + "updatedAt": "2026-07-26T22:25:51Z" + }, + { + "id": "nord-ovest--r2-c2", + "name": "Nord-Ovest 2.2", + "asset": "occumed-nord-ovest--r2-c2.pmtiles", + "sizeBytes": 517848740, + "updatedAt": "2026-07-26T22:43:39Z" + }, + { + "id": "nord-ovest--r2-c3", + "name": "Nord-Ovest 2.3", + "asset": "occumed-nord-ovest--r2-c3.pmtiles", + "sizeBytes": 204524828, + "updatedAt": "2026-07-26T22:47:37Z" + }, + { + "id": "nord-pas-de-calais", + "name": "Nord-Pas-de-Calais", + "asset": "occumed-nord-pas-de-calais.pmtiles", + "sizeBytes": 481703554, + "updatedAt": "2026-07-26T21:58:46Z" + }, + { + "id": "nordeste--r1-c1", + "name": "Nordeste 1.1", + "asset": "occumed-nordeste--r1-c1.pmtiles", + "sizeBytes": 606973314, + "updatedAt": "2026-07-26T22:08:37Z" + }, + { + "id": "nordeste--r1-c2", + "name": "Nordeste 1.2", + "asset": "occumed-nordeste--r1-c2.pmtiles", + "sizeBytes": 294871185, + "updatedAt": "2026-07-26T22:34:50Z" + }, + { + "id": "nordeste--r2-c1", + "name": "Nordeste 2.1", + "asset": "occumed-nordeste--r2-c1.pmtiles", + "sizeBytes": 558510190, + "updatedAt": "2026-07-26T22:50:31Z" + }, + { + "id": "nordeste--r2-c2", + "name": "Nordeste 2.2", + "asset": "occumed-nordeste--r2-c2.pmtiles", + "sizeBytes": 339888690, + "updatedAt": "2026-07-26T22:26:25Z" + }, + { + "id": "norfolk", + "name": "Norfolk", + "asset": "occumed-norfolk.pmtiles", + "sizeBytes": 116989658, + "updatedAt": "2026-07-26T23:59:41Z" + }, + { + "id": "norfolk-island", + "name": "Norfolk Island", + "asset": "occumed-norfolk-island.pmtiles", + "sizeBytes": 990997, + "updatedAt": "2026-07-26T22:10:38Z" + }, + { + "id": "norte", + "name": "Norte", + "asset": "occumed-norte.pmtiles", + "sizeBytes": 1046608227, + "updatedAt": "2026-07-26T22:15:27Z" + }, + { + "id": "north-admreg--r1-c1", + "name": "North Administrative Region 1.1", + "asset": "occumed-north-admreg--r1-c1.pmtiles", + "sizeBytes": 356568, + "updatedAt": "2026-07-26T22:54:42Z" + }, + { + "id": "north-admreg--r1-c2", + "name": "North Administrative Region 1.2", + "asset": "occumed-north-admreg--r1-c2.pmtiles", + "sizeBytes": 338056146, + "updatedAt": "2026-07-26T22:43:38Z" + }, + { + "id": "north-admreg--r1-c3", + "name": "North Administrative Region 1.3", + "asset": "occumed-north-admreg--r1-c3.pmtiles", + "sizeBytes": 331543175, + "updatedAt": "2026-07-26T22:26:48Z" + }, + { + "id": "north-admreg--r2-c1", + "name": "North Administrative Region 2.1", + "asset": "occumed-north-admreg--r2-c1.pmtiles", + "sizeBytes": 66909299, + "updatedAt": "2026-07-26T22:34:38Z" + }, + { + "id": "north-admreg--r2-c2", + "name": "North Administrative Region 2.2", + "asset": "occumed-north-admreg--r2-c2.pmtiles", + "sizeBytes": 662946406, + "updatedAt": "2026-07-26T22:47:36Z" + }, + { + "id": "north-admreg--r2-c3", + "name": "North Administrative Region 2.3", + "asset": "occumed-north-admreg--r2-c3.pmtiles", + "sizeBytes": 530154169, + "updatedAt": "2026-07-26T22:25:15Z" + }, + { + "id": "north-caucasus-fed-district", + "name": "North Caucasus Federal District", + "asset": "occumed-north-caucasus-fed-district.pmtiles", + "sizeBytes": 555897837, + "updatedAt": "2026-07-26T22:12:22Z" + }, + { + "id": "north-eastern-zone", + "name": "North-Eastern Zone", + "asset": "occumed-north-eastern-zone.pmtiles", + "sizeBytes": 418077010, + "updatedAt": "2026-07-27T00:01:17Z" + }, + { + "id": "north-korea", + "name": "North Korea", + "asset": "occumed-north-korea.pmtiles", + "sizeBytes": 366524541, + "updatedAt": "2026-07-27T00:03:48Z" + }, + { + "id": "north-yorkshire", + "name": "North Yorkshire", + "asset": "occumed-north-yorkshire.pmtiles", + "sizeBytes": 147365650, + "updatedAt": "2026-07-26T22:22:16Z" + }, + { + "id": "northamptonshire", + "name": "Northamptonshire", + "asset": "occumed-northamptonshire.pmtiles", + "sizeBytes": 53460225, + "updatedAt": "2026-07-26T22:16:21Z" + }, + { + "id": "northern-territory", + "name": "Northern Territory", + "asset": "occumed-northern-territory.pmtiles", + "sizeBytes": 152753027, + "updatedAt": "2026-07-26T23:48:17Z" + }, + { + "id": "northern-zone", + "name": "Northern Zone", + "asset": "occumed-northern-zone.pmtiles", + "sizeBytes": 1001847672, + "updatedAt": "2026-07-26T22:21:24Z" + }, + { + "id": "northumberland", + "name": "Northumberland", + "asset": "occumed-northumberland.pmtiles", + "sizeBytes": 76278439, + "updatedAt": "2026-07-27T00:04:12Z" + }, + { + "id": "northwest-territories--r1-c1", + "name": "Northwest Territories 1.1", + "asset": "occumed-northwest-territories--r1-c1.pmtiles", + "sizeBytes": 876295249, + "updatedAt": "2026-07-26T22:40:52Z" + }, + { + "id": "northwest-territories--r1-c2", + "name": "Northwest Territories 1.2", + "asset": "occumed-northwest-territories--r1-c2.pmtiles", + "sizeBytes": 981382153, + "updatedAt": "2026-07-26T22:54:37Z" + }, + { + "id": "northwest-territories--r2-c1", + "name": "Northwest Territories 2.1", + "asset": "occumed-northwest-territories--r2-c1.pmtiles", + "sizeBytes": 335246443, + "updatedAt": "2026-07-26T22:30:26Z" + }, + { + "id": "northwest-territories--r2-c2", + "name": "Northwest Territories 2.2", + "asset": "occumed-northwest-territories--r2-c2.pmtiles", + "sizeBytes": 415206238, + "updatedAt": "2026-07-26T22:55:19Z" + }, + { + "id": "northwestern-fed-district--r1-c2", + "name": "Northwestern Federal District 1.2", + "asset": "occumed-northwestern-fed-district--r1-c2.pmtiles", + "sizeBytes": 733294869, + "updatedAt": "2026-07-26T22:31:31Z" + }, + { + "id": "northwestern-fed-district--r2-c1", + "name": "Northwestern Federal District 2.1", + "asset": "occumed-northwestern-fed-district--r2-c1.pmtiles", + "sizeBytes": 143324765, + "updatedAt": "2026-07-26T22:56:49Z" + }, + { + "id": "northwestern-fed-district--r2-c2", + "name": "Northwestern Federal District 2.2", + "asset": "occumed-northwestern-fed-district--r2-c2.pmtiles", + "sizeBytes": 89971002, + "updatedAt": "2026-07-26T22:44:19Z" + }, + { + "id": "nottinghamshire", + "name": "Nottinghamshire", + "asset": "occumed-nottinghamshire.pmtiles", + "sizeBytes": 81878521, + "updatedAt": "2026-07-26T23:28:35Z" + }, + { + "id": "nova-scotia", + "name": "Nova Scotia", + "asset": "occumed-nova-scotia.pmtiles", + "sizeBytes": 325779081, + "updatedAt": "2026-07-27T00:12:53Z" + }, + { + "id": "nusa-tenggara", + "name": "Nusa-Tenggara", + "asset": "occumed-nusa-tenggara.pmtiles", + "sizeBytes": 430829202, + "updatedAt": "2026-07-26T22:20:22Z" + }, + { + "id": "oberbayern", + "name": "Oberbayern", + "asset": "occumed-oberbayern.pmtiles", + "sizeBytes": 555143622, + "updatedAt": "2026-07-27T00:12:12Z" + }, + { + "id": "oberfranken", + "name": "Oberfranken", + "asset": "occumed-oberfranken.pmtiles", + "sizeBytes": 221742338, + "updatedAt": "2026-07-27T00:27:03Z" + }, + { + "id": "oberpfalz", + "name": "Oberpfalz", + "asset": "occumed-oberpfalz.pmtiles", + "sizeBytes": 231518529, + "updatedAt": "2026-07-26T23:39:15Z" + }, + { + "id": "okanagan-admreg", + "name": "Okanagan Administrative Region", + "asset": "occumed-okanagan-admreg.pmtiles", + "sizeBytes": 157444888, + "updatedAt": "2026-07-26T23:52:30Z" + }, + { + "id": "olomoucky", + "name": "Olomoucký kraj", + "asset": "occumed-olomoucky.pmtiles", + "sizeBytes": 125330386, + "updatedAt": "2026-07-27T00:18:00Z" + }, + { + "id": "ontario--r1-c1", + "name": "Ontario 1.1", + "asset": "occumed-ontario--r1-c1.pmtiles", + "sizeBytes": 260334283, + "updatedAt": "2026-07-26T22:25:33Z" + }, + { + "id": "ontario--r1-c2", + "name": "Ontario 1.2", + "asset": "occumed-ontario--r1-c2.pmtiles", + "sizeBytes": 1738628070, + "updatedAt": "2026-07-26T22:58:11Z" + }, + { + "id": "ontario--r2-c1", + "name": "Ontario 2.1", + "asset": "occumed-ontario--r2-c1.pmtiles", + "sizeBytes": 806752505, + "updatedAt": "2026-07-26T22:54:56Z" + }, + { + "id": "ontario--r2-c2", + "name": "Ontario 2.2", + "asset": "occumed-ontario--r2-c2.pmtiles", + "sizeBytes": 238712132, + "updatedAt": "2026-07-26T22:30:49Z" + }, + { + "id": "opolskie", + "name": "Województwo opolskie
(Opole Voivodeship)", + "asset": "occumed-opolskie.pmtiles", + "sizeBytes": 155023287, + "updatedAt": "2026-07-27T00:24:33Z" + }, + { + "id": "ostlandet--r1-c1", + "name": "Østlandet
(Eastern Norway) 1.1", + "asset": "occumed-ostlandet--r1-c1.pmtiles", + "sizeBytes": 403029397, + "updatedAt": "2026-07-26T22:50:32Z" + }, + { + "id": "ostlandet--r1-c2", + "name": "Østlandet
(Eastern Norway) 1.2", + "asset": "occumed-ostlandet--r1-c2.pmtiles", + "sizeBytes": 503333930, + "updatedAt": "2026-07-26T22:14:13Z" + }, + { + "id": "ostlandet--r2-c1", + "name": "Østlandet
(Eastern Norway) 2.1", + "asset": "occumed-ostlandet--r2-c1.pmtiles", + "sizeBytes": 214042891, + "updatedAt": "2026-07-26T22:32:17Z" + }, + { + "id": "ostlandet--r2-c2", + "name": "Østlandet
(Eastern Norway) 2.2", + "asset": "occumed-ostlandet--r2-c2.pmtiles", + "sizeBytes": 355013160, + "updatedAt": "2026-07-26T22:51:40Z" + }, + { + "id": "overijssel", + "name": "Overijssel", + "asset": "occumed-overijssel.pmtiles", + "sizeBytes": 189766999, + "updatedAt": "2026-07-26T23:58:51Z" + }, + { + "id": "oxfordshire", + "name": "Oxfordshire", + "asset": "occumed-oxfordshire.pmtiles", + "sizeBytes": 66905922, + "updatedAt": "2026-07-26T23:54:42Z" + }, + { + "id": "pais-vasco", + "name": "País Vasco", + "asset": "occumed-pais-vasco.pmtiles", + "sizeBytes": 168976567, + "updatedAt": "2026-07-26T22:11:09Z" + }, + { + "id": "pakistan", + "name": "Pakistan", + "asset": "occumed-pakistan.pmtiles", + "sizeBytes": 816502502, + "updatedAt": "2026-07-27T00:00:30Z" + }, + { + "id": "palau", + "name": "Palau", + "asset": "occumed-palau.pmtiles", + "sizeBytes": 3807473, + "updatedAt": "2026-07-27T00:25:12Z" + }, + { + "id": "panama", + "name": "Panama", + "asset": "occumed-panama.pmtiles", + "sizeBytes": 134342812, + "updatedAt": "2026-07-27T00:35:55Z" + }, + { + "id": "papua", + "name": "Papua", + "asset": "occumed-papua.pmtiles", + "sizeBytes": 156034030, + "updatedAt": "2026-07-27T00:14:19Z" + }, + { + "id": "papua-new-guinea", + "name": "Papua New Guinea", + "asset": "occumed-papua-new-guinea.pmtiles", + "sizeBytes": 238334734, + "updatedAt": "2026-07-27T00:04:29Z" + }, + { + "id": "paraguay", + "name": "Paraguay", + "asset": "occumed-paraguay.pmtiles", + "sizeBytes": 427540490, + "updatedAt": "2026-07-27T00:33:08Z" + }, + { + "id": "pardubicky", + "name": "Pardubický kraj", + "asset": "occumed-pardubicky.pmtiles", + "sizeBytes": 118514933, + "updatedAt": "2026-07-26T23:59:15Z" + }, + { + "id": "pays-de-la-loire", + "name": "Pays de la Loire", + "asset": "occumed-pays-de-la-loire.pmtiles", + "sizeBytes": 797803989, + "updatedAt": "2026-07-27T00:38:49Z" + }, + { + "id": "peru", + "name": "Peru", + "asset": "occumed-peru.pmtiles", + "sizeBytes": 1067498047, + "updatedAt": "2026-07-27T00:52:35Z" + }, + { + "id": "philippines--r1-c1", + "name": "Philippines 1.1", + "asset": "occumed-philippines--r1-c1.pmtiles", + "sizeBytes": 32993660, + "updatedAt": "2026-07-26T22:30:57Z" + }, + { + "id": "philippines--r1-c2", + "name": "Philippines 1.2", + "asset": "occumed-philippines--r1-c2.pmtiles", + "sizeBytes": 710446737, + "updatedAt": "2026-07-26T22:58:02Z" + }, + { + "id": "philippines--r2-c1", + "name": "Philippines 2.1", + "asset": "occumed-philippines--r2-c1.pmtiles", + "sizeBytes": 3965100, + "updatedAt": "2026-07-26T22:43:59Z" + }, + { + "id": "philippines--r2-c2", + "name": "Philippines 2.2", + "asset": "occumed-philippines--r2-c2.pmtiles", + "sizeBytes": 800402318, + "updatedAt": "2026-07-26T22:27:57Z" + }, + { + "id": "picardie", + "name": "Picardie", + "asset": "occumed-picardie.pmtiles", + "sizeBytes": 365941448, + "updatedAt": "2026-07-27T00:20:29Z" + }, + { + "id": "pitcairn-islands", + "name": "Pitcairn Islands", + "asset": "occumed-pitcairn-islands.pmtiles", + "sizeBytes": 2806324, + "updatedAt": "2026-07-27T00:43:01Z" + }, + { + "id": "plzensky", + "name": "Plzeňský kraj", + "asset": "occumed-plzensky.pmtiles", + "sizeBytes": 165799244, + "updatedAt": "2026-07-27T00:26:55Z" + }, + { + "id": "podkarpackie", + "name": "Województwo podkarpackie
(Subcarpathian Voivodeship)", + "asset": "occumed-podkarpackie.pmtiles", + "sizeBytes": 399815382, + "updatedAt": "2026-07-27T00:48:57Z" + }, + { + "id": "podlaskie", + "name": "Województwo podlaskie
(Podlaskie Voivodeship)", + "asset": "occumed-podlaskie.pmtiles", + "sizeBytes": 276226874, + "updatedAt": "2026-07-27T00:58:48Z" + }, + { + "id": "poitou-charentes", + "name": "Poitou-Charentes", + "asset": "occumed-poitou-charentes.pmtiles", + "sizeBytes": 497011306, + "updatedAt": "2026-07-26T22:00:42Z" + }, + { + "id": "polynesie-francaise", + "name": "Polynésie française (French Polynesia)", + "asset": "occumed-polynesie-francaise.pmtiles", + "sizeBytes": 46427824, + "updatedAt": "2026-07-27T00:17:41Z" + }, + { + "id": "pomorskie", + "name": "Województwo pomorskie
(Pomeranian Voivodeship)", + "asset": "occumed-pomorskie.pmtiles", + "sizeBytes": 323640850, + "updatedAt": "2026-07-27T00:49:52Z" + }, + { + "id": "portugal--r1-c1", + "name": "Portugal 1.1", + "asset": "occumed-portugal--r1-c1.pmtiles", + "sizeBytes": 1933521, + "updatedAt": "2026-07-26T22:49:44Z" + }, + { + "id": "portugal--r1-c2", + "name": "Portugal 1.2", + "asset": "occumed-portugal--r1-c2.pmtiles", + "sizeBytes": 27803874, + "updatedAt": "2026-07-26T22:24:41Z" + }, + { + "id": "portugal--r1-c3", + "name": "Portugal 1.3", + "asset": "occumed-portugal--r1-c3.pmtiles", + "sizeBytes": 10831334, + "updatedAt": "2026-07-26T22:32:23Z" + }, + { + "id": "portugal--r2-c1", + "name": "Portugal 2.1", + "asset": "occumed-portugal--r2-c1.pmtiles", + "sizeBytes": 45325833, + "updatedAt": "2026-07-26T22:49:41Z" + }, + { + "id": "portugal--r2-c2", + "name": "Portugal 2.2", + "asset": "occumed-portugal--r2-c2.pmtiles", + "sizeBytes": 16732, + "updatedAt": "2026-07-26T22:25:49Z" + }, + { + "id": "portugal--r2-c3", + "name": "Portugal 2.3", + "asset": "occumed-portugal--r2-c3.pmtiles", + "sizeBytes": 1029500006, + "updatedAt": "2026-07-26T22:40:40Z" + }, + { + "id": "praha", + "name": "Praha", + "asset": "occumed-praha.pmtiles", + "sizeBytes": 58986197, + "updatedAt": "2026-07-27T00:47:00Z" + }, + { + "id": "prince-edward-island", + "name": "Prince Edward Island", + "asset": "occumed-prince-edward-island.pmtiles", + "sizeBytes": 43645907, + "updatedAt": "2026-07-27T01:12:40Z" + }, + { + "id": "provence-alpes-cote-d-azur", + "name": "Provence Alpes-Cote-d'Azur", + "asset": "occumed-provence-alpes-cote-d-azur.pmtiles", + "sizeBytes": 717196842, + "updatedAt": "2026-07-27T00:38:00Z" + }, + { + "id": "qikiqtaaluk--r1-c1", + "name": "Qikiqtaaluk Region 1.1", + "asset": "occumed-qikiqtaaluk--r1-c1.pmtiles", + "sizeBytes": 97673773, + "updatedAt": "2026-07-26T22:30:00Z" + }, + { + "id": "qikiqtaaluk--r1-c2", + "name": "Qikiqtaaluk Region 1.2", + "asset": "occumed-qikiqtaaluk--r1-c2.pmtiles", + "sizeBytes": 829226013, + "updatedAt": "2026-07-26T22:35:51Z" + }, + { + "id": "qikiqtaaluk--r2-c1", + "name": "Qikiqtaaluk Region 2.1", + "asset": "occumed-qikiqtaaluk--r2-c1.pmtiles", + "sizeBytes": 1225828852, + "updatedAt": "2026-07-26T22:44:18Z" + }, + { + "id": "qikiqtaaluk--r2-c2", + "name": "Qikiqtaaluk Region 2.2", + "asset": "occumed-qikiqtaaluk--r2-c2.pmtiles", + "sizeBytes": 1122152573, + "updatedAt": "2026-07-26T22:31:07Z" + }, + { + "id": "qinghai", + "name": "Qinghai", + "asset": "occumed-qinghai.pmtiles", + "sizeBytes": 189704456, + "updatedAt": "2026-07-27T00:52:34Z" + }, + { + "id": "quebec--r1-c1", + "name": "Quebec 1.1", + "asset": "occumed-quebec--r1-c1.pmtiles", + "sizeBytes": 1699969210, + "updatedAt": "2026-07-26T22:56:05Z" + }, + { + "id": "quebec--r1-c2", + "name": "Quebec 1.2", + "asset": "occumed-quebec--r1-c2.pmtiles", + "sizeBytes": 271606446, + "updatedAt": "2026-07-26T22:46:32Z" + }, + { + "id": "quebec--r2-c1", + "name": "Quebec 2.1", + "asset": "occumed-quebec--r2-c1.pmtiles", + "sizeBytes": 788850608, + "updatedAt": "2026-07-26T22:26:36Z" + }, + { + "id": "quebec--r2-c2", + "name": "Quebec 2.2", + "asset": "occumed-quebec--r2-c2.pmtiles", + "sizeBytes": 342831081, + "updatedAt": "2026-07-26T22:58:12Z" + }, + { + "id": "quebec--r3-c1", + "name": "Quebec 3.1", + "asset": "occumed-quebec--r3-c1.pmtiles", + "sizeBytes": 1122300424, + "updatedAt": "2026-07-26T22:46:23Z" + }, + { + "id": "quebec--r3-c2", + "name": "Quebec 3.2", + "asset": "occumed-quebec--r3-c2.pmtiles", + "sizeBytes": 178915707, + "updatedAt": "2026-07-26T22:29:20Z" + }, + { + "id": "queensland", + "name": "Queensland", + "asset": "occumed-queensland.pmtiles", + "sizeBytes": 985440539, + "updatedAt": "2026-07-27T01:07:26Z" + }, + { + "id": "reunion", + "name": "Reunion", + "asset": "occumed-reunion.pmtiles", + "sizeBytes": 60222865, + "updatedAt": "2026-07-27T01:17:55Z" + }, + { + "id": "rheinland-pfalz", + "name": "Rheinland-Pfalz", + "asset": "occumed-rheinland-pfalz.pmtiles", + "sizeBytes": 645546778, + "updatedAt": "2026-07-27T00:44:50Z" + }, + { + "id": "rhone-alpes--r1-c1", + "name": "Rhone-Alpes 1.1", + "asset": "occumed-rhone-alpes--r1-c1.pmtiles", + "sizeBytes": 142685146, + "updatedAt": "2026-07-26T22:44:55Z" + }, + { + "id": "rhone-alpes--r1-c2", + "name": "Rhone-Alpes 1.2", + "asset": "occumed-rhone-alpes--r1-c2.pmtiles", + "sizeBytes": 199474632, + "updatedAt": "2026-07-26T22:14:10Z" + }, + { + "id": "rhone-alpes--r1-c3", + "name": "Rhone-Alpes 1.3", + "asset": "occumed-rhone-alpes--r1-c3.pmtiles", + "sizeBytes": 29748828, + "updatedAt": "2026-07-26T22:54:56Z" + }, + { + "id": "rhone-alpes--r2-c1", + "name": "Rhone-Alpes 2.1", + "asset": "occumed-rhone-alpes--r2-c1.pmtiles", + "sizeBytes": 257736961, + "updatedAt": "2026-07-26T22:53:56Z" + }, + { + "id": "rhone-alpes--r2-c2", + "name": "Rhone-Alpes 2.2", + "asset": "occumed-rhone-alpes--r2-c2.pmtiles", + "sizeBytes": 304618768, + "updatedAt": "2026-07-26T22:28:44Z" + }, + { + "id": "rhone-alpes--r2-c3", + "name": "Rhone-Alpes 2.3", + "asset": "occumed-rhone-alpes--r2-c3.pmtiles", + "sizeBytes": 203448253, + "updatedAt": "2026-07-26T22:34:50Z" + }, + { + "id": "romania", + "name": "Romania", + "asset": "occumed-romania.pmtiles", + "sizeBytes": 1383537515, + "updatedAt": "2026-07-27T01:05:31Z" + }, + { + "id": "rutland", + "name": "Rutland", + "asset": "occumed-rutland.pmtiles", + "sizeBytes": 5249387, + "updatedAt": "2026-07-27T00:44:53Z" + }, + { + "id": "rwanda", + "name": "Rwanda", + "asset": "occumed-rwanda.pmtiles", + "sizeBytes": 181568366, + "updatedAt": "2026-07-27T01:08:02Z" + }, + { + "id": "saarland", + "name": "Saarland", + "asset": "occumed-saarland.pmtiles", + "sizeBytes": 115464902, + "updatedAt": "2026-07-27T00:12:31Z" + }, + { + "id": "sachsen", + "name": "Sachsen", + "asset": "occumed-sachsen.pmtiles", + "sizeBytes": 589747272, + "updatedAt": "2026-07-27T00:45:22Z" + }, + { + "id": "sachsen-anhalt", + "name": "Sachsen-Anhalt", + "asset": "occumed-sachsen-anhalt.pmtiles", + "sizeBytes": 446264801, + "updatedAt": "2026-07-27T00:49:30Z" + }, + { + "id": "saint-helena-ascension-and-tristan-da-cunha", + "name": "Saint Helena, Ascension, and Tristan da Cunha", + "asset": "occumed-saint-helena-ascension-and-tristan-da-cunha.pmtiles", + "sizeBytes": 3033599, + "updatedAt": "2026-07-27T01:09:29Z" + }, + { + "id": "samoa", + "name": "Samoa", + "asset": "occumed-samoa.pmtiles", + "sizeBytes": 10343289, + "updatedAt": "2026-07-27T00:48:12Z" + }, + { + "id": "sao-tome-and-principe", + "name": "Sao Tome and Principe", + "asset": "occumed-sao-tome-and-principe.pmtiles", + "sizeBytes": 4948402, + "updatedAt": "2026-07-27T01:02:30Z" + }, + { + "id": "saskatchewan", + "name": "Saskatchewan", + "asset": "occumed-saskatchewan.pmtiles", + "sizeBytes": 753329104, + "updatedAt": "2026-07-27T00:18:00Z" + }, + { + "id": "schleswig-holstein", + "name": "Schleswig-Holstein", + "asset": "occumed-schleswig-holstein.pmtiles", + "sizeBytes": 440513733, + "updatedAt": "2026-07-27T01:00:58Z" + }, + { + "id": "schwaben", + "name": "Schwaben", + "asset": "occumed-schwaben.pmtiles", + "sizeBytes": 299086466, + "updatedAt": "2026-07-27T00:54:20Z" + }, + { + "id": "scotland", + "name": "Scotland", + "asset": "occumed-scotland.pmtiles", + "sizeBytes": 917045253, + "updatedAt": "2026-07-27T00:28:46Z" + }, + { + "id": "senegal-and-gambia", + "name": "Senegal and Gambia", + "asset": "occumed-senegal-and-gambia.pmtiles", + "sizeBytes": 369877996, + "updatedAt": "2026-07-27T00:56:48Z" + }, + { + "id": "serbia", + "name": "Serbia", + "asset": "occumed-serbia.pmtiles", + "sizeBytes": 710833358, + "updatedAt": "2026-07-26T22:25:53Z" + }, + { + "id": "seychelles", + "name": "Seychelles", + "asset": "occumed-seychelles.pmtiles", + "sizeBytes": 8111560, + "updatedAt": "2026-07-27T01:05:55Z" + }, + { + "id": "shaanxi", + "name": "Shaanxi", + "asset": "occumed-shaanxi.pmtiles", + "sizeBytes": 417964880, + "updatedAt": "2026-07-27T01:04:25Z" + }, + { + "id": "shandong", + "name": "Shandong", + "asset": "occumed-shandong.pmtiles", + "sizeBytes": 427815236, + "updatedAt": "2026-07-27T00:22:54Z" + }, + { + "id": "shanghai", + "name": "Shanghai", + "asset": "occumed-shanghai.pmtiles", + "sizeBytes": 86550721, + "updatedAt": "2026-07-27T01:03:32Z" + }, + { + "id": "shanxi", + "name": "Shanxi", + "asset": "occumed-shanxi.pmtiles", + "sizeBytes": 218034010, + "updatedAt": "2026-07-27T00:58:42Z" + }, + { + "id": "shikoku", + "name": "Shikoku", + "asset": "occumed-shikoku.pmtiles", + "sizeBytes": 222262387, + "updatedAt": "2026-07-27T00:32:03Z" + }, + { + "id": "shropshire", + "name": "Shropshire", + "asset": "occumed-shropshire.pmtiles", + "sizeBytes": 81230435, + "updatedAt": "2026-07-27T01:06:06Z" + }, + { + "id": "siberian-fed-district--r1-c2", + "name": "Siberian Federal District 1.2", + "asset": "occumed-siberian-fed-district--r1-c2.pmtiles", + "sizeBytes": 333767214, + "updatedAt": "2026-07-26T23:39:37Z" + }, + { + "id": "siberian-fed-district--r2-c1", + "name": "Siberian Federal District 2.1", + "asset": "occumed-siberian-fed-district--r2-c1.pmtiles", + "sizeBytes": 505488662, + "updatedAt": "2026-07-26T23:06:41Z" + }, + { + "id": "siberian-fed-district--r2-c2", + "name": "Siberian Federal District 2.2", + "asset": "occumed-siberian-fed-district--r2-c2.pmtiles", + "sizeBytes": 29538650, + "updatedAt": "2026-07-26T23:12:34Z" + }, + { + "id": "sichuan", + "name": "Sichuan", + "asset": "occumed-sichuan.pmtiles", + "sizeBytes": 579220796, + "updatedAt": "2026-07-27T00:32:08Z" + }, + { + "id": "sierra-leone", + "name": "Sierra Leone", + "asset": "occumed-sierra-leone.pmtiles", + "sizeBytes": 131448435, + "updatedAt": "2026-07-27T01:15:09Z" + }, + { + "id": "slaskie", + "name": "Województwo śląskie
(Silesian Voivodeship)", + "asset": "occumed-slaskie.pmtiles", + "sizeBytes": 419666260, + "updatedAt": "2026-07-27T01:18:47Z" + }, + { + "id": "slovakia", + "name": "Slovakia", + "asset": "occumed-slovakia.pmtiles", + "sizeBytes": 826044590, + "updatedAt": "2026-07-27T00:54:59Z" + }, + { + "id": "slovenia", + "name": "Slovenia", + "asset": "occumed-slovenia.pmtiles", + "sizeBytes": 628361387, + "updatedAt": "2026-07-27T00:13:45Z" + }, + { + "id": "socal--r1-c1", + "name": "Southern California 1.1", + "asset": "occumed-socal--r1-c1.pmtiles", + "sizeBytes": 4504102, + "updatedAt": "2026-07-26T22:57:53Z" + }, + { + "id": "socal--r1-c2", + "name": "Southern California 1.2", + "asset": "occumed-socal--r1-c2.pmtiles", + "sizeBytes": 756163790, + "updatedAt": "2026-07-26T23:51:48Z" + }, + { + "id": "socal--r1-c3", + "name": "Southern California 1.3", + "asset": "occumed-socal--r1-c3.pmtiles", + "sizeBytes": 64929250, + "updatedAt": "2026-07-26T23:43:19Z" + }, + { + "id": "socal--r2-c1", + "name": "Southern California 2.1", + "asset": "occumed-socal--r2-c1.pmtiles", + "sizeBytes": 158211894, + "updatedAt": "2026-07-26T23:01:16Z" + }, + { + "id": "socal--r2-c2", + "name": "Southern California 2.2", + "asset": "occumed-socal--r2-c2.pmtiles", + "sizeBytes": 279364984, + "updatedAt": "2026-07-26T23:45:54Z" + }, + { + "id": "socal--r2-c3", + "name": "Southern California 2.3", + "asset": "occumed-socal--r2-c3.pmtiles", + "sizeBytes": 28656781, + "updatedAt": "2026-07-26T23:32:47Z" + }, + { + "id": "solomon-islands", + "name": "Solomon Islands", + "asset": "occumed-solomon-islands.pmtiles", + "sizeBytes": 40141871, + "updatedAt": "2026-07-27T00:41:58Z" + }, + { + "id": "somalia", + "name": "Somalia", + "asset": "occumed-somalia.pmtiles", + "sizeBytes": 744858979, + "updatedAt": "2026-07-27T00:22:15Z" + }, + { + "id": "somerset", + "name": "Somerset", + "asset": "occumed-somerset.pmtiles", + "sizeBytes": 112386886, + "updatedAt": "2026-07-26T23:24:12Z" + }, + { + "id": "sorlandet", + "name": "Sørlandet
(Southern Norway)", + "asset": "occumed-sorlandet.pmtiles", + "sizeBytes": 278761103, + "updatedAt": "2026-07-27T00:55:32Z" + }, + { + "id": "south-africa--r1-c1", + "name": "South Africa 1.1", + "asset": "occumed-south-africa--r1-c1.pmtiles", + "sizeBytes": 1494589, + "updatedAt": "2026-07-26T23:13:30Z" + }, + { + "id": "south-africa--r1-c2", + "name": "South Africa 1.2", + "asset": "occumed-south-africa--r1-c2.pmtiles", + "sizeBytes": 1889758, + "updatedAt": "2026-07-26T23:42:27Z" + }, + { + "id": "south-africa--r2-c1", + "name": "South Africa 2.1", + "asset": "occumed-south-africa--r2-c1.pmtiles", + "sizeBytes": 686554066, + "updatedAt": "2026-07-26T23:05:50Z" + }, + { + "id": "south-africa--r2-c2", + "name": "South Africa 2.2", + "asset": "occumed-south-africa--r2-c2.pmtiles", + "sizeBytes": 917318784, + "updatedAt": "2026-07-26T23:52:49Z" + }, + { + "id": "south-australia", + "name": "South Australia", + "asset": "occumed-south-australia.pmtiles", + "sizeBytes": 384926942, + "updatedAt": "2026-07-27T00:54:10Z" + }, + { + "id": "south-fed-district", + "name": "South Federal District", + "asset": "occumed-south-fed-district.pmtiles", + "sizeBytes": 1328612607, + "updatedAt": "2026-07-27T00:31:58Z" + }, + { + "id": "south-korea", + "name": "South Korea", + "asset": "occumed-south-korea.pmtiles", + "sizeBytes": 933428049, + "updatedAt": "2026-07-27T00:12:18Z" + }, + { + "id": "south-sudan", + "name": "South Sudan", + "asset": "occumed-south-sudan.pmtiles", + "sizeBytes": 385488028, + "updatedAt": "2026-07-27T01:00:23Z" + }, + { + "id": "south-yorkshire", + "name": "South Yorkshire", + "asset": "occumed-south-yorkshire.pmtiles", + "sizeBytes": 68923781, + "updatedAt": "2026-07-27T00:25:19Z" + }, + { + "id": "southcoast-admreg", + "name": "South Coast Administrative Region", + "asset": "occumed-southcoast-admreg.pmtiles", + "sizeBytes": 277657670, + "updatedAt": "2026-07-27T00:16:19Z" + }, + { + "id": "southern-zone--r1-c1", + "name": "Southern Zone 1.1", + "asset": "occumed-southern-zone--r1-c1.pmtiles", + "sizeBytes": 714053706, + "updatedAt": "2026-07-26T23:45:58Z" + }, + { + "id": "southern-zone--r1-c2", + "name": "Southern Zone 1.2", + "asset": "occumed-southern-zone--r1-c2.pmtiles", + "sizeBytes": 155267626, + "updatedAt": "2026-07-26T23:08:55Z" + }, + { + "id": "southern-zone--r1-c3", + "name": "Southern Zone 1.3", + "asset": "occumed-southern-zone--r1-c3.pmtiles", + "sizeBytes": 11483833, + "updatedAt": "2026-07-26T23:12:00Z" + }, + { + "id": "southern-zone--r2-c1", + "name": "Southern Zone 2.1", + "asset": "occumed-southern-zone--r2-c1.pmtiles", + "sizeBytes": 526429201, + "updatedAt": "2026-07-26T23:26:59Z" + }, + { + "id": "southern-zone--r2-c2", + "name": "Southern Zone 2.2", + "asset": "occumed-southern-zone--r2-c2.pmtiles", + "sizeBytes": 474932877, + "updatedAt": "2026-07-26T23:08:00Z" + }, + { + "id": "southern-zone--r2-c3", + "name": "Southern Zone 2.3", + "asset": "occumed-southern-zone--r2-c3.pmtiles", + "sizeBytes": 2540619, + "updatedAt": "2026-07-26T23:17:31Z" + }, + { + "id": "sri-lanka", + "name": "Sri Lanka", + "asset": "occumed-sri-lanka.pmtiles", + "sizeBytes": 422739174, + "updatedAt": "2026-07-27T00:40:11Z" + }, + { + "id": "staffordshire", + "name": "Staffordshire", + "asset": "occumed-staffordshire.pmtiles", + "sizeBytes": 75991928, + "updatedAt": "2026-07-26T23:00:03Z" + }, + { + "id": "stredocesky", + "name": "Středočeský kraj (with Praha)", + "asset": "occumed-stredocesky.pmtiles", + "sizeBytes": 354270725, + "updatedAt": "2026-07-26T23:13:07Z" + }, + { + "id": "stuttgart-regbez", + "name": "Regierungsbezirk Stuttgart", + "asset": "occumed-stuttgart-regbez.pmtiles", + "sizeBytes": 462779095, + "updatedAt": "2026-07-27T00:50:41Z" + }, + { + "id": "sud--r1-c1", + "name": "Sud 1.1", + "asset": "occumed-sud--r1-c1.pmtiles", + "sizeBytes": 79342397, + "updatedAt": "2026-07-26T22:59:52Z" + }, + { + "id": "sud--r1-c2", + "name": "Sud 1.2", + "asset": "occumed-sud--r1-c2.pmtiles", + "sizeBytes": 201400714, + "updatedAt": "2026-07-26T23:17:34Z" + }, + { + "id": "sud--r2-c1", + "name": "Sud 2.1", + "asset": "occumed-sud--r2-c1.pmtiles", + "sizeBytes": 575287684, + "updatedAt": "2026-07-26T23:36:58Z" + }, + { + "id": "sud--r2-c2", + "name": "Sud 2.2", + "asset": "occumed-sud--r2-c2.pmtiles", + "sizeBytes": 193907790, + "updatedAt": "2026-07-26T23:03:09Z" + }, + { + "id": "sudan", + "name": "Sudan", + "asset": "occumed-sudan.pmtiles", + "sizeBytes": 756246764, + "updatedAt": "2026-07-27T01:01:58Z" + }, + { + "id": "sudeste--r1-c1", + "name": "Sudeste 1.1", + "asset": "occumed-sudeste--r1-c1.pmtiles", + "sizeBytes": 1242341802, + "updatedAt": "2026-07-26T23:48:36Z" + }, + { + "id": "sudeste--r1-c2", + "name": "Sudeste 1.2", + "asset": "occumed-sudeste--r1-c2.pmtiles", + "sizeBytes": 660663964, + "updatedAt": "2026-07-26T23:11:23Z" + }, + { + "id": "sudeste--r1-c3", + "name": "Sudeste 1.3", + "asset": "occumed-sudeste--r1-c3.pmtiles", + "sizeBytes": 3223369, + "updatedAt": "2026-07-26T23:16:03Z" + }, + { + "id": "sudeste--r2-c1", + "name": "Sudeste 2.1", + "asset": "occumed-sudeste--r2-c1.pmtiles", + "sizeBytes": 261881489, + "updatedAt": "2026-07-26T23:44:05Z" + }, + { + "id": "sudeste--r2-c2", + "name": "Sudeste 2.2", + "asset": "occumed-sudeste--r2-c2.pmtiles", + "sizeBytes": 487604772, + "updatedAt": "2026-07-26T23:04:29Z" + }, + { + "id": "sudeste--r2-c3", + "name": "Sudeste 2.3", + "asset": "occumed-sudeste--r2-c3.pmtiles", + "sizeBytes": 2670406, + "updatedAt": "2026-07-26T23:11:00Z" + }, + { + "id": "suffolk", + "name": "Suffolk", + "asset": "occumed-suffolk.pmtiles", + "sizeBytes": 87344716, + "updatedAt": "2026-07-26T23:31:15Z" + }, + { + "id": "sul--r1-c1", + "name": "Sul 1.1", + "asset": "occumed-sul--r1-c1.pmtiles", + "sizeBytes": 373449948, + "updatedAt": "2026-07-26T23:06:22Z" + }, + { + "id": "sul--r1-c2", + "name": "Sul 1.2", + "asset": "occumed-sul--r1-c2.pmtiles", + "sizeBytes": 72730061, + "updatedAt": "2026-07-26T23:45:47Z" + }, + { + "id": "sul--r2-c1", + "name": "Sul 2.1", + "asset": "occumed-sul--r2-c1.pmtiles", + "sizeBytes": 587802099, + "updatedAt": "2026-07-26T23:25:42Z" + }, + { + "id": "sul--r2-c2", + "name": "Sul 2.2", + "asset": "occumed-sul--r2-c2.pmtiles", + "sizeBytes": 496155680, + "updatedAt": "2026-07-26T23:08:07Z" + }, + { + "id": "sulawesi", + "name": "Sulawesi", + "asset": "occumed-sulawesi.pmtiles", + "sizeBytes": 440703998, + "updatedAt": "2026-07-27T00:55:47Z" + }, + { + "id": "sumatra", + "name": "Sumatra", + "asset": "occumed-sumatra.pmtiles", + "sizeBytes": 907649377, + "updatedAt": "2026-07-27T00:48:41Z" + }, + { + "id": "suriname", + "name": "Suriname", + "asset": "occumed-suriname.pmtiles", + "sizeBytes": 87113264, + "updatedAt": "2026-07-27T01:13:27Z" + }, + { + "id": "surrey", + "name": "Surrey", + "asset": "occumed-surrey.pmtiles", + "sizeBytes": 89651098, + "updatedAt": "2026-07-27T00:53:58Z" + }, + { + "id": "svalbard-janmayen", + "name": "Svalbard and Jan Mayen", + "asset": "occumed-svalbard-janmayen.pmtiles", + "sizeBytes": 62487565, + "updatedAt": "2026-07-26T23:25:39Z" + }, + { + "id": "swaziland", + "name": "Swaziland", + "asset": "occumed-swaziland.pmtiles", + "sizeBytes": 77338637, + "updatedAt": "2026-07-26T22:57:52Z" + }, + { + "id": "sweden--r1-c1", + "name": "Sweden 1.1", + "asset": "occumed-sweden--r1-c1.pmtiles", + "sizeBytes": 1998622147, + "updatedAt": "2026-07-26T23:24:08Z" + }, + { + "id": "sweden--r1-c2", + "name": "Sweden 1.2", + "asset": "occumed-sweden--r1-c2.pmtiles", + "sizeBytes": 299483298, + "updatedAt": "2026-07-26T23:42:09Z" + }, + { + "id": "sweden--r2-c1", + "name": "Sweden 2.1", + "asset": "occumed-sweden--r2-c1.pmtiles", + "sizeBytes": 581736561, + "updatedAt": "2026-07-26T23:15:02Z" + }, + { + "id": "sweden--r2-c2", + "name": "Sweden 2.2", + "asset": "occumed-sweden--r2-c2.pmtiles", + "sizeBytes": 534761507, + "updatedAt": "2026-07-26T23:18:46Z" + }, + { + "id": "swietokrzyskie", + "name": "Województwo świętokrzyskie
(Świętokrzyskie Voivodeship)", + "asset": "occumed-swietokrzyskie.pmtiles", + "sizeBytes": 236463720, + "updatedAt": "2026-07-27T00:26:13Z" + }, + { + "id": "switzerland--r1-c1", + "name": "Switzerland 1.1", + "asset": "occumed-switzerland--r1-c1.pmtiles", + "sizeBytes": 205689142, + "updatedAt": "2026-07-26T23:02:22Z" + }, + { + "id": "switzerland--r1-c2", + "name": "Switzerland 1.2", + "asset": "occumed-switzerland--r1-c2.pmtiles", + "sizeBytes": 135570876, + "updatedAt": "2026-07-26T23:10:54Z" + }, + { + "id": "switzerland--r1-c3", + "name": "Switzerland 1.3", + "asset": "occumed-switzerland--r1-c3.pmtiles", + "sizeBytes": 68624180, + "updatedAt": "2026-07-26T23:27:38Z" + }, + { + "id": "switzerland--r2-c1", + "name": "Switzerland 2.1", + "asset": "occumed-switzerland--r2-c1.pmtiles", + "sizeBytes": 110409352, + "updatedAt": "2026-07-26T23:20:03Z" + }, + { + "id": "switzerland--r2-c2", + "name": "Switzerland 2.2", + "asset": "occumed-switzerland--r2-c2.pmtiles", + "sizeBytes": 421365858, + "updatedAt": "2026-07-26T23:17:28Z" + }, + { + "id": "switzerland--r2-c3", + "name": "Switzerland 2.3", + "asset": "occumed-switzerland--r2-c3.pmtiles", + "sizeBytes": 135798950, + "updatedAt": "2026-07-26T23:24:08Z" + }, + { + "id": "syria", + "name": "Syria", + "asset": "occumed-syria.pmtiles", + "sizeBytes": 323866290, + "updatedAt": "2026-07-27T00:58:56Z" + }, + { + "id": "taiwan", + "name": "Taiwan", + "asset": "occumed-taiwan.pmtiles", + "sizeBytes": 480093889, + "updatedAt": "2026-07-26T23:15:06Z" + }, + { + "id": "tajikistan", + "name": "Tajikistan", + "asset": "occumed-tajikistan.pmtiles", + "sizeBytes": 231069396, + "updatedAt": "2026-07-26T23:35:02Z" + }, + { + "id": "tanzania--r1-c1", + "name": "Tanzania 1.1", + "asset": "occumed-tanzania--r1-c1.pmtiles", + "sizeBytes": 82937409, + "updatedAt": "2026-07-26T23:05:31Z" + }, + { + "id": "tanzania--r1-c2", + "name": "Tanzania 1.2", + "asset": "occumed-tanzania--r1-c2.pmtiles", + "sizeBytes": 236635139, + "updatedAt": "2026-07-26T23:17:55Z" + }, + { + "id": "tanzania--r1-c3", + "name": "Tanzania 1.3", + "asset": "occumed-tanzania--r1-c3.pmtiles", + "sizeBytes": 265406651, + "updatedAt": "2026-07-26T23:39:31Z" + }, + { + "id": "tanzania--r2-c1", + "name": "Tanzania 2.1", + "asset": "occumed-tanzania--r2-c1.pmtiles", + "sizeBytes": 380932835, + "updatedAt": "2026-07-26T23:01:51Z" + }, + { + "id": "tanzania--r2-c2", + "name": "Tanzania 2.2", + "asset": "occumed-tanzania--r2-c2.pmtiles", + "sizeBytes": 521077980, + "updatedAt": "2026-07-26T23:11:03Z" + }, + { + "id": "tanzania--r2-c3", + "name": "Tanzania 2.3", + "asset": "occumed-tanzania--r2-c3.pmtiles", + "sizeBytes": 199190421, + "updatedAt": "2026-07-26T23:27:01Z" + }, + { + "id": "tasmania", + "name": "Tasmania", + "asset": "occumed-tasmania.pmtiles", + "sizeBytes": 222361826, + "updatedAt": "2026-07-27T00:50:13Z" + }, + { + "id": "thailand", + "name": "Thailand", + "asset": "occumed-thailand.pmtiles", + "sizeBytes": 1278438301, + "updatedAt": "2026-07-26T23:21:21Z" + }, + { + "id": "thueringen", + "name": "Thüringen", + "asset": "occumed-thueringen.pmtiles", + "sizeBytes": 415453438, + "updatedAt": "2026-07-27T01:14:47Z" + }, + { + "id": "tianjin", + "name": "Tianjin", + "asset": "occumed-tianjin.pmtiles", + "sizeBytes": 67708039, + "updatedAt": "2026-07-26T23:07:33Z" + }, + { + "id": "tibet", + "name": "Tibet", + "asset": "occumed-tibet.pmtiles", + "sizeBytes": 435233727, + "updatedAt": "2026-07-26T23:13:23Z" + }, + { + "id": "togo", + "name": "Togo", + "asset": "occumed-togo.pmtiles", + "sizeBytes": 155780521, + "updatedAt": "2026-07-27T01:15:18Z" + }, + { + "id": "tohoku", + "name": "Tōhoku region", + "asset": "occumed-tohoku.pmtiles", + "sizeBytes": 763629068, + "updatedAt": "2026-07-27T00:59:55Z" + }, + { + "id": "tokelau", + "name": "Tokelau", + "asset": "occumed-tokelau.pmtiles", + "sizeBytes": 724090, + "updatedAt": "2026-07-26T23:13:09Z" + }, + { + "id": "tonga", + "name": "Tonga", + "asset": "occumed-tonga.pmtiles", + "sizeBytes": 11031312, + "updatedAt": "2026-07-27T01:11:05Z" + }, + { + "id": "trondelag", + "name": "Trøndelag
(Central Norway)", + "asset": "occumed-trondelag.pmtiles", + "sizeBytes": 679183442, + "updatedAt": "2026-07-26T23:05:12Z" + }, + { + "id": "tuebingen-regbez", + "name": "Regierungsbezirk Tübingen", + "asset": "occumed-tuebingen-regbez.pmtiles", + "sizeBytes": 285561759, + "updatedAt": "2026-07-26T23:16:21Z" + }, + { + "id": "tunisia", + "name": "Tunisia", + "asset": "occumed-tunisia.pmtiles", + "sizeBytes": 259813456, + "updatedAt": "2026-07-26T23:23:32Z" + }, + { + "id": "turkey--r1-c1", + "name": "Turkey 1.1", + "asset": "occumed-turkey--r1-c1.pmtiles", + "sizeBytes": 424413740, + "updatedAt": "2026-07-26T23:23:08Z" + }, + { + "id": "turkey--r1-c2", + "name": "Turkey 1.2", + "asset": "occumed-turkey--r1-c2.pmtiles", + "sizeBytes": 568860053, + "updatedAt": "2026-07-26T23:15:11Z" + }, + { + "id": "turkey--r1-c3", + "name": "Turkey 1.3", + "asset": "occumed-turkey--r1-c3.pmtiles", + "sizeBytes": 289202056, + "updatedAt": "2026-07-26T23:44:02Z" + }, + { + "id": "turkey--r2-c1", + "name": "Turkey 2.1", + "asset": "occumed-turkey--r2-c1.pmtiles", + "sizeBytes": 579456542, + "updatedAt": "2026-07-26T23:02:51Z" + }, + { + "id": "turkey--r2-c2", + "name": "Turkey 2.2", + "asset": "occumed-turkey--r2-c2.pmtiles", + "sizeBytes": 394097846, + "updatedAt": "2026-07-26T23:14:34Z" + }, + { + "id": "turkey--r2-c3", + "name": "Turkey 2.3", + "asset": "occumed-turkey--r2-c3.pmtiles", + "sizeBytes": 194939555, + "updatedAt": "2026-07-26T23:23:53Z" + }, + { + "id": "turkmenistan", + "name": "Turkmenistan", + "asset": "occumed-turkmenistan.pmtiles", + "sizeBytes": 144258339, + "updatedAt": "2026-07-26T23:02:21Z" + }, + { + "id": "tuvalu", + "name": "Tuvalu", + "asset": "occumed-tuvalu.pmtiles", + "sizeBytes": 1529607, + "updatedAt": "2026-07-26T23:16:20Z" + }, + { + "id": "tyne-and-wear", + "name": "Tyne and Wear", + "asset": "occumed-tyne-and-wear.pmtiles", + "sizeBytes": 44931274, + "updatedAt": "2026-07-26T23:23:13Z" + }, + { + "id": "uganda", + "name": "Uganda", + "asset": "occumed-uganda.pmtiles", + "sizeBytes": 882395718, + "updatedAt": "2026-07-26T23:05:23Z" + }, + { + "id": "ukraine--r1-c1", + "name": "Ukraine (with Crimea) 1.1", + "asset": "occumed-ukraine--r1-c1.pmtiles", + "sizeBytes": 88193506, + "updatedAt": "2026-07-26T23:49:33Z" + }, + { + "id": "ukraine--r1-c2", + "name": "Ukraine (with Crimea) 1.2", + "asset": "occumed-ukraine--r1-c2.pmtiles", + "sizeBytes": 522656919, + "updatedAt": "2026-07-26T23:50:50Z" + }, + { + "id": "ukraine--r1-c3", + "name": "Ukraine (with Crimea) 1.3", + "asset": "occumed-ukraine--r1-c3.pmtiles", + "sizeBytes": 369566077, + "updatedAt": "2026-07-26T23:07:29Z" + }, + { + "id": "ukraine--r2-c1", + "name": "Ukraine (with Crimea) 2.1", + "asset": "occumed-ukraine--r2-c1.pmtiles", + "sizeBytes": 960453941, + "updatedAt": "2026-07-26T23:20:32Z" + }, + { + "id": "ukraine--r2-c2", + "name": "Ukraine (with Crimea) 2.2", + "asset": "occumed-ukraine--r2-c2.pmtiles", + "sizeBytes": 981527512, + "updatedAt": "2026-07-26T23:39:47Z" + }, + { + "id": "ukraine--r2-c3", + "name": "Ukraine (with Crimea) 2.3", + "asset": "occumed-ukraine--r2-c3.pmtiles", + "sizeBytes": 653046327, + "updatedAt": "2026-07-26T23:05:23Z" + }, + { + "id": "unterfranken", + "name": "Unterfranken", + "asset": "occumed-unterfranken.pmtiles", + "sizeBytes": 255991628, + "updatedAt": "2026-07-27T01:08:14Z" + }, + { + "id": "uruguay", + "name": "Uruguay", + "asset": "occumed-uruguay.pmtiles", + "sizeBytes": 214043855, + "updatedAt": "2026-07-26T23:20:35Z" + }, + { + "id": "us/alabama", + "name": "us/alabama", + "asset": "occumed-us--alabama.pmtiles", + "sizeBytes": 546293665, + "updatedAt": "2026-07-26T23:19:41Z" + }, + { + "id": "us/alaska", + "name": "us/alaska", + "asset": "occumed-us--alaska.pmtiles", + "sizeBytes": 1348771065, + "updatedAt": "2026-07-26T23:39:20Z" + }, + { + "id": "us/arizona", + "name": "us/arizona", + "asset": "occumed-us--arizona.pmtiles", + "sizeBytes": 907258859, + "updatedAt": "2026-07-26T23:10:17Z" + }, + { + "id": "us/arkansas", + "name": "us/arkansas", + "asset": "occumed-us--arkansas.pmtiles", + "sizeBytes": 397629253, + "updatedAt": "2026-07-26T23:15:39Z" + }, + { + "id": "us/colorado", + "name": "us/colorado", + "asset": "occumed-us--colorado.pmtiles", + "sizeBytes": 1065700240, + "updatedAt": "2026-07-26T23:34:33Z" + }, + { + "id": "us/connecticut", + "name": "us/connecticut", + "asset": "occumed-us--connecticut.pmtiles", + "sizeBytes": 370483923, + "updatedAt": "2026-07-26T23:07:36Z" + }, + { + "id": "us/delaware", + "name": "us/delaware", + "asset": "occumed-us--delaware.pmtiles", + "sizeBytes": 65744011, + "updatedAt": "2026-07-26T23:09:44Z" + }, + { + "id": "us/district-of-columbia", + "name": "us/district-of-columbia", + "asset": "occumed-us--district-of-columbia.pmtiles", + "sizeBytes": 27866397, + "updatedAt": "2026-07-26T23:49:03Z" + }, + { + "id": "us/florida--r1-c1", + "name": "us/florida 1.1", + "asset": "occumed-us--florida--r1-c1.pmtiles", + "sizeBytes": 16732, + "updatedAt": "2026-07-26T23:05:01Z" + }, + { + "id": "us/florida--r1-c2", + "name": "us/florida 1.2", + "asset": "occumed-us--florida--r1-c2.pmtiles", + "sizeBytes": 26249914, + "updatedAt": "2026-07-26T23:48:44Z" + }, + { + "id": "us/florida--r1-c3", + "name": "us/florida 1.3", + "asset": "occumed-us--florida--r1-c3.pmtiles", + "sizeBytes": 544954000, + "updatedAt": "2026-07-26T23:45:24Z" + }, + { + "id": "us/florida--r2-c1", + "name": "us/florida 2.1", + "asset": "occumed-us--florida--r2-c1.pmtiles", + "sizeBytes": 167365966, + "updatedAt": "2026-07-26T23:22:06Z" + }, + { + "id": "us/florida--r2-c2", + "name": "us/florida 2.2", + "asset": "occumed-us--florida--r2-c2.pmtiles", + "sizeBytes": 419978786, + "updatedAt": "2026-07-26T23:23:14Z" + }, + { + "id": "us/florida--r2-c3", + "name": "us/florida 2.3", + "asset": "occumed-us--florida--r2-c3.pmtiles", + "sizeBytes": 720723958, + "updatedAt": "2026-07-26T23:41:33Z" + }, + { + "id": "us/georgia", + "name": "Georgia", + "asset": "occumed-us--georgia.pmtiles", + "sizeBytes": 991112214, + "updatedAt": "2026-07-26T23:21:41Z" + }, + { + "id": "us/hawaii", + "name": "us/hawaii", + "asset": "occumed-us--hawaii.pmtiles", + "sizeBytes": 70429280, + "updatedAt": "2026-07-26T23:14:31Z" + }, + { + "id": "us/idaho", + "name": "us/idaho", + "asset": "occumed-us--idaho.pmtiles", + "sizeBytes": 506422536, + "updatedAt": "2026-07-26T23:35:19Z" + }, + { + "id": "us/illinois", + "name": "us/illinois", + "asset": "occumed-us--illinois.pmtiles", + "sizeBytes": 1001210432, + "updatedAt": "2026-07-26T23:07:40Z" + }, + { + "id": "us/indiana", + "name": "us/indiana", + "asset": "occumed-us--indiana.pmtiles", + "sizeBytes": 621958420, + "updatedAt": "2026-07-26T23:12:24Z" + }, + { + "id": "us/iowa", + "name": "us/iowa", + "asset": "occumed-us--iowa.pmtiles", + "sizeBytes": 511919934, + "updatedAt": "2026-07-26T23:26:30Z" + }, + { + "id": "us/kansas", + "name": "us/kansas", + "asset": "occumed-us--kansas.pmtiles", + "sizeBytes": 521951198, + "updatedAt": "2026-07-26T23:08:04Z" + }, + { + "id": "us/kentucky", + "name": "us/kentucky", + "asset": "occumed-us--kentucky.pmtiles", + "sizeBytes": 475102634, + "updatedAt": "2026-07-26T23:19:38Z" + }, + { + "id": "us/louisiana", + "name": "us/louisiana", + "asset": "occumed-us--louisiana.pmtiles", + "sizeBytes": 432983529, + "updatedAt": "2026-07-26T23:54:36Z" + }, + { + "id": "us/maine", + "name": "us/maine", + "asset": "occumed-us--maine.pmtiles", + "sizeBytes": 348600421, + "updatedAt": "2026-07-26T23:22:07Z" + }, + { + "id": "us/maryland", + "name": "us/maryland", + "asset": "occumed-us--maryland.pmtiles", + "sizeBytes": 506554385, + "updatedAt": "2026-07-26T23:12:24Z" + }, + { + "id": "us/massachusetts", + "name": "us/massachusetts", + "asset": "occumed-us--massachusetts.pmtiles", + "sizeBytes": 621391923, + "updatedAt": "2026-07-26T23:37:16Z" + }, + { + "id": "us/michigan", + "name": "us/michigan", + "asset": "occumed-us--michigan.pmtiles", + "sizeBytes": 1060905144, + "updatedAt": "2026-07-26T22:59:51Z" + }, + { + "id": "us/minnesota", + "name": "us/minnesota", + "asset": "occumed-us--minnesota.pmtiles", + "sizeBytes": 998989188, + "updatedAt": "2026-07-26T23:15:55Z" + }, + { + "id": "us/mississippi", + "name": "us/mississippi", + "asset": "occumed-us--mississippi.pmtiles", + "sizeBytes": 324290776, + "updatedAt": "2026-07-26T23:34:54Z" + }, + { + "id": "us/missouri", + "name": "us/missouri", + "asset": "occumed-us--missouri.pmtiles", + "sizeBytes": 722452692, + "updatedAt": "2026-07-26T23:04:06Z" + }, + { + "id": "us/montana", + "name": "us/montana", + "asset": "occumed-us--montana.pmtiles", + "sizeBytes": 579462611, + "updatedAt": "2026-07-26T23:19:19Z" + }, + { + "id": "us/nebraska", + "name": "us/nebraska", + "asset": "occumed-us--nebraska.pmtiles", + "sizeBytes": 408860584, + "updatedAt": "2026-07-26T23:33:32Z" + }, + { + "id": "us/nevada", + "name": "us/nevada", + "asset": "occumed-us--nevada.pmtiles", + "sizeBytes": 449053892, + "updatedAt": "2026-07-26T23:21:00Z" + }, + { + "id": "us/new-hampshire", + "name": "us/new-hampshire", + "asset": "occumed-us--new-hampshire.pmtiles", + "sizeBytes": 211827261, + "updatedAt": "2026-07-26T23:08:52Z" + }, + { + "id": "us/new-jersey", + "name": "us/new-jersey", + "asset": "occumed-us--new-jersey.pmtiles", + "sizeBytes": 424370825, + "updatedAt": "2026-07-26T23:53:38Z" + }, + { + "id": "us/new-mexico", + "name": "us/new-mexico", + "asset": "occumed-us--new-mexico.pmtiles", + "sizeBytes": 543224872, + "updatedAt": "2026-07-26T23:20:33Z" + }, + { + "id": "us/new-york--r1-c1", + "name": "us/new-york 1.1", + "asset": "occumed-us--new-york--r1-c1.pmtiles", + "sizeBytes": 93175287, + "updatedAt": "2026-07-26T23:11:38Z" + }, + { + "id": "us/new-york--r1-c2", + "name": "us/new-york 1.2", + "asset": "occumed-us--new-york--r1-c2.pmtiles", + "sizeBytes": 132966508, + "updatedAt": "2026-07-26T23:24:35Z" + }, + { + "id": "us/new-york--r1-c3", + "name": "us/new-york 1.3", + "asset": "occumed-us--new-york--r1-c3.pmtiles", + "sizeBytes": 538952154, + "updatedAt": "2026-07-26T23:02:10Z" + }, + { + "id": "us/new-york--r2-c1", + "name": "us/new-york 2.1", + "asset": "occumed-us--new-york--r2-c1.pmtiles", + "sizeBytes": 133238639, + "updatedAt": "2026-07-26T23:18:14Z" + }, + { + "id": "us/new-york--r2-c2", + "name": "us/new-york 2.2", + "asset": "occumed-us--new-york--r2-c2.pmtiles", + "sizeBytes": 199114357, + "updatedAt": "2026-07-26T23:52:36Z" + }, + { + "id": "us/new-york--r2-c3", + "name": "us/new-york 2.3", + "asset": "occumed-us--new-york--r2-c3.pmtiles", + "sizeBytes": 116987746, + "updatedAt": "2026-07-26T23:06:09Z" + }, + { + "id": "us/north-carolina--r1-c1", + "name": "us/north-carolina 1.1", + "asset": "occumed-us--north-carolina--r1-c1.pmtiles", + "sizeBytes": 174306401, + "updatedAt": "2026-07-26T23:44:52Z" + }, + { + "id": "us/north-carolina--r1-c2", + "name": "us/north-carolina 1.2", + "asset": "occumed-us--north-carolina--r1-c2.pmtiles", + "sizeBytes": 508525848, + "updatedAt": "2026-07-26T23:58:08Z" + }, + { + "id": "us/north-carolina--r1-c3", + "name": "us/north-carolina 1.3", + "asset": "occumed-us--north-carolina--r1-c3.pmtiles", + "sizeBytes": 440516276, + "updatedAt": "2026-07-26T23:01:37Z" + }, + { + "id": "us/north-carolina--r1-c4", + "name": "us/north-carolina 1.4", + "asset": "occumed-us--north-carolina--r1-c4.pmtiles", + "sizeBytes": 33062935, + "updatedAt": "2026-07-26T23:14:05Z" + }, + { + "id": "us/north-dakota", + "name": "us/north-dakota", + "asset": "occumed-us--north-dakota.pmtiles", + "sizeBytes": 428164197, + "updatedAt": "2026-07-26T23:34:30Z" + }, + { + "id": "us/ohio", + "name": "us/ohio", + "asset": "occumed-us--ohio.pmtiles", + "sizeBytes": 988500457, + "updatedAt": "2026-07-26T23:08:30Z" + }, + { + "id": "us/oklahoma", + "name": "us/oklahoma", + "asset": "occumed-us--oklahoma.pmtiles", + "sizeBytes": 524800208, + "updatedAt": "2026-07-26T23:47:40Z" + }, + { + "id": "us/oregon", + "name": "us/oregon", + "asset": "occumed-us--oregon.pmtiles", + "sizeBytes": 888158522, + "updatedAt": "2026-07-26T23:31:01Z" + }, + { + "id": "us/pennsylvania", + "name": "us/pennsylvania", + "asset": "occumed-us--pennsylvania.pmtiles", + "sizeBytes": 1020942644, + "updatedAt": "2026-07-26T23:02:44Z" + }, + { + "id": "us/puerto-rico", + "name": "us/puerto-rico", + "asset": "occumed-us--puerto-rico.pmtiles", + "sizeBytes": 183842936, + "updatedAt": "2026-07-26T23:49:02Z" + }, + { + "id": "us/rhode-island", + "name": "us/rhode-island", + "asset": "occumed-us--rhode-island.pmtiles", + "sizeBytes": 98428783, + "updatedAt": "2026-07-26T23:55:47Z" + }, + { + "id": "us/south-carolina", + "name": "us/south-carolina", + "asset": "occumed-us--south-carolina.pmtiles", + "sizeBytes": 511118008, + "updatedAt": "2026-07-26T23:02:35Z" + }, + { + "id": "us/south-dakota", + "name": "us/south-dakota", + "asset": "occumed-us--south-dakota.pmtiles", + "sizeBytes": 274891998, + "updatedAt": "2026-07-26T23:47:45Z" + }, + { + "id": "us/tennessee", + "name": "us/tennessee", + "asset": "occumed-us--tennessee.pmtiles", + "sizeBytes": 585896165, + "updatedAt": "2026-07-26T23:53:18Z" + }, + { + "id": "us/texas--r1-c1", + "name": "us/texas 1.1", + "asset": "occumed-us--texas--r1-c1.pmtiles", + "sizeBytes": 48602850, + "updatedAt": "2026-07-26T23:21:17Z" + }, + { + "id": "us/texas--r1-c2", + "name": "us/texas 1.2", + "asset": "occumed-us--texas--r1-c2.pmtiles", + "sizeBytes": 512394257, + "updatedAt": "2026-07-26T23:49:09Z" + }, + { + "id": "us/texas--r1-c3", + "name": "us/texas 1.3", + "asset": "occumed-us--texas--r1-c3.pmtiles", + "sizeBytes": 520946786, + "updatedAt": "2026-07-26T23:53:19Z" + }, + { + "id": "us/texas--r2-c1", + "name": "us/texas 2.1", + "asset": "occumed-us--texas--r2-c1.pmtiles", + "sizeBytes": 122811780, + "updatedAt": "2026-07-26T23:20:35Z" + }, + { + "id": "us/texas--r2-c2", + "name": "us/texas 2.2", + "asset": "occumed-us--texas--r2-c2.pmtiles", + "sizeBytes": 352444135, + "updatedAt": "2026-07-26T23:47:00Z" + }, + { + "id": "us/texas--r2-c3", + "name": "us/texas 2.3", + "asset": "occumed-us--texas--r2-c3.pmtiles", + "sizeBytes": 687808727, + "updatedAt": "2026-07-26T23:45:08Z" + }, + { + "id": "us/us-virgin-islands", + "name": "us/us-virgin-islands", + "asset": "occumed-us--us-virgin-islands.pmtiles", + "sizeBytes": 8293707, + "updatedAt": "2026-07-26T23:21:38Z" + }, + { + "id": "us/utah", + "name": "us/utah", + "asset": "occumed-us--utah.pmtiles", + "sizeBytes": 532092083, + "updatedAt": "2026-07-26T23:11:45Z" + }, + { + "id": "us/vermont", + "name": "us/vermont", + "asset": "occumed-us--vermont.pmtiles", + "sizeBytes": 158710777, + "updatedAt": "2026-07-26T23:55:49Z" + }, + { + "id": "us/virginia--r1-c1", + "name": "us/virginia 1.1", + "asset": "occumed-us--virginia--r1-c1.pmtiles", + "sizeBytes": 61875024, + "updatedAt": "2026-07-26T22:57:53Z" + }, + { + "id": "us/virginia--r1-c2", + "name": "us/virginia 1.2", + "asset": "occumed-us--virginia--r1-c2.pmtiles", + "sizeBytes": 224906178, + "updatedAt": "2026-07-26T23:16:14Z" + }, + { + "id": "us/virginia--r1-c3", + "name": "us/virginia 1.3", + "asset": "occumed-us--virginia--r1-c3.pmtiles", + "sizeBytes": 596703712, + "updatedAt": "2026-07-26T23:27:35Z" + }, + { + "id": "us/virginia--r1-c4", + "name": "us/virginia 1.4", + "asset": "occumed-us--virginia--r1-c4.pmtiles", + "sizeBytes": 153086768, + "updatedAt": "2026-07-26T23:07:30Z" + }, + { + "id": "us/washington", + "name": "us/washington", + "asset": "occumed-us--washington.pmtiles", + "sizeBytes": 1118946563, + "updatedAt": "2026-07-26T23:22:35Z" + }, + { + "id": "us/west-virginia", + "name": "us/west-virginia", + "asset": "occumed-us--west-virginia.pmtiles", + "sizeBytes": 381911513, + "updatedAt": "2026-07-26T23:56:40Z" + }, + { + "id": "us/wisconsin", + "name": "us/wisconsin", + "asset": "occumed-us--wisconsin.pmtiles", + "sizeBytes": 936528516, + "updatedAt": "2026-07-26T23:01:44Z" + }, + { + "id": "us/wyoming", + "name": "us/wyoming", + "asset": "occumed-us--wyoming.pmtiles", + "sizeBytes": 436478159, + "updatedAt": "2026-07-26T23:48:46Z" + }, + { + "id": "ustecky", + "name": "Ústecký kraj", + "asset": "occumed-ustecky.pmtiles", + "sizeBytes": 233028450, + "updatedAt": "2026-07-26T23:55:49Z" + }, + { + "id": "utrecht", + "name": "Utrecht", + "asset": "occumed-utrecht.pmtiles", + "sizeBytes": 143842531, + "updatedAt": "2026-07-26T22:58:24Z" + }, + { + "id": "uzbekistan", + "name": "Uzbekistan", + "asset": "occumed-uzbekistan.pmtiles", + "sizeBytes": 537276670, + "updatedAt": "2026-07-26T23:16:00Z" + }, + { + "id": "valencia", + "name": "Valencia", + "asset": "occumed-valencia.pmtiles", + "sizeBytes": 330128479, + "updatedAt": "2026-07-26T23:41:14Z" + }, + { + "id": "vanuatu", + "name": "Vanuatu", + "asset": "occumed-vanuatu.pmtiles", + "sizeBytes": 22128415, + "updatedAt": "2026-07-26T23:19:26Z" + }, + { + "id": "venezuela", + "name": "Venezuela", + "asset": "occumed-venezuela.pmtiles", + "sizeBytes": 564850377, + "updatedAt": "2026-07-26T23:15:37Z" + }, + { + "id": "vestlandet", + "name": "Vestlandet
(Western Norway)", + "asset": "occumed-vestlandet.pmtiles", + "sizeBytes": 800081465, + "updatedAt": "2026-07-26T23:55:10Z" + }, + { + "id": "victoria", + "name": "Victoria", + "asset": "occumed-victoria.pmtiles", + "sizeBytes": 817304230, + "updatedAt": "2026-07-27T00:02:54Z" + }, + { + "id": "vietnam", + "name": "Vietnam", + "asset": "occumed-vietnam.pmtiles", + "sizeBytes": 1034177607, + "updatedAt": "2026-07-27T00:11:01Z" + }, + { + "id": "volga-fed-district--r1-c1", + "name": "Volga Federal District 1.1", + "asset": "occumed-volga-fed-district--r1-c1.pmtiles", + "sizeBytes": 1137461773, + "updatedAt": "2026-07-27T00:15:56Z" + }, + { + "id": "volga-fed-district--r1-c2", + "name": "Volga Federal District 1.2", + "asset": "occumed-volga-fed-district--r1-c2.pmtiles", + "sizeBytes": 790654691, + "updatedAt": "2026-07-27T00:08:35Z" + }, + { + "id": "volga-fed-district--r2-c1", + "name": "Volga Federal District 2.1", + "asset": "occumed-volga-fed-district--r2-c1.pmtiles", + "sizeBytes": 1017057584, + "updatedAt": "2026-07-27T00:15:45Z" + }, + { + "id": "volga-fed-district--r2-c2", + "name": "Volga Federal District 2.2", + "asset": "occumed-volga-fed-district--r2-c2.pmtiles", + "sizeBytes": 822849651, + "updatedAt": "2026-07-27T00:16:06Z" + }, + { + "id": "vysocina", + "name": "Kraj Vysočina", + "asset": "occumed-vysocina.pmtiles", + "sizeBytes": 169257561, + "updatedAt": "2026-07-27T00:01:33Z" + }, + { + "id": "wales", + "name": "Wales", + "asset": "occumed-wales.pmtiles", + "sizeBytes": 369586839, + "updatedAt": "2026-07-27T00:10:53Z" + }, + { + "id": "wallis-et-futuna", + "name": "Wallis et Futuna", + "asset": "occumed-wallis-et-futuna.pmtiles", + "sizeBytes": 1955492, + "updatedAt": "2026-07-27T00:13:37Z" + }, + { + "id": "warminsko-mazurskie", + "name": "Województwo warmińsko-mazurskie
(Warmian-Masurian Voivodeship)", + "asset": "occumed-warminsko-mazurskie.pmtiles", + "sizeBytes": 294546839, + "updatedAt": "2026-07-27T00:02:33Z" + }, + { + "id": "warwickshire", + "name": "Warwickshire", + "asset": "occumed-warwickshire.pmtiles", + "sizeBytes": 61403374, + "updatedAt": "2026-07-27T00:08:07Z" + }, + { + "id": "west-midlands", + "name": "West Midlands", + "asset": "occumed-west-midlands.pmtiles", + "sizeBytes": 118780412, + "updatedAt": "2026-07-27T00:10:48Z" + }, + { + "id": "west-sussex", + "name": "West Sussex", + "asset": "occumed-west-sussex.pmtiles", + "sizeBytes": 92007099, + "updatedAt": "2026-07-26T23:57:09Z" + }, + { + "id": "west-yorkshire", + "name": "West Yorkshire", + "asset": "occumed-west-yorkshire.pmtiles", + "sizeBytes": 121188148, + "updatedAt": "2026-07-27T00:05:49Z" + }, + { + "id": "western-australia", + "name": "Western Australia", + "asset": "occumed-western-australia.pmtiles", + "sizeBytes": 640500256, + "updatedAt": "2026-07-27T00:12:47Z" + }, + { + "id": "western-zone", + "name": "Western Zone", + "asset": "occumed-western-zone.pmtiles", + "sizeBytes": 873623871, + "updatedAt": "2026-07-27T00:01:29Z" + }, + { + "id": "wielkopolskie", + "name": "Województwo wielkopolskie
(Greater Poland Voivodeship)", + "asset": "occumed-wielkopolskie.pmtiles", + "sizeBytes": 443561175, + "updatedAt": "2026-07-27T00:06:42Z" + }, + { + "id": "wiltshire", + "name": "Wiltshire", + "asset": "occumed-wiltshire.pmtiles", + "sizeBytes": 82812268, + "updatedAt": "2026-07-27T00:09:16Z" + }, + { + "id": "worcestershire", + "name": "Worcestershire", + "asset": "occumed-worcestershire.pmtiles", + "sizeBytes": 55616061, + "updatedAt": "2026-07-26T23:59:30Z" + }, + { + "id": "xinjiang", + "name": "Xinjiang", + "asset": "occumed-xinjiang.pmtiles", + "sizeBytes": 456260249, + "updatedAt": "2026-07-27T00:03:28Z" + }, + { + "id": "yemen", + "name": "Yemen", + "asset": "occumed-yemen.pmtiles", + "sizeBytes": 212614904, + "updatedAt": "2026-07-27T00:15:19Z" + }, + { + "id": "yukon", + "name": "Yukon", + "asset": "occumed-yukon.pmtiles", + "sizeBytes": 469416445, + "updatedAt": "2026-07-26T23:59:33Z" + }, + { + "id": "yunnan", + "name": "Yunnan", + "asset": "occumed-yunnan.pmtiles", + "sizeBytes": 455761758, + "updatedAt": "2026-07-27T00:05:41Z" + }, + { + "id": "zachodniopomorskie", + "name": "Województwo zachodniopomorskie
(West Pomeranian Voivodeship)", + "asset": "occumed-zachodniopomorskie.pmtiles", + "sizeBytes": 282623860, + "updatedAt": "2026-07-27T00:09:40Z" + }, + { + "id": "zambia", + "name": "Zambia", + "asset": "occumed-zambia.pmtiles", + "sizeBytes": 783872123, + "updatedAt": "2026-07-26T23:59:29Z" + }, + { + "id": "zeeland", + "name": "Zeeland", + "asset": "occumed-zeeland.pmtiles", + "sizeBytes": 84693068, + "updatedAt": "2026-07-27T00:04:15Z" + }, + { + "id": "zhejiang", + "name": "Zhejiang", + "asset": "occumed-zhejiang.pmtiles", + "sizeBytes": 400490426, + "updatedAt": "2026-07-27T00:10:40Z" + }, + { + "id": "zimbabwe", + "name": "Zimbabwe", + "asset": "occumed-zimbabwe.pmtiles", + "sizeBytes": 515719565, + "updatedAt": "2026-07-27T00:03:47Z" + }, + { + "id": "zlinsky", + "name": "Zlínský kraj", + "asset": "occumed-zlinsky.pmtiles", + "sizeBytes": 108227633, + "updatedAt": "2026-07-27T00:06:43Z" + }, + { + "id": "zuid-holland", + "name": "Zuid-Holland", + "asset": "occumed-zuid-holland.pmtiles", + "sizeBytes": 318280575, + "updatedAt": "2026-07-27T00:28:28Z" + } + ], + "missingRegions": [ + { + "id": "enfield", + "name": "Enfield", + "asset": "occumed-enfield.pmtiles" + }, + { + "id": "far-eastern-fed-district", + "name": "Far Eastern Federal District", + "asset": "occumed-far-eastern-fed-district.pmtiles" + }, + { + "id": "northwestern-fed-district--r1-c1", + "name": "Northwestern Federal District 1.1", + "asset": "occumed-northwestern-fed-district--r1-c1.pmtiles" + }, + { + "id": "siberian-fed-district--r1-c1", + "name": "Siberian Federal District 1.1", + "asset": "occumed-siberian-fed-district--r1-c1.pmtiles" + }, + { + "id": "ural-fed-district", + "name": "Ural Federal District", + "asset": "occumed-ural-fed-district.pmtiles" + } + ], + "zeroSizePublished": [], + "extraPmtilesAssets": [ + { + "id": 490734101, + "name": "occumed-nepal.pmtiles", + "sizeBytes": 1135340946, + "updatedAt": "2026-07-26T22:12:35Z" + }, + { + "id": 490741465, + "name": "occumed-niedersachsen.pmtiles", + "sizeBytes": 1329145080, + "updatedAt": "2026-07-26T22:24:59Z" + }, + { + "id": 490790186, + "name": "occumed-norcal.pmtiles", + "sizeBytes": 1553037489, + "updatedAt": "2026-07-26T23:35:48Z" + }, + { + "id": 490729336, + "name": "occumed-nord-est.pmtiles", + "sizeBytes": 1453480826, + "updatedAt": "2026-07-26T22:04:21Z" + }, + { + "id": 490729271, + "name": "occumed-nord-norge.pmtiles", + "sizeBytes": 1397214689, + "updatedAt": "2026-07-26T22:03:52Z" + }, + { + "id": 490792193, + "name": "occumed-nord-ovest.pmtiles", + "sizeBytes": 1373953425, + "updatedAt": "2026-07-26T23:38:16Z" + }, + { + "id": 490789368, + "name": "occumed-nordeste.pmtiles", + "sizeBytes": 1792024852, + "updatedAt": "2026-07-26T23:34:25Z" + }, + { + "id": 490805331, + "name": "occumed-north-admreg.pmtiles", + "sizeBytes": 1930881790, + "updatedAt": "2026-07-26T23:59:19Z" + }, + { + "id": 490848061, + "name": "occumed-ostlandet.pmtiles", + "sizeBytes": 1477093463, + "updatedAt": "2026-07-27T00:56:18Z" + }, + { + "id": 490823377, + "name": "occumed-philippines.pmtiles", + "sizeBytes": 1531209430, + "updatedAt": "2026-07-27T00:21:59Z" + }, + { + "id": 490837189, + "name": "occumed-rhone-alpes.pmtiles", + "sizeBytes": 1130459370, + "updatedAt": "2026-07-27T00:40:55Z" + }, + { + "id": 490862960, + "name": "occumed-socal.pmtiles", + "sizeBytes": 1290160189, + "updatedAt": "2026-07-27T01:17:05Z" + }, + { + "id": 490814436, + "name": "occumed-south-africa-and-lesotho.pmtiles", + "sizeBytes": 1870236853, + "updatedAt": "2026-07-27T00:11:36Z" + }, + { + "id": 490832285, + "name": "occumed-south-africa.pmtiles", + "sizeBytes": 1598030218, + "updatedAt": "2026-07-27T00:33:28Z" + }, + { + "id": 490848840, + "name": "occumed-southern-zone.pmtiles", + "sizeBytes": 1868776366, + "updatedAt": "2026-07-27T00:58:01Z" + }, + { + "id": 490833178, + "name": "occumed-sud.pmtiles", + "sizeBytes": 1029465184, + "updatedAt": "2026-07-27T00:34:20Z" + }, + { + "id": 490861388, + "name": "occumed-tanzania.pmtiles", + "sizeBytes": 1680410619, + "updatedAt": "2026-07-27T01:15:12Z" + } + ] +} diff --git a/diagnostics/world-release-types.trigger b/diagnostics/world-release-types.trigger new file mode 100644 index 00000000..2f715cdf --- /dev/null +++ b/diagnostics/world-release-types.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-26T21:46:00Z +purpose=classify_all_non_pmtiles_assets_before_cleanup_or_repair diff --git a/diagnostics/world-repair-failure-analysis/summary.json b/diagnostics/world-repair-failure-analysis/summary.json new file mode 100644 index 00000000..f5ef6faf --- /dev/null +++ b/diagnostics/world-repair-failure-analysis/summary.json @@ -0,0 +1,114 @@ +{ + "capturedAt": "2026-07-26T21:20:26.181Z", + "runId": "30214445296", + "failedShardCount": 414, + "categories": [ + { + "category": "github_release_upload", + "count": 409, + "samples": [ + { + "id": 89826326886, + "name": "build-bucket-2 (austria--r2-c2, austria--r2-c2, Austria 2.2, europe, https://download.geofabrik.d...", + "errorLines": [ + "2026-07-26T18:29:19.7405998Z \u001b[m\u001b[0m0:01:46 INF [archive] - data errors:", + "2026-07-26T18:29:21.6379714Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-austria--r2-c2.pmtiles)", + "2026-07-26T18:29:21.6422069Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826326900, + "name": "build-bucket-2 (argentina--r1-c1, argentina--r1-c1, Argentina 1.1, south-america, https://downloa...", + "errorLines": [ + "2026-07-26T18:30:04.3914545Z \u001b[m\u001b[0m0:01:12 INF [archive] - data errors:", + "2026-07-26T18:30:08.9506267Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-argentina--r1-c1.pmtiles)", + "2026-07-26T18:30:08.9531116Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826326961, + "name": "build-bucket-2 (belgium--r1-c2, belgium--r1-c2, Belgium 1.2, europe, https://download.geofabrik.d...", + "errorLines": [ + "2026-07-26T18:36:52.0351257Z \u001b[m\u001b[0m0:01:08 INF [archive] - data errors:", + "2026-07-26T18:36:53.9393686Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-belgium--r1-c2.pmtiles)", + "2026-07-26T18:36:53.9424989Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826326996, + "name": "build-bucket-2 (central-fed-district--r2-c2, central-fed-district--r2-c2, Central Federal Distric...", + "errorLines": [ + "2026-07-26T18:47:00.3366702Z \u001b[m\u001b[0m0:02:20 INF [archive] - data errors:", + "2026-07-26T18:47:04.0861189Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-central-fed-district--r2-c2.pmtiles)", + "2026-07-26T18:47:04.0887053Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826327007, + "name": "build-bucket-2 (denmark--r2-c3, denmark--r2-c3, Denmark 2.3, europe, https://download.geofabrik.d...", + "errorLines": [ + "2026-07-26T18:36:33.4633930Z \u001b[m\u001b[0m0:00:02 INF [archive] - data errors:", + "2026-07-26T18:36:34.8945185Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-denmark--r2-c3.pmtiles)", + "2026-07-26T18:36:34.8978303Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826327031, + "name": "build-bucket-2 (chubu--r1-c1, chubu--r1-c1, Chūbu region 1.1, asia, https://download.geofabrik.d...", + "errorLines": [ + "2026-07-26T18:39:35.3853128Z \u001b[m\u001b[0m0:02:17 INF [archive] - data errors:", + "2026-07-26T18:41:37.6339554Z HTTP 422: Validation Failed (https://uploads.github.com/repos/Occumed79/Map/releases/359982973/assets?label=&name=occumed-chubu--r1-c1.pmtiles)", + "2026-07-26T18:41:37.6374580Z ##[error]Process completed with exit code 1." + ] + } + ] + }, + { + "category": "published_range_verification", + "count": 5, + "samples": [ + { + "id": 89826327220, + "name": "build-bucket-3 (far-eastern-fed-district, far-eastern-fed-district, Far Eastern Federal District,...", + "errorLines": [ + "2026-07-26T19:08:31.8953766Z \u001b[m\u001b[0m0:09:08 INF [archive] - data errors:", + "2026-07-26T19:08:34.8614137Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826327363, + "name": "build-bucket-1 (enfield, enfield, Enfield, europe, https://download.geofabrik.de/europe/united-ki...", + "errorLines": [ + "2026-07-26T18:53:38.8235140Z \u001b[m\u001b[0m0:00:01 DEB - argument: log_jts_exceptions=false (Emit verbose details to debug JTS geometry errors)", + "2026-07-26T18:53:39.3719455Z Exception in thread \"main\" java.lang.IllegalArgumentException: Header longer than 64 KiB", + "2026-07-26T18:53:39.4754932Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826328562, + "name": "build-bucket-0 (ural-fed-district, ural-fed-district, Ural Federal District, ural-fed-district, h...", + "errorLines": [ + "2026-07-26T19:39:14.8120004Z \u001b[m\u001b[0m0:05:54 INF [archive] - data errors:", + "2026-07-26T19:39:18.3863999Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826328623, + "name": "build-bucket-4 (northwestern-fed-district--r1-c1, northwestern-fed-district--r1-c1, Northwestern ...", + "errorLines": [ + "2026-07-26T20:05:52.9305474Z \u001b[m\u001b[0m0:08:01 INF [archive] - data errors:", + "2026-07-26T20:05:56.6292722Z ##[error]Process completed with exit code 1." + ] + }, + { + "id": 89826328773, + "name": "build-bucket-4 (siberian-fed-district--r1-c1, siberian-fed-district--r1-c1, Siberian Federal Dist...", + "errorLines": [ + "2026-07-26T20:04:05.0999818Z \u001b[m\u001b[0m0:08:08 INF [archive] - data errors:", + "2026-07-26T20:04:09.2763791Z ##[error]Process completed with exit code 1." + ] + } + ] + } + ] +} diff --git a/diagnostics/world-repair-live-percentage.json b/diagnostics/world-repair-live-percentage.json new file mode 100644 index 00000000..5f4866df --- /dev/null +++ b/diagnostics/world-repair-live-percentage.json @@ -0,0 +1,1674 @@ +{ + "capturedAt": "2026-07-26T21:13:29.311Z", + "runId": "30214445296", + "runUrl": "https://github.com/Occumed79/Map/actions/runs/30214445296", + "runStatus": "completed", + "runConclusion": "failure", + "totalShardJobs": 724, + "successfulShardJobs": 310, + "failedShardJobs": 414, + "cancelledShardJobs": 0, + "skippedShardJobs": 0, + "inProgressShardJobs": 0, + "queuedShardJobs": 0, + "nonFailedTarget": 310, + "completionPercentageExcludingFailures": 100, + "failures": [ + { + "id": 89826326886, + "name": "build-bucket-2 (austria--r2-c2, austria--r2-c2, Austria 2.2, europe, https://download.geofabrik.d..." + }, + { + "id": 89826326900, + "name": "build-bucket-2 (argentina--r1-c1, argentina--r1-c1, Argentina 1.1, south-america, https://downloa..." + }, + { + "id": 89826326961, + "name": "build-bucket-2 (belgium--r1-c2, belgium--r1-c2, Belgium 1.2, europe, https://download.geofabrik.d..." + }, + { + "id": 89826326996, + "name": "build-bucket-2 (central-fed-district--r2-c2, central-fed-district--r2-c2, Central Federal Distric..." + }, + { + "id": 89826327007, + "name": "build-bucket-2 (denmark--r2-c3, denmark--r2-c3, Denmark 2.3, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327031, + "name": "build-bucket-2 (chubu--r1-c1, chubu--r1-c1, Chūbu region 1.1, asia, https://download.geofabrik.d..." + }, + { + "id": 89826327035, + "name": "build-bucket-2 (congo-democratic-republic--r2-c1, congo-democratic-republic--r2-c1, Congo (Democr..." + }, + { + "id": 89826327047, + "name": "build-bucket-2 (finland--r2-c1, finland--r2-c1, Finland 2.1, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327076, + "name": "build-bucket-2 (ireland-and-northern-ireland--r1-c1, ireland-and-northern-ireland--r1-c1, Ireland..." + }, + { + "id": 89826327095, + "name": "build-bucket-2 (kitikmeot--r2-c1, kitikmeot--r2-c1, Kitikmeot Region 2.1, north-america, https://..." + }, + { + "id": 89826327096, + "name": "build-bucket-2 (kanto--r2-c1, kanto--r2-c1, Kantō region 2.1, asia, https://download.geofabrik.d..." + }, + { + "id": 89826327129, + "name": "build-bucket-2 (norcal--r2-c2, norcal--r2-c2, Northern California 2.2, north-america, https://dow..." + }, + { + "id": 89826327140, + "name": "build-bucket-2 (new-zealand--r1-c1, new-zealand--r1-c1, New Zealand 1.1, australia-oceania, https..." + }, + { + "id": 89826327142, + "name": "build-bucket-2 (nepal--r2-c1, nepal--r2-c1, Nepal 2.1, asia, https://download.geofabrik.de/asia/n..." + }, + { + "id": 89826327143, + "name": "build-bucket-2 (nigeria--r1-c3, nigeria--r1-c3, Nigeria 1.3, africa, https://download.geofabrik.d..." + }, + { + "id": 89826327146, + "name": "build-bucket-2 (nord-norge--r1-c1, nord-norge--r1-c1, Nord-Norge
(Northern Norway) 1.1, euro..." + }, + { + "id": 89826327160, + "name": "build-bucket-2 (niedersachsen--r2-c1, niedersachsen--r2-c1, Niedersachsen (mit Bremen) 2.1, europ..." + }, + { + "id": 89826327170, + "name": "build-bucket-3 (belgium--r1-c3, belgium--r1-c3, Belgium 1.3, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327180, + "name": "build-bucket-2 (nord-ovest--r1-c1, nord-ovest--r1-c1, Nord-Ovest 1.1, europe, https://download.ge..." + }, + { + "id": 89826327190, + "name": "build-bucket-2 (mexico--r1-c2, mexico--r1-c2, Mexico 1.2, north-america, https://download.geofabr..." + }, + { + "id": 89826327201, + "name": "build-bucket-3 (chubu--r1-c2, chubu--r1-c2, Chūbu region 1.2, asia, https://download.geofabrik.d..." + }, + { + "id": 89826327202, + "name": "build-bucket-2 (kivalliq--r2-c1, kivalliq--r2-c1, Kivalliq Region 2.1, north-america, https://dow..." + }, + { + "id": 89826327211, + "name": "build-bucket-3 (argentina--r1-c2, argentina--r1-c2, Argentina 1.2, south-america, https://downloa..." + }, + { + "id": 89826327212, + "name": "build-bucket-3 (austria--r2-c3, austria--r2-c3, Austria 2.3, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327220, + "name": "build-bucket-3 (far-eastern-fed-district, far-eastern-fed-district, Far Eastern Federal District,..." + }, + { + "id": 89826327222, + "name": "build-bucket-3 (congo-democratic-republic--r2-c2, congo-democratic-republic--r2-c2, Congo (Democr..." + }, + { + "id": 89826327252, + "name": "build-bucket-3 (kanto--r2-c2, kanto--r2-c2, Kantō region 2.2, asia, https://download.geofabrik.d..." + }, + { + "id": 89826327255, + "name": "build-bucket-3 (kivalliq--r2-c2, kivalliq--r2-c2, Kivalliq Region 2.2, north-america, https://dow..." + }, + { + "id": 89826327257, + "name": "build-bucket-3 (kitikmeot--r2-c2, kitikmeot--r2-c2, Kitikmeot Region 2.2, north-america, https://..." + }, + { + "id": 89826327268, + "name": "build-bucket-3 (finland--r2-c2, finland--r2-c2, Finland 2.2, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327274, + "name": "build-bucket-3 (ireland-and-northern-ireland--r1-c2, ireland-and-northern-ireland--r1-c2, Ireland..." + }, + { + "id": 89826327276, + "name": "build-bucket-3 (denmark--r1-c1, denmark--r1-c1, Denmark 1.1, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327294, + "name": "build-bucket-3 (new-zealand--r1-c2-s1, new-zealand--r1-c2-s1, New Zealand 1.2-s1, australia-ocean..." + }, + { + "id": 89826327300, + "name": "build-bucket-3 (niedersachsen--r2-c2, niedersachsen--r2-c2, Niedersachsen (mit Bremen) 2.2, europ..." + }, + { + "id": 89826327310, + "name": "build-bucket-3 (mexico--r1-c3, mexico--r1-c3, Mexico 1.3, north-america, https://download.geofabr..." + }, + { + "id": 89826327317, + "name": "build-bucket-3 (nepal--r2-c2, nepal--r2-c2, Nepal 2.2, asia, https://download.geofabrik.de/asia/n..." + }, + { + "id": 89826327325, + "name": "build-bucket-3 (norcal--r2-c3, norcal--r2-c3, Northern California 2.3, north-america, https://dow..." + }, + { + "id": 89826327335, + "name": "build-bucket-3 (nord-ovest--r1-c2, nord-ovest--r1-c2, Nord-Ovest 1.2, europe, https://download.ge..." + }, + { + "id": 89826327337, + "name": "build-bucket-3 (nigeria--r2-c1, nigeria--r2-c1, Nigeria 2.1, africa, https://download.geofabrik.d..." + }, + { + "id": 89826327343, + "name": "build-bucket-3 (java--r1-c2, java--r1-c2, Java 1.2, asia, https://download.geofabrik.de/asia/indo..." + }, + { + "id": 89826327350, + "name": "build-bucket-3 (nord-norge--r1-c2, nord-norge--r1-c2, Nord-Norge
(Northern Norway) 1.2, euro..." + }, + { + "id": 89826327361, + "name": "build-bucket-1 (central-fed-district--r2-c1, central-fed-district--r2-c1, Central Federal Distric..." + }, + { + "id": 89826327362, + "name": "build-bucket-1 (congo-democratic-republic--r1-c3, congo-democratic-republic--r1-c3, Congo (Democr..." + }, + { + "id": 89826327363, + "name": "build-bucket-1 (enfield, enfield, Enfield, europe, https://download.geofabrik.de/europe/united-ki..." + }, + { + "id": 89826327387, + "name": "build-bucket-3 (nordeste--r1-c1, nordeste--r1-c1, Nordeste 1.1, south-america, https://download.g..." + }, + { + "id": 89826327393, + "name": "build-bucket-1 (austria--r2-c1, austria--r2-c1, Austria 2.1, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327403, + "name": "build-bucket-1 (denmark--r2-c2, denmark--r2-c2, Denmark 2.2, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327408, + "name": "build-bucket-1 (finland--r1-c2, finland--r1-c2, Finland 1.2, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327428, + "name": "build-bucket-1 (kivalliq--r1-c3, kivalliq--r1-c3, Kivalliq Region 1.3, north-america, https://dow..." + }, + { + "id": 89826327430, + "name": "build-bucket-1 (kitikmeot--r1-c3, kitikmeot--r1-c3, Kitikmeot Region 1.3, north-america, https://..." + }, + { + "id": 89826327438, + "name": "build-bucket-1 (java--r2-c3, java--r2-c3, Java 2.3, asia, https://download.geofabrik.de/asia/indo..." + }, + { + "id": 89826327456, + "name": "build-bucket-1 (kanto--r1-c3, kanto--r1-c3, Kantō region 1.3, asia, https://download.geofabrik.d..." + }, + { + "id": 89826327460, + "name": "build-bucket-1 (mexico--r1-c1, mexico--r1-c1, Mexico 1.1, north-america, https://download.geofabr..." + }, + { + "id": 89826327462, + "name": "build-bucket-1 (belgium--r1-c1, belgium--r1-c1, Belgium 1.1, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327464, + "name": "build-bucket-1 (new-zealand--r2-c2-s2, new-zealand--r2-c2-s2, New Zealand 2.2-s2, australia-ocean..." + }, + { + "id": 89826327469, + "name": "build-bucket-1 (myanmar, myanmar, Myanmar (a.k.a. Burma), asia, https://download.geofabrik.de/asi..." + }, + { + "id": 89826327477, + "name": "build-bucket-1 (niedersachsen--r1-c3, niedersachsen--r1-c3, Niedersachsen (mit Bremen) 1.3, europ..." + }, + { + "id": 89826327480, + "name": "build-bucket-1 (nepal--r1-c3, nepal--r1-c3, Nepal 1.3, asia, https://download.geofabrik.de/asia/n..." + }, + { + "id": 89826327496, + "name": "build-bucket-1 (nord-norge--r2-c3, nord-norge--r2-c3, Nord-Norge
(Northern Norway) 2.3, euro..." + }, + { + "id": 89826327499, + "name": "build-bucket-1 (nigeria--r1-c2, nigeria--r1-c2, Nigeria 1.2, africa, https://download.geofabrik.d..." + }, + { + "id": 89826327501, + "name": "build-bucket-1 (nord-ovest--r2-c3, nord-ovest--r2-c3, Nord-Ovest 2.3, europe, https://download.ge..." + }, + { + "id": 89826327508, + "name": "build-bucket-5 (argentina--r2-c2, argentina--r2-c2, Argentina 2.2, south-america, https://downloa..." + }, + { + "id": 89826327539, + "name": "build-bucket-5 (austria--r1-c2, austria--r1-c2, Austria 1.2, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327549, + "name": "build-bucket-5 (central-fed-district--r1-c1, central-fed-district--r1-c1, Central Federal Distric..." + }, + { + "id": 89826327580, + "name": "build-bucket-5 (denmark--r1-c3, denmark--r1-c3, Denmark 1.3, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327581, + "name": "build-bucket-1 (norcal--r2-c1, norcal--r2-c1, Northern California 2.1, north-america, https://dow..." + }, + { + "id": 89826327588, + "name": "build-bucket-5 (congo-democratic-republic--r1-c1, congo-democratic-republic--r1-c1, Congo (Democr..." + }, + { + "id": 89826327620, + "name": "build-bucket-5 (belgium--r2-c2, belgium--r2-c2, Belgium 2.2, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327671, + "name": "build-bucket-5 (ireland-and-northern-ireland--r2-c2, ireland-and-northern-ireland--r2-c2, Ireland..." + }, + { + "id": 89826327685, + "name": "build-bucket-5 (kanto--r1-c1, kanto--r1-c1, Kantō region 1.1, asia, https://download.geofabrik.d..." + }, + { + "id": 89826327687, + "name": "build-bucket-5 (kitikmeot--r1-c1, kitikmeot--r1-c1, Kitikmeot Region 1.1, north-america, https://..." + }, + { + "id": 89826327693, + "name": "build-bucket-5 (kivalliq--r1-c1, kivalliq--r1-c1, Kivalliq Region 1.1, north-america, https://dow..." + }, + { + "id": 89826327713, + "name": "build-bucket-5 (java--r2-c1, java--r2-c1, Java 2.1, asia, https://download.geofabrik.de/asia/indo..." + }, + { + "id": 89826327750, + "name": "build-bucket-5 (mexico--r2-c2, mexico--r2-c2, Mexico 2.2, north-america, https://download.geofabr..." + }, + { + "id": 89826327807, + "name": "build-bucket-5 (nepal--r1-c1, nepal--r1-c1, Nepal 1.1, asia, https://download.geofabrik.de/asia/n..." + }, + { + "id": 89826327808, + "name": "build-bucket-5 (new-zealand--r2-c1, new-zealand--r2-c1, New Zealand 2.1, australia-oceania, https..." + }, + { + "id": 89826327809, + "name": "build-bucket-5 (niedersachsen--r1-c1, niedersachsen--r1-c1, Niedersachsen (mit Bremen) 1.1, europ..." + }, + { + "id": 89826327833, + "name": "build-bucket-5 (norcal--r1-c2, norcal--r1-c2, Northern California 1.2, north-america, https://dow..." + }, + { + "id": 89826327843, + "name": "build-bucket-5 (nigeria--r2-c3, nigeria--r2-c3, Nigeria 2.3, africa, https://download.geofabrik.d..." + }, + { + "id": 89826327849, + "name": "build-bucket-5 (nord-norge--r2-c1, nord-norge--r2-c1, Nord-Norge
(Northern Norway) 2.1, euro..." + }, + { + "id": 89826327880, + "name": "build-bucket-5 (nord-est--r1-c2, nord-est--r1-c2, Nord-Est 1.2, europe, https://download.geofabri..." + }, + { + "id": 89826327888, + "name": "build-bucket-5 (nord-ovest--r2-c1, nord-ovest--r2-c1, Nord-Ovest 2.1, europe, https://download.ge..." + }, + { + "id": 89826327900, + "name": "build-bucket-5 (nordeste--r2-c1, nordeste--r2-c1, Nordeste 2.1, south-america, https://download.g..." + }, + { + "id": 89826327904, + "name": "build-bucket-2 (java--r1-c1, java--r1-c1, Java 1.1, asia, https://download.geofabrik.de/asia/indo..." + }, + { + "id": 89826327946, + "name": "build-bucket-0 (austria--r1-c3, austria--r1-c3, Austria 1.3, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327952, + "name": "build-bucket-0 (belgium--r2-c3, belgium--r2-c3, Belgium 2.3, europe, https://download.geofabrik.d..." + }, + { + "id": 89826327976, + "name": "build-bucket-0 (central-fed-district--r1-c2, central-fed-district--r1-c2, Central Federal Distric..." + }, + { + "id": 89826327979, + "name": "build-bucket-0 (congo-democratic-republic--r1-c2, congo-democratic-republic--r1-c2, Congo (Democr..." + }, + { + "id": 89826327996, + "name": "build-bucket-0 (denmark--r2-c1, denmark--r2-c1, Denmark 2.1, europe, https://download.geofabrik.d..." + }, + { + "id": 89826328045, + "name": "build-bucket-0 (finland--r1-c1, finland--r1-c1, Finland 1.1, europe, https://download.geofabrik.d..." + }, + { + "id": 89826328054, + "name": "build-bucket-0 (kitikmeot--r1-c2, kitikmeot--r1-c2, Kitikmeot Region 1.2, north-america, https://..." + }, + { + "id": 89826328056, + "name": "build-bucket-0 (java--r2-c2, java--r2-c2, Java 2.2, asia, https://download.geofabrik.de/asia/indo..." + }, + { + "id": 89826328075, + "name": "build-bucket-0 (kanto--r1-c2, kanto--r1-c2, Kantō region 1.2, asia, https://download.geofabrik.d..." + }, + { + "id": 89826328096, + "name": "build-bucket-0 (kivalliq--r1-c2, kivalliq--r1-c2, Kivalliq Region 1.2, north-america, https://dow..." + }, + { + "id": 89826328105, + "name": "build-bucket-0 (nepal--r1-c2, nepal--r1-c2, Nepal 1.2, asia, https://download.geofabrik.de/asia/n..." + }, + { + "id": 89826328118, + "name": "build-bucket-0 (new-zealand--r2-c2-s1, new-zealand--r2-c2-s1, New Zealand 2.2-s1, australia-ocean..." + }, + { + "id": 89826328121, + "name": "build-bucket-0 (nigeria--r1-c1, nigeria--r1-c1, Nigeria 1.1, africa, https://download.geofabrik.d..." + }, + { + "id": 89826328126, + "name": "build-bucket-0 (mexico--r2-c3, mexico--r2-c3, Mexico 2.3, north-america, https://download.geofabr..." + }, + { + "id": 89826328128, + "name": "build-bucket-0 (norcal--r1-c3, norcal--r1-c3, Northern California 1.3, north-america, https://dow..." + }, + { + "id": 89826328140, + "name": "build-bucket-0 (niedersachsen--r1-c2, niedersachsen--r1-c2, Niedersachsen (mit Bremen) 1.2, europ..." + }, + { + "id": 89826328141, + "name": "build-bucket-0 (nord-ovest--r2-c2, nord-ovest--r2-c2, Nord-Ovest 2.2, europe, https://download.ge..." + }, + { + "id": 89826328142, + "name": "build-bucket-4 (belgium--r2-c1, belgium--r2-c1, Belgium 2.1, europe, https://download.geofabrik.d..." + }, + { + "id": 89826328143, + "name": "build-bucket-4 (austria--r1-c1, austria--r1-c1, Austria 1.1, europe, https://download.geofabrik.d..." + }, + { + "id": 89826328152, + "name": "build-bucket-4 (argentina--r2-c1, argentina--r2-c1, Argentina 2.1, south-america, https://downloa..." + }, + { + "id": 89826328166, + "name": "build-bucket-0 (nord-norge--r2-c2, nord-norge--r2-c2, Nord-Norge
(Northern Norway) 2.2, euro..." + }, + { + "id": 89826328177, + "name": "build-bucket-4 (congo-democratic-republic--r2-c3, congo-democratic-republic--r2-c3, Congo (Democr..." + }, + { + "id": 89826328189, + "name": "build-bucket-4 (denmark--r1-c2, denmark--r1-c2, Denmark 1.2, europe, https://download.geofabrik.d..." + }, + { + "id": 89826328197, + "name": "build-bucket-4 (chubu--r2-c1, chubu--r2-c1, Chūbu region 2.1, asia, https://download.geofabrik.d..." + }, + { + "id": 89826328243, + "name": "build-bucket-4 (java--r1-c3, java--r1-c3, Java 1.3, asia, https://download.geofabrik.de/asia/indo..." + }, + { + "id": 89826328279, + "name": "build-bucket-4 (ireland-and-northern-ireland--r2-c1, ireland-and-northern-ireland--r2-c1, Ireland..." + }, + { + "id": 89826328287, + "name": "build-bucket-4 (kanto--r2-c3, kanto--r2-c3, Kantō region 2.3, asia, https://download.geofabrik.d..." + }, + { + "id": 89826328291, + "name": "build-bucket-4 (kitikmeot--r2-c3, kitikmeot--r2-c3, Kitikmeot Region 2.3, north-america, https://..." + }, + { + "id": 89826328306, + "name": "build-bucket-4 (kivalliq--r2-c3, kivalliq--r2-c3, Kivalliq Region 2.3, north-america, https://dow..." + }, + { + "id": 89826328321, + "name": "build-bucket-4 (mexico--r2-c1, mexico--r2-c1, Mexico 2.1, north-america, https://download.geofabr..." + }, + { + "id": 89826328328, + "name": "build-bucket-4 (nepal--r2-c3, nepal--r2-c3, Nepal 2.3, asia, https://download.geofabrik.de/asia/n..." + }, + { + "id": 89826328334, + "name": "build-bucket-4 (nord-norge--r1-c3, nord-norge--r1-c3, Nord-Norge
(Northern Norway) 1.3, euro..." + }, + { + "id": 89826328337, + "name": "build-bucket-4 (nord-est--r1-c1, nord-est--r1-c1, Nord-Est 1.1, europe, https://download.geofabri..." + }, + { + "id": 89826328338, + "name": "build-bucket-4 (nordeste--r1-c2, nordeste--r1-c2, Nordeste 1.2, south-america, https://download.g..." + }, + { + "id": 89826328340, + "name": "build-bucket-4 (nigeria--r2-c2, nigeria--r2-c2, Nigeria 2.2, africa, https://download.geofabrik.d..." + }, + { + "id": 89826328346, + "name": "build-bucket-4 (new-zealand--r1-c2-s2, new-zealand--r1-c2-s2, New Zealand 1.2-s2, australia-ocean..." + }, + { + "id": 89826328347, + "name": "build-bucket-4 (nord-ovest--r1-c3, nord-ovest--r1-c3, Nord-Ovest 1.3, europe, https://download.ge..." + }, + { + "id": 89826328353, + "name": "build-bucket-4 (niedersachsen--r2-c3, niedersachsen--r2-c3, Niedersachsen (mit Bremen) 2.3, europ..." + }, + { + "id": 89826328394, + "name": "build-bucket-4 (norcal--r1-c1, norcal--r1-c1, Northern California 1.1, north-america, https://dow..." + }, + { + "id": 89826328454, + "name": "build-bucket-0 (north-admreg--r1-c3, north-admreg--r1-c3, North Administrative Region 1.3, north-..." + }, + { + "id": 89826328455, + "name": "build-bucket-0 (northwest-territories--r1-c1, northwest-territories--r1-c1, Northwest Territories..." + }, + { + "id": 89826328464, + "name": "build-bucket-0 (ontario--r2-c1, ontario--r2-c1, Ontario 2.1, north-america, https://download.geof..." + }, + { + "id": 89826328468, + "name": "build-bucket-0 (nordeste--r2-c2, nordeste--r2-c2, Nordeste 2.2, south-america, https://download.g..." + }, + { + "id": 89826328478, + "name": "build-bucket-0 (northwestern-fed-district--r2-c1, northwestern-fed-district--r2-c1, Northwestern ..." + }, + { + "id": 89826328484, + "name": "build-bucket-0 (panama, panama, Panama, central-america, https://download.geofabrik.de/central-am..." + }, + { + "id": 89826328486, + "name": "build-bucket-0 (portugal--r2-c3, portugal--r2-c3, Portugal 2.3, europe, https://download.geofabri..." + }, + { + "id": 89826328487, + "name": "build-bucket-0 (rhone-alpes--r1-c1, rhone-alpes--r1-c1, Rhone-Alpes 1.1, europe, https://download..." + }, + { + "id": 89826328497, + "name": "build-bucket-0 (siberian-fed-district--r2-c1, siberian-fed-district--r2-c1, Siberian Federal Dist..." + }, + { + "id": 89826328499, + "name": "build-bucket-0 (ostlandet--r2-c2, ostlandet--r2-c2, Østlandet
(Eastern Norway) 2.2, europe,..." + }, + { + "id": 89826328507, + "name": "build-bucket-0 (southern-zone--r2-c1, southern-zone--r2-c1, Southern Zone 2.1, asia, https://down..." + }, + { + "id": 89826328528, + "name": "build-bucket-0 (south-sudan, south-sudan, South Sudan, africa, https://download.geofabrik.de/afri..." + }, + { + "id": 89826328529, + "name": "build-bucket-0 (south-africa--r1-c2, south-africa--r1-c2, South Africa 1.2, africa, https://downl..." + }, + { + "id": 89826328530, + "name": "build-bucket-0 (qikiqtaaluk--r2-c1, qikiqtaaluk--r2-c1, Qikiqtaaluk Region 2.1, north-america, ht..." + }, + { + "id": 89826328531, + "name": "build-bucket-0 (romania, romania, Romania, europe, https://download.geofabrik.de/europe/romania-l..." + }, + { + "id": 89826328534, + "name": "build-bucket-0 (scotland, scotland, Scotland, europe, https://download.geofabrik.de/europe/united..." + }, + { + "id": 89826328536, + "name": "build-bucket-0 (suffolk, suffolk, Suffolk, europe, https://download.geofabrik.de/europe/united-ki..." + }, + { + "id": 89826328544, + "name": "build-bucket-0 (switzerland--r1-c3, switzerland--r1-c3, Switzerland 1.3, europe, https://download..." + }, + { + "id": 89826328545, + "name": "build-bucket-0 (sweden--r1-c2, sweden--r1-c2, Sweden 1.2, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826328546, + "name": "build-bucket-0 (togo, togo, Togo, africa, https://download.geofabrik.de/africa/togo-latest.osm.pb..." + }, + { + "id": 89826328547, + "name": "build-bucket-0 (stuttgart-regbez, stuttgart-regbez, Regierungsbezirk Stuttgart, europe, https://d..." + }, + { + "id": 89826328561, + "name": "build-bucket-0 (tajikistan, tajikistan, Tajikistan, asia, https://download.geofabrik.de/asia/taji..." + }, + { + "id": 89826328562, + "name": "build-bucket-0 (ural-fed-district, ural-fed-district, Ural Federal District, ural-fed-district, h..." + }, + { + "id": 89826328563, + "name": "build-bucket-0 (sudeste--r1-c1, sudeste--r1-c1, Sudeste 1.1, south-america, https://download.geof..." + }, + { + "id": 89826328564, + "name": "build-bucket-0 (saint-helena-ascension-and-tristan-da-cunha, saint-helena-ascension-and-tristan-d..." + }, + { + "id": 89826328565, + "name": "build-bucket-0 (socal--r2-c3, socal--r2-c3, Southern California 2.3, north-america, https://downl..." + }, + { + "id": 89826328572, + "name": "build-bucket-0 (sumatra, sumatra, Sumatra, asia, https://download.geofabrik.de/asia/indonesia/sum..." + }, + { + "id": 89826328573, + "name": "build-bucket-0 (us/colorado, us--colorado, us/colorado, north-america, https://download.geofabrik..." + }, + { + "id": 89826328574, + "name": "build-bucket-0 (ukraine--r1-c2, ukraine--r1-c2, Ukraine (with Crimea) 1.2, europe, https://downlo..." + }, + { + "id": 89826328575, + "name": "build-bucket-0 (us/idaho, us--idaho, us/idaho, north-america, https://download.geofabrik.de/north..." + }, + { + "id": 89826328577, + "name": "build-bucket-0 (us/new-york--r2-c2, us--new-york--r2-c2, us/new-york 2.2, north-america, https://..." + }, + { + "id": 89826328580, + "name": "build-bucket-0 (valencia, valencia, Valencia, europe, https://download.geofabrik.de/europe/spain/..." + }, + { + "id": 89826328582, + "name": "build-bucket-0 (us/texas--r1-c3, us--texas--r1-c3, us/texas 1.3, north-america, https://download...." + }, + { + "id": 89826328583, + "name": "build-bucket-0 (quebec--r2-c2, quebec--r2-c2, Quebec 2.2, north-america, https://download.geofabr..." + }, + { + "id": 89826328592, + "name": "build-bucket-0 (tanzania--r2-c3, tanzania--r2-c3, Tanzania 2.3, africa, https://download.geofabri..." + }, + { + "id": 89826328593, + "name": "build-bucket-0 (volga-fed-district--r1-c1, volga-fed-district--r1-c1, Volga Federal District 1.1,..." + }, + { + "id": 89826328594, + "name": "build-bucket-0 (wallis-et-futuna, wallis-et-futuna, Wallis et Futuna, australia-oceania, https://..." + }, + { + "id": 89826328597, + "name": "build-bucket-0 (zhejiang, zhejiang, Zhejiang, asia, https://download.geofabrik.de/asia/china/zhej..." + }, + { + "id": 89826328602, + "name": "build-bucket-0 (us/florida--r1-c3, us--florida--r1-c3, us/florida 1.3, north-america, https://dow..." + }, + { + "id": 89826328605, + "name": "build-bucket-0 (us/louisiana, us--louisiana, us/louisiana, north-america, https://download.geofab..." + }, + { + "id": 89826328608, + "name": "build-bucket-0 (us/vermont, us--vermont, us/vermont, north-america, https://download.geofabrik.de..." + }, + { + "id": 89826328610, + "name": "build-bucket-0 (western-australia, western-australia, Western Australia, australia-oceania, https..." + }, + { + "id": 89826328611, + "name": "build-bucket-0 (turkey--r2-c3, turkey--r2-c3, Turkey 2.3, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826328615, + "name": "build-bucket-0 (us/new-jersey, us--new-jersey, us/new-jersey, north-america, https://download.geo..." + }, + { + "id": 89826328618, + "name": "build-bucket-0 (us/mississippi, us--mississippi, us/mississippi, north-america, https://download...." + }, + { + "id": 89826328623, + "name": "build-bucket-4 (northwestern-fed-district--r1-c1, northwestern-fed-district--r1-c1, Northwestern ..." + }, + { + "id": 89826328627, + "name": "build-bucket-0 (us/west-virginia, us--west-virginia, us/west-virginia, north-america, https://dow..." + }, + { + "id": 89826328634, + "name": "build-bucket-0 (tunisia, tunisia, Tunisia, africa, https://download.geofabrik.de/africa/tunisia-l..." + }, + { + "id": 89826328635, + "name": "build-bucket-0 (us/north-dakota, us--north-dakota, us/north-dakota, north-america, https://downlo..." + }, + { + "id": 89826328636, + "name": "build-bucket-4 (ontario--r1-c1, ontario--r1-c1, Ontario 1.1, north-america, https://download.geof..." + }, + { + "id": 89826328640, + "name": "build-bucket-0 (us/rhode-island, us--rhode-island, us/rhode-island, north-america, https://downlo..." + }, + { + "id": 89826328645, + "name": "build-bucket-4 (north-admreg--r1-c1, north-admreg--r1-c1, North Administrative Region 1.1, north-..." + }, + { + "id": 89826328684, + "name": "build-bucket-4 (ostlandet--r1-c2, ostlandet--r1-c2, Østlandet
(Eastern Norway) 1.2, europe,..." + }, + { + "id": 89826328709, + "name": "build-bucket-4 (portugal--r2-c1, portugal--r2-c1, Portugal 2.1, europe, https://download.geofabri..." + }, + { + "id": 89826328714, + "name": "build-bucket-4 (philippines--r2-c2, philippines--r2-c2, Philippines 2.2, asia, https://download.g..." + }, + { + "id": 89826328719, + "name": "build-bucket-4 (qikiqtaaluk--r1-c1, qikiqtaaluk--r1-c1, Qikiqtaaluk Region 1.1, north-america, ht..." + }, + { + "id": 89826328725, + "name": "build-bucket-4 (rhone-alpes--r2-c2, rhone-alpes--r2-c2, Rhone-Alpes 2.2, europe, https://download..." + }, + { + "id": 89826328727, + "name": "build-bucket-4 (quebec--r1-c2, quebec--r1-c2, Quebec 1.2, north-america, https://download.geofabr..." + }, + { + "id": 89826328733, + "name": "build-bucket-5 (chubu--r2-c2, chubu--r2-c2, Chūbu region 2.2, asia, https://download.geofabrik.d..." + }, + { + "id": 89826328747, + "name": "build-bucket-0 (yemen, yemen, Yemen, asia, https://download.geofabrik.de/asia/yemen-latest.osm.pb..." + }, + { + "id": 89826328765, + "name": "build-bucket-4 (sorlandet, sorlandet, Sørlandet
(Southern Norway), europe, https://download..." + }, + { + "id": 89826328771, + "name": "build-bucket-4 (south-fed-district, south-fed-district, South Federal District, south-fed-distric..." + }, + { + "id": 89826328773, + "name": "build-bucket-4 (siberian-fed-district--r1-c1, siberian-fed-district--r1-c1, Siberian Federal Dist..." + }, + { + "id": 89826328785, + "name": "build-bucket-4 (socal--r2-c1, socal--r2-c1, Southern California 2.1, north-america, https://downl..." + }, + { + "id": 89826328794, + "name": "build-bucket-4 (swaziland, swaziland, Swaziland, africa, https://download.geofabrik.de/africa/swa..." + }, + { + "id": 89826328796, + "name": "build-bucket-4 (sul--r2-c2, sul--r2-c2, Sul 2.2, south-america, https://download.geofabrik.de/sou..." + }, + { + "id": 89826328807, + "name": "build-bucket-4 (sud--r2-c2, sud--r2-c2, Sud 2.2, europe, https://download.geofabrik.de/europe/ita..." + }, + { + "id": 89826328808, + "name": "build-bucket-4 (sudeste--r2-c2, sudeste--r2-c2, Sudeste 2.2, south-america, https://download.geof..." + }, + { + "id": 89826328809, + "name": "build-bucket-4 (slaskie, slaskie, Województwo śląskie
(Silesian Voivodeship), europe, htt..." + }, + { + "id": 89826328810, + "name": "build-bucket-4 (staffordshire, staffordshire, Staffordshire, europe, https://download.geofabrik.d..." + }, + { + "id": 89826328820, + "name": "build-bucket-4 (switzerland--r1-c1, switzerland--r1-c1, Switzerland 1.1, europe, https://download..." + }, + { + "id": 89826328827, + "name": "build-bucket-4 (tanzania--r2-c1, tanzania--r2-c1, Tanzania 2.1, africa, https://download.geofabri..." + }, + { + "id": 89826328834, + "name": "build-bucket-4 (trondelag, trondelag, Trøndelag
(Central Norway), europe, https://download...." + }, + { + "id": 89826328836, + "name": "build-bucket-4 (ukraine--r2-c3, ukraine--r2-c3, Ukraine (with Crimea) 2.3, europe, https://downlo..." + }, + { + "id": 89826328838, + "name": "build-bucket-4 (southern-zone--r1-c2, southern-zone--r1-c2, Southern Zone 1.2, asia, https://down..." + }, + { + "id": 89826328839, + "name": "build-bucket-4 (turkey--r2-c1, turkey--r2-c1, Turkey 2.1, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826328841, + "name": "build-bucket-4 (us/georgia, us--georgia, Georgia, north-america, https://download.geofabrik.de/no..." + }, + { + "id": 89826328844, + "name": "build-bucket-4 (uganda, uganda, Uganda, africa, https://download.geofabrik.de/africa/uganda-lates..." + }, + { + "id": 89826328845, + "name": "build-bucket-4 (tianjin, tianjin, Tianjin, asia, https://download.geofabrik.de/asia/china/tianjin..." + }, + { + "id": 89826328853, + "name": "build-bucket-4 (us/florida--r1-c1, us--florida--r1-c1, us/florida 1.1, north-america, https://dow..." + }, + { + "id": 89826328854, + "name": "build-bucket-4 (syria, syria, Syria, asia, https://download.geofabrik.de/asia/syria-latest.osm.pb..." + }, + { + "id": 89826328857, + "name": "build-bucket-4 (us/new-york--r1-c3, us--new-york--r1-c3, us/new-york 1.3, north-america, https://..." + }, + { + "id": 89826328863, + "name": "build-bucket-4 (us/michigan, us--michigan, us/michigan, north-america, https://download.geofabrik..." + }, + { + "id": 89826328864, + "name": "build-bucket-4 (us/texas--r1-c1, us--texas--r1-c1, us/texas 1.1, north-america, https://download...." + }, + { + "id": 89826328867, + "name": "build-bucket-4 (us/north-carolina--r1-c3, us--north-carolina--r1-c3, us/north-carolina 1.3, north..." + }, + { + "id": 89826328869, + "name": "build-bucket-4 (us/arizona, us--arizona, us/arizona, north-america, https://download.geofabrik.de..." + }, + { + "id": 89826328874, + "name": "build-bucket-4 (us/us-virgin-islands, us--us-virgin-islands, us/us-virgin-islands, north-america,..." + }, + { + "id": 89826328877, + "name": "build-bucket-4 (us/nevada, us--nevada, us/nevada, north-america, https://download.geofabrik.de/no..." + }, + { + "id": 89826328880, + "name": "build-bucket-4 (us/virginia--r1-c4, us--virginia--r1-c4, us/virginia 1.4, north-america, https://..." + }, + { + "id": 89826328884, + "name": "build-bucket-4 (us/kansas, us--kansas, us/kansas, north-america, https://download.geofabrik.de/no..." + }, + { + "id": 89826328888, + "name": "build-bucket-4 (zambia, zambia, Zambia, africa, https://download.geofabrik.de/africa/zambia-lates..." + }, + { + "id": 89826328892, + "name": "build-bucket-4 (victoria, victoria, Victoria, australia-oceania, https://download.geofabrik.de/au..." + }, + { + "id": 89826328894, + "name": "build-bucket-4 (utrecht, utrecht, Utrecht, europe, https://download.geofabrik.de/europe/netherlan..." + }, + { + "id": 89826328900, + "name": "build-bucket-4 (us/pennsylvania, us--pennsylvania, us/pennsylvania, north-america, https://downlo..." + }, + { + "id": 89826328903, + "name": "build-bucket-4 (worcestershire, worcestershire, Worcestershire, europe, https://download.geofabri..." + }, + { + "id": 89826328906, + "name": "build-bucket-4 (west-sussex, west-sussex, West Sussex, europe, https://download.geofabrik.de/euro..." + }, + { + "id": 89826328909, + "name": "build-bucket-4 (vysocina, vysocina, Kraj Vysočina, europe, https://download.geofabrik.de/europe/..." + }, + { + "id": 89826329116, + "name": "build-bucket-2 (podkarpackie, podkarpackie, Województwo podkarpackie
(Subcarpathian Voivode..." + }, + { + "id": 89826329118, + "name": "build-bucket-2 (portugal--r1-c2, portugal--r1-c2, Portugal 1.2, europe, https://download.geofabri..." + }, + { + "id": 89826329119, + "name": "build-bucket-2 (north-admreg--r2-c2, north-admreg--r2-c2, North Administrative Region 2.2, north-..." + }, + { + "id": 89826329126, + "name": "build-bucket-2 (philippines--r1-c2, philippines--r1-c2, Philippines 1.2, asia, https://download.g..." + }, + { + "id": 89826329127, + "name": "build-bucket-2 (northwest-territories--r2-c1, northwest-territories--r2-c1, Northwest Territories..." + }, + { + "id": 89826329135, + "name": "build-bucket-2 (sichuan, sichuan, Sichuan, asia, https://download.geofabrik.de/asia/china/sichuan..." + }, + { + "id": 89826329138, + "name": "build-bucket-2 (sao-tome-and-principe, sao-tome-and-principe, Sao Tome and Principe, africa, http..." + }, + { + "id": 89826329140, + "name": "build-bucket-2 (socal--r1-c2, socal--r1-c2, Southern California 1.2, north-america, https://downl..." + }, + { + "id": 89826329144, + "name": "build-bucket-2 (southcoast-admreg, southcoast-admreg, South Coast Administrative Region, north-am..." + }, + { + "id": 89826329145, + "name": "build-bucket-2 (serbia, serbia, Serbia, europe, https://download.geofabrik.de/europe/serbia-lates..." + }, + { + "id": 89826329146, + "name": "build-bucket-2 (somalia, somalia, Somalia, africa, https://download.geofabrik.de/africa/somalia-l..." + }, + { + "id": 89826329147, + "name": "build-bucket-2 (southern-zone--r2-c3, southern-zone--r2-c3, Southern Zone 2.3, asia, https://down..." + }, + { + "id": 89826329149, + "name": "build-bucket-2 (rwanda, rwanda, Rwanda, africa, https://download.geofabrik.de/africa/rwanda-lates..." + }, + { + "id": 89826329150, + "name": "build-bucket-2 (sweden--r2-c2, sweden--r2-c2, Sweden 2.2, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826329151, + "name": "build-bucket-2 (shikoku, shikoku, Shikoku, asia, https://download.geofabrik.de/asia/japan/shikoku..." + }, + { + "id": 89826329154, + "name": "build-bucket-2 (sul--r1-c2, sul--r1-c2, Sul 1.2, south-america, https://download.geofabrik.de/sou..." + }, + { + "id": 89826329155, + "name": "build-bucket-2 (rhone-alpes--r1-c3, rhone-alpes--r1-c3, Rhone-Alpes 1.3, europe, https://download..." + }, + { + "id": 89826329166, + "name": "build-bucket-2 (thailand, thailand, Thailand, asia, https://download.geofabrik.de/asia/thailand-l..." + }, + { + "id": 89826329168, + "name": "build-bucket-2 (south-africa--r2-c2, south-africa--r2-c2, South Africa 2.2, africa, https://downl..." + }, + { + "id": 89826329169, + "name": "build-bucket-2 (opolskie, opolskie, Województwo opolskie
(Opole Voivodeship), europe, https..." + }, + { + "id": 89826329170, + "name": "build-bucket-2 (switzerland--r2-c2, switzerland--r2-c2, Switzerland 2.2, europe, https://download..." + }, + { + "id": 89826329171, + "name": "build-bucket-2 (sud--r1-c2, sud--r1-c2, Sud 1.2, europe, https://download.geofabrik.de/europe/ita..." + }, + { + "id": 89826329175, + "name": "build-bucket-2 (ukraine--r2-c1, ukraine--r2-c1, Ukraine (with Crimea) 2.1, europe, https://downlo..." + }, + { + "id": 89826329176, + "name": "build-bucket-2 (sudeste--r1-c3, sudeste--r1-c3, Sudeste 1.3, south-america, https://download.geof..." + }, + { + "id": 89826329178, + "name": "build-bucket-2 (us/delaware, us--delaware, us/delaware, north-america, https://download.geofabrik..." + }, + { + "id": 89826329181, + "name": "build-bucket-2 (surrey, surrey, Surrey, europe, https://download.geofabrik.de/europe/united-kingd..." + }, + { + "id": 89826329183, + "name": "build-bucket-2 (us/maryland, us--maryland, us/maryland, north-america, https://download.geofabrik..." + }, + { + "id": 89826329184, + "name": "build-bucket-2 (tanzania--r1-c2, tanzania--r1-c2, Tanzania 1.2, africa, https://download.geofabri..." + }, + { + "id": 89826329185, + "name": "build-bucket-2 (us/indiana, us--indiana, us/indiana, north-america, https://download.geofabrik.de..." + }, + { + "id": 89826329187, + "name": "build-bucket-2 (tuvalu, tuvalu, Tuvalu, australia-oceania, https://download.geofabrik.de/australi..." + }, + { + "id": 89826329188, + "name": "build-bucket-2 (us/alabama, us--alabama, us/alabama, north-america, https://download.geofabrik.de..." + }, + { + "id": 89826329189, + "name": "build-bucket-2 (turkey--r1-c2, turkey--r1-c2, Turkey 1.2, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826329190, + "name": "build-bucket-2 (tokelau, tokelau, Tokelau, australia-oceania, https://download.geofabrik.de/austr..." + }, + { + "id": 89826329192, + "name": "build-bucket-2 (us/virginia--r1-c2, us--virginia--r1-c2, us/virginia 1.2, north-america, https://..." + }, + { + "id": 89826329193, + "name": "build-bucket-2 (quebec--r3-c2, quebec--r3-c2, Quebec 3.2, north-america, https://download.geofabr..." + }, + { + "id": 89826329195, + "name": "build-bucket-2 (us/florida--r2-c2, us--florida--r2-c2, us/florida 2.2, north-america, https://dow..." + }, + { + "id": 89826329196, + "name": "build-bucket-2 (us/montana, us--montana, us/montana, north-america, https://download.geofabrik.de..." + }, + { + "id": 89826329197, + "name": "build-bucket-2 (us/new-york--r1-c1, us--new-york--r1-c1, us/new-york 1.1, north-america, https://..." + }, + { + "id": 89826329202, + "name": "build-bucket-2 (wielkopolskie, wielkopolskie, Województwo wielkopolskie
(Greater Poland Voi..." + }, + { + "id": 89826329203, + "name": "build-bucket-2 (zlinsky, zlinsky, Zlínský kraj, europe, https://download.geofabrik.de/europe/cz..." + }, + { + "id": 89826329204, + "name": "build-bucket-2 (yunnan, yunnan, Yunnan, asia, https://download.geofabrik.de/asia/china/yunnan-lat..." + }, + { + "id": 89826329206, + "name": "build-bucket-2 (us/wyoming, us--wyoming, us/wyoming, north-america, https://download.geofabrik.de..." + }, + { + "id": 89826329207, + "name": "build-bucket-2 (warwickshire, warwickshire, Warwickshire, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826329208, + "name": "build-bucket-2 (us/oklahoma, us--oklahoma, us/oklahoma, north-america, https://download.geofabrik..." + }, + { + "id": 89826329212, + "name": "build-bucket-2 (us/texas--r2-c2, us--texas--r2-c2, us/texas 2.2, north-america, https://download...." + }, + { + "id": 89826329213, + "name": "build-bucket-2 (volga-fed-district--r2-c1, volga-fed-district--r2-c1, Volga Federal District 2.1,..." + }, + { + "id": 89826329216, + "name": "build-bucket-2 (us/south-dakota, us--south-dakota, us/south-dakota, north-america, https://downlo..." + }, + { + "id": 89826329217, + "name": "build-bucket-2 (us/north-carolina--r1-c1, us--north-carolina--r1-c1, us/north-carolina 1.1, north..." + }, + { + "id": 89826329231, + "name": "build-bucket-2 (venezuela, venezuela, Venezuela, south-america, https://download.geofabrik.de/sou..." + }, + { + "id": 89826329593, + "name": "build-bucket-3 (ostlandet--r1-c1, ostlandet--r1-c1, Østlandet
(Eastern Norway) 1.1, europe,..." + }, + { + "id": 89826329608, + "name": "build-bucket-3 (north-admreg--r2-c3, north-admreg--r2-c3, North Administrative Region 2.3, north-..." + }, + { + "id": 89826329615, + "name": "build-bucket-3 (philippines--r2-c1, philippines--r2-c1, Philippines 2.1, asia, https://download.g..." + }, + { + "id": 89826329616, + "name": "build-bucket-3 (northwest-territories--r2-c2, northwest-territories--r2-c2, Northwest Territories..." + }, + { + "id": 89826329630, + "name": "build-bucket-3 (queensland, queensland, Queensland, australia-oceania, https://download.geofabrik..." + }, + { + "id": 89826329641, + "name": "build-bucket-3 (sierra-leone, sierra-leone, Sierra Leone, africa, https://download.geofabrik.de/a..." + }, + { + "id": 89826329644, + "name": "build-bucket-3 (portugal--r1-c3, portugal--r1-c3, Portugal 1.3, europe, https://download.geofabri..." + }, + { + "id": 89826329654, + "name": "build-bucket-3 (sudeste--r2-c1, sudeste--r2-c1, Sudeste 2.1, south-america, https://download.geof..." + }, + { + "id": 89826329658, + "name": "build-bucket-3 (quebec--r1-c1, quebec--r1-c1, Quebec 1.1, north-america, https://download.geofabr..." + }, + { + "id": 89826329662, + "name": "build-bucket-3 (south-australia, south-australia, South Australia, australia-oceania, https://dow..." + }, + { + "id": 89826329666, + "name": "build-bucket-3 (rhone-alpes--r2-c1, rhone-alpes--r2-c1, Rhone-Alpes 2.1, europe, https://download..." + }, + { + "id": 89826329673, + "name": "build-bucket-3 (sri-lanka, sri-lanka, Sri Lanka, asia, https://download.geofabrik.de/asia/sri-lan..." + }, + { + "id": 89826329677, + "name": "build-bucket-3 (socal--r1-c3, socal--r1-c3, Southern California 1.3, north-america, https://downl..." + }, + { + "id": 89826329678, + "name": "build-bucket-3 (switzerland--r2-c3, switzerland--r2-c3, Switzerland 2.3, europe, https://download..." + }, + { + "id": 89826329688, + "name": "build-bucket-3 (svalbard-janmayen, svalbard-janmayen, Svalbard and Jan Mayen, europe, https://dow..." + }, + { + "id": 89826329691, + "name": "build-bucket-3 (somerset, somerset, Somerset, europe, https://download.geofabrik.de/europe/united..." + }, + { + "id": 89826329693, + "name": "build-bucket-3 (turkey--r1-c3, turkey--r1-c3, Turkey 1.3, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826329700, + "name": "build-bucket-3 (saskatchewan, saskatchewan, Saskatchewan, north-america, https://download.geofabr..." + }, + { + "id": 89826329701, + "name": "build-bucket-3 (sul--r2-c1, sul--r2-c1, Sul 2.1, south-america, https://download.geofabrik.de/sou..." + }, + { + "id": 89826329702, + "name": "build-bucket-3 (southern-zone--r1-c1, southern-zone--r1-c1, Southern Zone 1.1, asia, https://down..." + }, + { + "id": 89826329704, + "name": "build-bucket-3 (thueringen, thueringen, Thüringen, europe, https://download.geofabrik.de/europe/..." + }, + { + "id": 89826329709, + "name": "build-bucket-3 (tonga, tonga, Tonga, australia-oceania, https://download.geofabrik.de/australia-o..." + }, + { + "id": 89826329715, + "name": "build-bucket-3 (us/alaska, us--alaska, us/alaska, north-america, https://download.geofabrik.de/no..." + }, + { + "id": 89826329727, + "name": "build-bucket-3 (tanzania--r1-c3, tanzania--r1-c3, Tanzania 1.3, africa, https://download.geofabri..." + }, + { + "id": 89826329729, + "name": "build-bucket-3 (swietokrzyskie, swietokrzyskie, Województwo świętokrzyskie
(Świętokrzys..." + }, + { + "id": 89826329733, + "name": "build-bucket-3 (us/virginia--r1-c3, us--virginia--r1-c3, us/virginia 1.3, north-america, https://..." + }, + { + "id": 89826329735, + "name": "build-bucket-3 (us/iowa, us--iowa, us/iowa, north-america, https://download.geofabrik.de/north-am..." + }, + { + "id": 89826329736, + "name": "build-bucket-3 (us/texas--r2-c3, us--texas--r2-c3, us/texas 2.3, north-america, https://download...." + }, + { + "id": 89826329738, + "name": "build-bucket-3 (us/nebraska, us--nebraska, us/nebraska, north-america, https://download.geofabrik..." + }, + { + "id": 89826329739, + "name": "build-bucket-3 (us/massachusetts, us--massachusetts, us/massachusetts, north-america, https://dow..." + }, + { + "id": 89826329742, + "name": "build-bucket-3 (us/north-carolina--r1-c2, us--north-carolina--r1-c2, us/north-carolina 1.2, north..." + }, + { + "id": 89826329744, + "name": "build-bucket-3 (ustecky, ustecky, Ústecký kraj, europe, https://download.geofabrik.de/europe/cz..." + }, + { + "id": 89826329746, + "name": "build-bucket-3 (us/tennessee, us--tennessee, us/tennessee, north-america, https://download.geofab..." + }, + { + "id": 89826329750, + "name": "build-bucket-3 (ukraine--r2-c2, ukraine--r2-c2, Ukraine (with Crimea) 2.2, europe, https://downlo..." + }, + { + "id": 89826329755, + "name": "build-bucket-3 (wiltshire, wiltshire, Wiltshire, europe, https://download.geofabrik.de/europe/uni..." + }, + { + "id": 89826329758, + "name": "build-bucket-3 (west-midlands, west-midlands, West Midlands, europe, https://download.geofabrik.d..." + }, + { + "id": 89826329761, + "name": "build-bucket-3 (zuid-holland, zuid-holland, Zuid-Holland, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826329763, + "name": "build-bucket-3 (tyne-and-wear, tyne-and-wear, Tyne and Wear, europe, https://download.geofabrik.d..." + }, + { + "id": 89826329766, + "name": "build-bucket-3 (us/district-of-columbia, us--district-of-columbia, us/district-of-columbia, north..." + }, + { + "id": 89826329770, + "name": "build-bucket-1 (northwest-territories--r1-c2, northwest-territories--r1-c2, Northwest Territories..." + }, + { + "id": 89826329772, + "name": "build-bucket-3 (us/oregon, us--oregon, us/oregon, north-america, https://download.geofabrik.de/no..." + }, + { + "id": 89826329773, + "name": "build-bucket-1 (north-admreg--r2-c1, north-admreg--r2-c1, North Administrative Region 2.1, north-..." + }, + { + "id": 89826329779, + "name": "build-bucket-3 (us/new-york--r1-c2, us--new-york--r1-c2, us/new-york 1.2, north-america, https://..." + }, + { + "id": 89826329782, + "name": "build-bucket-3 (zachodniopomorskie, zachodniopomorskie, Województwo zachodniopomorskie
(Wes..." + }, + { + "id": 89826329783, + "name": "build-bucket-3 (vestlandet, vestlandet, Vestlandet
(Western Norway), europe, https://downloa..." + }, + { + "id": 89826329793, + "name": "build-bucket-1 (philippines--r1-c1, philippines--r1-c1, Philippines 1.1, asia, https://download.g..." + }, + { + "id": 89826329795, + "name": "build-bucket-1 (ontario--r2-c2, ontario--r2-c2, Ontario 2.2, north-america, https://download.geof..." + }, + { + "id": 89826329799, + "name": "build-bucket-1 (quebec--r3-c1, quebec--r3-c1, Quebec 3.1, north-america, https://download.geofabr..." + }, + { + "id": 89826329800, + "name": "build-bucket-1 (shanxi, shanxi, Shanxi, asia, https://download.geofabrik.de/asia/china/shanxi-lat..." + }, + { + "id": 89826329803, + "name": "build-bucket-3 (us/florida--r2-c3, us--florida--r2-c3, us/florida 2.3, north-america, https://dow..." + }, + { + "id": 89826329807, + "name": "build-bucket-1 (northwestern-fed-district--r2-c2, northwestern-fed-district--r2-c2, Northwestern ..." + }, + { + "id": 89826329809, + "name": "build-bucket-1 (senegal-and-gambia, senegal-and-gambia, Senegal and Gambia, africa, https://downl..." + }, + { + "id": 89826329813, + "name": "build-bucket-3 (volga-fed-district--r2-c2, volga-fed-district--r2-c2, Volga Federal District 2.2,..." + }, + { + "id": 89826329814, + "name": "build-bucket-1 (portugal--r1-c1, portugal--r1-c1, Portugal 1.1, europe, https://download.geofabri..." + }, + { + "id": 89826329818, + "name": "build-bucket-1 (praha, praha, Praha, europe, https://download.geofabrik.de/europe/czech-republic/..." + }, + { + "id": 89826329824, + "name": "build-bucket-1 (sudeste--r1-c2, sudeste--r1-c2, Sudeste 1.2, south-america, https://download.geof..." + }, + { + "id": 89826329826, + "name": "build-bucket-1 (solomon-islands, solomon-islands, Solomon Islands, australia-oceania, https://dow..." + }, + { + "id": 89826329833, + "name": "build-bucket-1 (south-yorkshire, south-yorkshire, South Yorkshire, europe, https://download.geofa..." + }, + { + "id": 89826329835, + "name": "build-bucket-1 (sud--r1-c1, sud--r1-c1, Sud 1.1, europe, https://download.geofabrik.de/europe/ita..." + }, + { + "id": 89826329836, + "name": "build-bucket-1 (tasmania, tasmania, Tasmania, australia-oceania, https://download.geofabrik.de/au..." + }, + { + "id": 89826329837, + "name": "build-bucket-1 (suriname, suriname, Suriname, south-america, https://download.geofabrik.de/south-..." + }, + { + "id": 89826329838, + "name": "build-bucket-1 (southern-zone--r2-c2, southern-zone--r2-c2, Southern Zone 2.2, asia, https://down..." + }, + { + "id": 89826329840, + "name": "build-bucket-1 (siberian-fed-district--r2-c2, siberian-fed-district--r2-c2, Siberian Federal Dist..." + }, + { + "id": 89826329841, + "name": "build-bucket-1 (sweden--r2-c1, sweden--r2-c1, Sweden 2.1, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826329845, + "name": "build-bucket-1 (qikiqtaaluk--r2-c2, qikiqtaaluk--r2-c2, Qikiqtaaluk Region 2.2, north-america, ht..." + }, + { + "id": 89826329846, + "name": "build-bucket-1 (us/florida--r2-c1, us--florida--r2-c1, us/florida 2.1, north-america, https://dow..." + }, + { + "id": 89826329848, + "name": "build-bucket-1 (tohoku, tohoku, Tōhoku region, asia, https://download.geofabrik.de/asia/japan/to..." + }, + { + "id": 89826329849, + "name": "build-bucket-1 (socal--r1-c1, socal--r1-c1, Southern California 1.1, north-america, https://downl..." + }, + { + "id": 89826329852, + "name": "build-bucket-1 (sul--r1-c1, sul--r1-c1, Sul 1.1, south-america, https://download.geofabrik.de/sou..." + }, + { + "id": 89826329854, + "name": "build-bucket-1 (ukraine--r1-c3, ukraine--r1-c3, Ukraine (with Crimea) 1.3, europe, https://downlo..." + }, + { + "id": 89826329856, + "name": "build-bucket-1 (tanzania--r1-c1, tanzania--r1-c1, Tanzania 1.1, africa, https://download.geofabri..." + }, + { + "id": 89826329858, + "name": "build-bucket-1 (south-africa--r2-c1, south-africa--r2-c1, South Africa 2.1, africa, https://downl..." + }, + { + "id": 89826329859, + "name": "build-bucket-1 (turkmenistan, turkmenistan, Turkmenistan, asia, https://download.geofabrik.de/asi..." + }, + { + "id": 89826329863, + "name": "build-bucket-1 (rhone-alpes--r1-c2, rhone-alpes--r1-c2, Rhone-Alpes 1.2, europe, https://download..." + }, + { + "id": 89826329868, + "name": "build-bucket-1 (uruguay, uruguay, Uruguay, south-america, https://download.geofabrik.de/south-ame..." + }, + { + "id": 89826329869, + "name": "build-bucket-1 (turkey--r1-c1, turkey--r1-c1, Turkey 1.1, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826329874, + "name": "build-bucket-1 (switzerland--r2-c1, switzerland--r2-c1, Switzerland 2.1, europe, https://download..." + }, + { + "id": 89826329886, + "name": "build-bucket-1 (us/connecticut, us--connecticut, us/connecticut, north-america, https://download...." + }, + { + "id": 89826329924, + "name": "build-bucket-1 (us/maine, us--maine, us/maine, north-america, https://download.geofabrik.de/north..." + }, + { + "id": 89826329930, + "name": "build-bucket-5 (north-eastern-zone, north-eastern-zone, North-Eastern Zone, asia, https://downloa..." + }, + { + "id": 89826329941, + "name": "build-bucket-1 (yukon, yukon, Yukon, north-america, https://download.geofabrik.de/north-america/c..." + }, + { + "id": 89826329944, + "name": "build-bucket-1 (warminsko-mazurskie, warminsko-mazurskie, Województwo warmińsko-mazurskie
..." + }, + { + "id": 89826329945, + "name": "build-bucket-5 (portugal--r2-c2, portugal--r2-c2, Portugal 2.2, europe, https://download.geofabri..." + }, + { + "id": 89826329946, + "name": "build-bucket-5 (pays-de-la-loire, pays-de-la-loire, Pays de la Loire, europe, https://download.ge..." + }, + { + "id": 89826329947, + "name": "build-bucket-1 (us/south-carolina, us--south-carolina, us/south-carolina, north-america, https://..." + }, + { + "id": 89826329952, + "name": "build-bucket-1 (zimbabwe, zimbabwe, Zimbabwe, africa, https://download.geofabrik.de/africa/zimbab..." + }, + { + "id": 89826329953, + "name": "build-bucket-5 (northwestern-fed-district--r1-c2, northwestern-fed-district--r1-c2, Northwestern ..." + }, + { + "id": 89826329956, + "name": "build-bucket-1 (vanuatu, vanuatu, Vanuatu, australia-oceania, https://download.geofabrik.de/austr..." + }, + { + "id": 89826329960, + "name": "build-bucket-1 (us/illinois, us--illinois, us/illinois, north-america, https://download.geofabrik..." + }, + { + "id": 89826329961, + "name": "build-bucket-5 (quebec--r2-c1, quebec--r2-c1, Quebec 2.1, north-america, https://download.geofabr..." + }, + { + "id": 89826329963, + "name": "build-bucket-5 (qikiqtaaluk--r1-c2, qikiqtaaluk--r1-c2, Qikiqtaaluk Region 1.2, north-america, ht..." + }, + { + "id": 89826329972, + "name": "build-bucket-1 (us/texas--r2-c1, us--texas--r2-c1, us/texas 2.1, north-america, https://download...." + }, + { + "id": 89826329980, + "name": "build-bucket-1 (us/ohio, us--ohio, us/ohio, north-america, https://download.geofabrik.de/north-am..." + }, + { + "id": 89826329986, + "name": "build-bucket-5 (northumberland, northumberland, Northumberland, europe, https://download.geofabri..." + }, + { + "id": 89826329987, + "name": "build-bucket-1 (us/virginia--r1-c1, us--virginia--r1-c1, us/virginia 1.1, north-america, https://..." + }, + { + "id": 89826329988, + "name": "build-bucket-1 (us/missouri, us--missouri, us/missouri, north-america, https://download.geofabrik..." + }, + { + "id": 89826329989, + "name": "build-bucket-1 (western-zone, western-zone, Western Zone, asia, https://download.geofabrik.de/asi..." + }, + { + "id": 89826329992, + "name": "build-bucket-1 (us/wisconsin, us--wisconsin, us/wisconsin, north-america, https://download.geofab..." + }, + { + "id": 89826329994, + "name": "build-bucket-5 (palau, palau, Palau, australia-oceania, https://download.geofabrik.de/australia-o..." + }, + { + "id": 89826329999, + "name": "build-bucket-5 (north-admreg--r1-c2, north-admreg--r1-c2, North Administrative Region 1.2, north-..." + }, + { + "id": 89826330007, + "name": "build-bucket-1 (us/new-mexico, us--new-mexico, us/new-mexico, north-america, https://download.geo..." + }, + { + "id": 89826330013, + "name": "build-bucket-5 (ontario--r1-c2, ontario--r1-c2, Ontario 1.2, north-america, https://download.geof..." + }, + { + "id": 89826330014, + "name": "build-bucket-3 (sud--r2-c1, sud--r2-c1, Sud 2.1, europe, https://download.geofabrik.de/europe/ita..." + }, + { + "id": 89826330027, + "name": "build-bucket-5 (southern-zone--r1-c3, southern-zone--r1-c3, Southern Zone 1.3, asia, https://down..." + }, + { + "id": 89826330041, + "name": "build-bucket-5 (siberian-fed-district--r1-c2, siberian-fed-district--r1-c2, Siberian Federal Dist..." + }, + { + "id": 89826330043, + "name": "build-bucket-5 (turkey--r2-c2, turkey--r2-c2, Turkey 2.2, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826330044, + "name": "build-bucket-5 (south-korea, south-korea, South Korea, asia, https://download.geofabrik.de/asia/s..." + }, + { + "id": 89826330046, + "name": "build-bucket-5 (tibet, tibet, Tibet, asia, https://download.geofabrik.de/asia/china/tibet-latest...." + }, + { + "id": 89826330053, + "name": "build-bucket-5 (switzerland--r1-c2, switzerland--r1-c2, Switzerland 1.2, europe, https://download..." + }, + { + "id": 89826330056, + "name": "build-bucket-5 (south-africa--r1-c1, south-africa--r1-c1, South Africa 1.1, africa, https://downl..." + }, + { + "id": 89826330063, + "name": "build-bucket-5 (ukraine--r1-c1, ukraine--r1-c1, Ukraine (with Crimea) 1.1, europe, https://downlo..." + }, + { + "id": 89826330064, + "name": "build-bucket-5 (sweden--r1-c1, sweden--r1-c1, Sweden 1.1, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826330066, + "name": "build-bucket-5 (tanzania--r2-c2, tanzania--r2-c2, Tanzania 2.2, africa, https://download.geofabri..." + }, + { + "id": 89826330067, + "name": "build-bucket-5 (sulawesi, sulawesi, Sulawesi, asia, https://download.geofabrik.de/asia/indonesia/..." + }, + { + "id": 89826330069, + "name": "build-bucket-5 (slovakia, slovakia, Slovakia, europe, https://download.geofabrik.de/europe/slovak..." + }, + { + "id": 89826330072, + "name": "build-bucket-5 (rhone-alpes--r2-c3, rhone-alpes--r2-c3, Rhone-Alpes 2.3, europe, https://download..." + }, + { + "id": 89826330074, + "name": "build-bucket-5 (sudan, sudan, Sudan, africa, https://download.geofabrik.de/africa/sudan-latest.os..." + }, + { + "id": 89826330075, + "name": "build-bucket-5 (shandong, shandong, Shandong, asia, https://download.geofabrik.de/asia/china/shan..." + }, + { + "id": 89826330078, + "name": "build-bucket-5 (sudeste--r2-c3, sudeste--r2-c3, Sudeste 2.3, south-america, https://download.geof..." + }, + { + "id": 89826330079, + "name": "build-bucket-5 (us/hawaii, us--hawaii, us/hawaii, north-america, https://download.geofabrik.de/no..." + }, + { + "id": 89826330084, + "name": "build-bucket-5 (us/minnesota, us--minnesota, us/minnesota, north-america, https://download.geofab..." + }, + { + "id": 89826330085, + "name": "build-bucket-5 (unterfranken, unterfranken, Unterfranken, europe, https://download.geofabrik.de/e..." + }, + { + "id": 89826330086, + "name": "build-bucket-5 (stredocesky, stredocesky, Středočeský kraj (with Praha), europe, https://downl..." + }, + { + "id": 89826330087, + "name": "build-bucket-5 (us/arkansas, us--arkansas, us/arkansas, north-america, https://download.geofabrik..." + }, + { + "id": 89826330090, + "name": "build-bucket-5 (us/kentucky, us--kentucky, us/kentucky, north-america, https://download.geofabrik..." + }, + { + "id": 89826330094, + "name": "build-bucket-5 (socal--r2-c2, socal--r2-c2, Southern California 2.2, north-america, https://downl..." + }, + { + "id": 89826330095, + "name": "build-bucket-5 (tuebingen-regbez, tuebingen-regbez, Regierungsbezirk Tübingen, europe, https://d..." + }, + { + "id": 89826330098, + "name": "build-bucket-5 (taiwan, taiwan, Taiwan, asia, https://download.geofabrik.de/asia/taiwan-latest.os..." + }, + { + "id": 89826330105, + "name": "build-bucket-5 (us/north-carolina--r1-c4, us--north-carolina--r1-c4, us/north-carolina 1.4, north..." + }, + { + "id": 89826330109, + "name": "build-bucket-5 (us/new-hampshire, us--new-hampshire, us/new-hampshire, north-america, https://dow..." + }, + { + "id": 89826330112, + "name": "build-bucket-1 (volga-fed-district--r1-c2, volga-fed-district--r1-c2, Volga Federal District 1.2,..." + }, + { + "id": 89826330120, + "name": "build-bucket-5 (us/florida--r1-c2, us--florida--r1-c2, us/florida 1.2, north-america, https://dow..." + }, + { + "id": 89826330121, + "name": "build-bucket-5 (us/texas--r1-c2, us--texas--r1-c2, us/texas 1.2, north-america, https://download...." + }, + { + "id": 89826330122, + "name": "build-bucket-5 (us/new-york--r2-c1, us--new-york--r2-c1, us/new-york 2.1, north-america, https://..." + }, + { + "id": 89826330127, + "name": "build-bucket-5 (us/utah, us--utah, us/utah, north-america, https://download.geofabrik.de/north-am..." + }, + { + "id": 89826330137, + "name": "build-bucket-1 (us/new-york--r2-c3, us--new-york--r2-c3, us/new-york 2.3, north-america, https://..." + }, + { + "id": 89826330140, + "name": "build-bucket-5 (ostlandet--r2-c1, ostlandet--r2-c1, Østlandet
(Eastern Norway) 2.1, europe,..." + }, + { + "id": 89826330141, + "name": "build-bucket-5 (us/puerto-rico, us--puerto-rico, us/puerto-rico, north-america, https://download...." + }, + { + "id": 89826330148, + "name": "build-bucket-5 (vietnam, vietnam, Vietnam, asia, https://download.geofabrik.de/asia/vietnam-lates..." + }, + { + "id": 89826330150, + "name": "build-bucket-5 (zeeland, zeeland, Zeeland, europe, https://download.geofabrik.de/europe/netherlan..." + }, + { + "id": 89826330151, + "name": "build-bucket-5 (xinjiang, xinjiang, Xinjiang, asia, https://download.geofabrik.de/asia/china/xinj..." + }, + { + "id": 89826330152, + "name": "build-bucket-5 (us/washington, us--washington, us/washington, north-america, https://download.geo..." + }, + { + "id": 89826330154, + "name": "build-bucket-5 (wales, wales, Wales, europe, https://download.geofabrik.de/europe/united-kingdom/..." + }, + { + "id": 89826330158, + "name": "build-bucket-5 (uzbekistan, uzbekistan, Uzbekistan, asia, https://download.geofabrik.de/asia/uzbe..." + }, + { + "id": 89826330159, + "name": "build-bucket-5 (west-yorkshire, west-yorkshire, West Yorkshire, europe, https://download.geofabri..." + } + ] +} diff --git a/diagnostics/world-repair-macos.trigger b/diagnostics/world-repair-macos.trigger new file mode 100644 index 00000000..55136eac --- /dev/null +++ b/diagnostics/world-repair-macos.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-27T01:58:00Z +purpose=confirm_final_missing_only_repair_includes_failed_and_unfinished_shards diff --git a/diagnostics/world-repair-status.json b/diagnostics/world-repair-status.json new file mode 100644 index 00000000..964e938e --- /dev/null +++ b/diagnostics/world-repair-status.json @@ -0,0 +1,79 @@ +{ + "capturedAt": "2026-07-27T02:08:22.597Z", + "workflow": "repair-missing-world-pmtiles.yml", + "runId": "30231080611", + "runUrl": "https://github.com/Occumed79/Map/actions/runs/30231080611", + "headSha": "c456df1169dc3546549be9246faa3b92e0f94593", + "status": "queued", + "conclusion": null, + "canonicalShardCount": 692, + "alreadyPublishedShardCount": 682, + "plannedMissingShardCount": 10, + "releaseAssetCountBeforeRepair": 938, + "releaseSlotsRequired": 11, + "releaseSlotsAvailable": 62, + "planStatus": "completed", + "planConclusion": "success", + "totalBuildJobsObserved": 10, + "successfulBuildJobs": 0, + "failedBuildJobs": 0, + "inProgressBuildJobs": 1, + "queuedBuildJobs": 9, + "cancelledBuildJobs": 0, + "skippedBuildJobs": 0, + "manifestStatus": null, + "manifestConclusion": null, + "active": [ + { + "id": 89870975102, + "name": "build-bucket-2 (kitikmeot, kitikmeot, Kitikmeot Region, north-america, https://download.geofabrik...", + "status": "queued" + }, + { + "id": 89870975104, + "name": "build-bucket-0 (siberian-fed-district--r1-c1, siberian-fed-district--r1-c1, Siberian Federal Dist...", + "status": "queued" + }, + { + "id": 89870975105, + "name": "build-bucket-2 (qikiqtaaluk, qikiqtaaluk, Qikiqtaaluk Region, north-america, https://download.geo...", + "status": "queued" + }, + { + "id": 89870975106, + "name": "build-bucket-0 (northwestern-fed-district--r1-c1, northwestern-fed-district--r1-c1, Northwestern ...", + "status": "queued" + }, + { + "id": 89870975124, + "name": "build-bucket-2 (us/texas, us--texas, us/texas, north-america, https://download.geofabrik.de/north...", + "status": "queued" + }, + { + "id": 89870975130, + "name": "build-bucket-0 (enfield, enfield, Enfield, europe, https://download.geofabrik.de/europe/united-ki...", + "status": "in_progress" + }, + { + "id": 89870975163, + "name": "build-bucket-1 (far-eastern-fed-district, far-eastern-fed-district, Far Eastern Federal District,...", + "status": "queued" + }, + { + "id": 89870975165, + "name": "build-bucket-1 (portugal, portugal, Portugal, europe, https://download.geofabrik.de/europe/portug...", + "status": "queued" + }, + { + "id": 89870975171, + "name": "build-bucket-0 (us/virginia, us--virginia, us/virginia, north-america, https://download.geofabrik...", + "status": "queued" + }, + { + "id": 89870975209, + "name": "build-bucket-1 (ural-fed-district, ural-fed-district, Ural Federal District, ural-fed-district, h...", + "status": "queued" + } + ], + "failures": [] +} diff --git a/diagnostics/world-repair-status.trigger b/diagnostics/world-repair-status.trigger new file mode 100644 index 00000000..6f1c2c15 --- /dev/null +++ b/diagnostics/world-repair-status.trigger @@ -0,0 +1,3 @@ +repair_workflow=repair-missing-world-pmtiles.yml +requested_at=2026-07-27T02:06:30Z +phase=urgent_tail_repair_status_check diff --git a/package.json b/package.json index 702d8735..cf8afa8a 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,16 @@ { "name": "@occumed/map", - "version": "0.2.0", + "version": "0.4.0", "private": true, "type": "module", "scripts": { "prepare:sprites": "node scripts/build-sprites.mjs", - "prepare:style": "node scripts/build-runtime-style.mjs && node scripts/normalize-runtime-fonts.mjs && node scripts/normalize-runtime-filters.mjs && node scripts/normalize-boundary-filters.mjs && node scripts/force-runtime-filter-expressions.mjs && node scripts/apply-schema-parity.mjs && node scripts/apply-globe-parity.mjs && node scripts/apply-photo-reference.mjs && node scripts/restore-exported-cartography.mjs && node scripts/calibrate-reference-colors.mjs && node scripts/lock-exact-exported-swatches.mjs && node scripts/lock-reference-atmosphere.mjs", + "prepare:style": "node scripts/build-runtime-style.mjs && node scripts/normalize-runtime-fonts.mjs && node scripts/normalize-runtime-filters.mjs && node scripts/normalize-boundary-filters.mjs && node scripts/force-runtime-filter-expressions.mjs && node scripts/apply-schema-parity.mjs && node scripts/apply-globe-parity.mjs && node scripts/apply-photo-reference.mjs && node scripts/restore-exported-cartography.mjs && node scripts/calibrate-reference-colors.mjs && node scripts/lock-exact-exported-swatches.mjs && node scripts/lock-reference-atmosphere.mjs && node scripts/normalize-runtime-fonts.mjs && node scripts/use-local-maplibre-glyphs.mjs && node scripts/use-custom-pmtiles-source.mjs", "prepare:assets": "npm run prepare:sprites && npm run prepare:style", + "tiles:build": "bash planetiler/build-region.sh", + "tiles:plan-world": "node scripts/plan-world-shards.mjs --scope all", "check:export": "node scripts/check-export.mjs", - "check:runtime": "node scripts/check-runtime.mjs && node scripts/validate-maplibre-style.mjs && node scripts/check-globe-parity.mjs && node scripts/check-cartography-parity.mjs && node scripts/check-viewer-quality.mjs && node scripts/check-photo-reference.mjs && node scripts/check-exact-exported-swatches.mjs && node scripts/check-render-clarity.mjs", + "check:runtime": "node scripts/check-runtime.mjs && node scripts/validate-maplibre-style.mjs && node scripts/check-globe-parity.mjs && node scripts/check-cartography-parity.mjs && node scripts/check-viewer-quality.mjs && node scripts/check-photo-reference.mjs && node scripts/check-exact-exported-swatches.mjs && node scripts/check-render-clarity.mjs && node scripts/check-pmtiles-integration.mjs", "check:server": "node scripts/check-server-health.mjs", "check": "npm run check:export && npm run check:runtime", "dev": "npm run prepare:assets && vite", @@ -17,7 +19,8 @@ "start": "node server.mjs" }, "dependencies": { - "maplibre-gl": "5.24.0" + "maplibre-gl": "5.24.0", + "pmtiles": "4.4.1" }, "devDependencies": { "@chrispahm/spritezero": "8.1.0", diff --git a/planetiler/README.md b/planetiler/README.md new file mode 100644 index 00000000..98918822 --- /dev/null +++ b/planetiler/README.md @@ -0,0 +1,115 @@ +# Occu-Med custom Planetiler + PMTiles basemap + +This directory defines the Occu-Med-owned vector tile schema used by the reusable MapLibre basemap. It replaces dependence on a generic hosted OpenMapTiles endpoint with reproducible Planetiler archives whose source layers and attributes match the runtime style. + +## Schema + +`occumed-basemap.yml` emits the layers the runtime expects: + +- `landcover` +- `landuse` +- `park` +- `water` +- `waterway` +- `transportation` +- `transportation_name` +- `building` +- `aeroway` +- `boundary` +- `place` +- `poi` +- `water_name` +- `mountain_peak` +- `housenumber` + +Attributes are normalized around the exported style, including `class`, `subclass`, `brunnel`, `ramp`, `ref`, `rank`, `admin_level`, `disputed`, and `render_height`. + +## Worldwide architecture + +The global build uses Geofabrik's current world index to select leaf-region extracts. Each extract is independently built into a PMTiles archive with the same Occu-Med schema. + +The workflow: + +1. creates a worldwide, non-overlapping leaf-region plan; +2. divides the plan into six bounded GitHub Actions matrices; +3. builds every shard on free GitHub-hosted runners; +4. publishes archives, checksums, and metadata to the `occumed-world-v1` GitHub Release; +5. validates byte-range delivery for every archive; +6. publishes `occumed-world-manifest.json` only from successfully uploaded assets; +7. fails until the manifest reports zero missing regions. + +The browser keeps the existing global overview at low zoom. Beginning at zoom 6, `src/world-pmtiles-router.js` selects the smallest matching regional archive and changes the shared vector source without replacing application overlays. + +The deployed Node server exposes: + +```text +/world-manifest.json +/world-tiles/occumed-.pmtiles +``` + +Those endpoints proxy the GitHub Release assets, preserve HTTP range requests, and add the required CORS and cache headers. No paid object-storage account is required. + +## Launch the worldwide build + +The workflow can be started manually from GitHub Actions or by changing: + +```text +planetiler/world-build.trigger +``` + +The release tag defaults to: + +```text +occumed-world-v1 +``` + +The runtime automatically checks: + +```text +__OCCUMED_PUBLIC_ORIGIN__/world-manifest.json +``` + +Until the release manifest exists, the map safely retains the current global vector source. + +## Build one regional archive locally + +Docker is required. + +```bash +OCCUMED_TILE_AREA=california npm run tiles:build +``` + +The default output is: + +```text +public/tiles/occumed.pmtiles +``` + +Other Geofabrik areas can be selected without changing the profile: + +```bash +OCCUMED_TILE_AREA=us/wisconsin npm run tiles:build +OCCUMED_TILE_AREA=australia/new-south-wales npm run tiles:build +``` + +An existing `.osm.pbf` can be used by setting `OCCUMED_OSM_PBF` to a file inside `OCCUMED_PLANETILER_DATA_DIR`. + +## Single-archive override + +Worldwide routing is enabled by default. To disable it and use one archive instead: + +```bash +OCCUMED_WORLD_MANIFEST_URL=off \ +OCCUMED_PMTILES_URL=__OCCUMED_PUBLIC_ORIGIN__/tiles/occumed.pmtiles \ +npm run build +``` + +To use a different worldwide manifest: + +```bash +OCCUMED_WORLD_MANIFEST_URL=https://tiles.example.org/occumed-world-manifest.json npm run build +``` + +## Remaining enrichment stages + +The worldwide vector schema and delivery path are independent from terrain enrichment. Generated contours, GEBCO bathymetric bands, Overture enrichment, and complete route-relation shield metadata can be added as separate stages without changing the PMTiles routing architecture. diff --git a/planetiler/build-region.sh b/planetiler/build-region.sh new file mode 100644 index 00000000..fb381893 --- /dev/null +++ b/planetiler/build-region.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash +set -euo pipefail + +AREA="${OCCUMED_TILE_AREA:-california}" +OSM_PBF="${OCCUMED_OSM_PBF:-}" +OUTPUT="${OCCUMED_PMTILES_OUTPUT:-$PWD/public/tiles/occumed.pmtiles}" +MEMORY="${OCCUMED_PLANETILER_MEMORY:-6g}" +IMAGE="${OCCUMED_PLANETILER_IMAGE:-ghcr.io/onthegomap/planetiler:0.10.2}" +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +DATA_DIR="${OCCUMED_PLANETILER_DATA_DIR:-$ROOT/.planetiler-data}" +PROFILE_DIR="$DATA_DIR/generated-profile" +PROFILE_PATH="$PROFILE_DIR/occumed-basemap.yml" + +mkdir -p "$DATA_DIR/tmp" "$PROFILE_DIR" "$(dirname "$OUTPUT")" +node "$ROOT/scripts/prepare-planetiler-profile.mjs" \ + "$ROOT/planetiler/occumed-basemap.yml" \ + "$PROFILE_PATH" + +OUTPUT_DIR="$(cd "$(dirname "$OUTPUT")" && pwd)" +OUTPUT_NAME="$(basename "$OUTPUT")" + +# Planetiler custom YAML profiles are passed as the first positional argument. +# The build itself parses and validates the generated profile before processing OSM data. +COMMON_ARGS=( + /profile/occumed-basemap.yml + --area="$AREA" + --output="/output/$OUTPUT_NAME" + --tmpdir=/data/tmp + --force +) + +if [[ -n "$OSM_PBF" ]]; then + if [[ ! -s "$OSM_PBF" ]]; then + echo "OSM extract does not exist or is empty: $OSM_PBF" >&2 + exit 1 + fi + case "$OSM_PBF" in + "$DATA_DIR"/*) + CONTAINER_OSM_PATH="/data/${OSM_PBF#"$DATA_DIR"/}" + ;; + *) + echo "OCCUMED_OSM_PBF must be inside OCCUMED_PLANETILER_DATA_DIR so Docker can read it." >&2 + exit 1 + ;; + esac + COMMON_ARGS+=(--osm-path="$CONTAINER_OSM_PATH") +else + COMMON_ARGS+=(--download) +fi + +echo "Building Occu-Med PMTiles" +echo " area: $AREA" +echo " source: ${OSM_PBF:-Geofabrik download}" +echo " output: $OUTPUT" +echo " memory: $MEMORY" +echo " image: $IMAGE" +echo " schema: $PROFILE_PATH" + +docker run --rm \ + -e JAVA_TOOL_OPTIONS="-Xmx${MEMORY}" \ + -v "$PROFILE_DIR:/profile:ro" \ + -v "$DATA_DIR:/data" \ + -v "$OUTPUT_DIR:/output" \ + "$IMAGE" \ + "${COMMON_ARGS[@]}" + +test -s "$OUTPUT" +( + cd "$OUTPUT_DIR" + sha256sum "$OUTPUT_NAME" > "$OUTPUT_NAME.sha256" +) +ls -lh "$OUTPUT" "$OUTPUT.sha256" + +echo "Created $OUTPUT" +echo "Build the app with:" +echo " OCCUMED_PMTILES_URL=__OCCUMED_PUBLIC_ORIGIN__/tiles/$OUTPUT_NAME npm run build" diff --git a/planetiler/occumed-basemap.yml b/planetiler/occumed-basemap.yml new file mode 100644 index 00000000..2439920a --- /dev/null +++ b/planetiler/occumed-basemap.yml @@ -0,0 +1,919 @@ +schema_name: Occu-Med Terrain +schema_description: Custom Occu-Med vector schema for the reusable MapLibre basemap +version: "0.3.0" +is_overlay: false +attribution: '© OpenStreetMap contributors' + +args: + area: + description: Geofabrik area to download + default: california + osm_source_path: + description: Local OSM PBF path + default: '${ args.area.replace("/", "_") + ".osm.pbf" }' + maxzoom: 16 + render_maxzoom: 19 + force: true + min_feature_size: 0.5 + min_feature_size_at_max_zoom: 0.0625 + +sources: + osm: + type: osm + url: '${ "geofabrik:" + args.area }' + local_path: '${ args.osm_source_path }' + +tag_mappings: + population_number: + input: population + type: long + height_number: + input: height + type: double + min_height_number: + input: min_height + type: double + elevation_number: + input: ele + type: double + admin_level_number: + input: admin_level + type: integer + +layers: + - id: landcover + features: + - source: osm + geometry: polygon + min_zoom: 3 + include_when: + natural: [wood, scrub, heath, grassland, fell, glacier, sand, beach, wetland] + attributes: + - key: class + value: + - if: + natural: wood + value: wood + - if: + natural: [scrub, heath] + value: scrub + - if: + natural: glacier + value: ice + - if: + natural: [sand, beach] + value: sand + - if: + natural: wetland + value: wetland + - else: grass + - source: osm + geometry: polygon + min_zoom: 3 + include_when: + landuse: [forest, meadow, farmland, orchard, vineyard, grass] + attributes: + - key: class + value: + - if: + landuse: forest + value: wood + - if: + landuse: [farmland, orchard, vineyard] + value: farmland + - else: grass + tile_post_process: + merge_polygons: + min_area: 1 + min_area_at_max_zoom: 0.25 + tolerance: 0.5 + tolerance_at_max_zoom: 0.125 + + - id: landuse + features: + - source: osm + geometry: polygon + min_zoom: 6 + include_when: + landuse: [residential, commercial, industrial, retail, cemetery, recreation_ground, quarry, farmland, farmyard] + attributes: + - key: class + tag_value: landuse + - key: name + tag_value: name + - source: osm + geometry: polygon + min_zoom: 7 + include_when: + leisure: [garden, playground, golf_course, pitch] + attributes: + - key: class + tag_value: leisure + - key: name + tag_value: name + + - id: park + features: + - source: osm + geometry: polygon + min_zoom: 5 + include_when: + boundary: [national_park, protected_area] + attributes: + - key: class + tag_value: boundary + - key: name + tag_value: name + - source: osm + geometry: polygon + min_zoom: 7 + include_when: + leisure: [park, nature_reserve] + attributes: + - key: class + tag_value: leisure + - key: name + tag_value: name + + - id: water + features: + - source: osm + geometry: polygon + min_zoom: 4 + include_when: + natural: water + attributes: + - key: class + value: + coalesce: + - tag_value: water + - lake + - key: name + tag_value: name + - source: osm + geometry: polygon + min_zoom: 5 + include_when: + waterway: [riverbank, dock] + attributes: + - key: class + tag_value: waterway + - key: name + tag_value: name + + - id: waterway + features: + - source: osm + geometry: line + min_zoom: 6 + include_when: + waterway: river + attributes: &waterway_attributes + - key: class + tag_value: waterway + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 8 + include_when: + waterway: canal + attributes: *waterway_attributes + - source: osm + geometry: line + min_zoom: 10 + include_when: + waterway: [stream, drain, ditch] + attributes: *waterway_attributes + tile_post_process: + merge_line_strings: + min_length: 1 + min_length_at_max_zoom: 0.125 + tolerance: 0.5 + tolerance_at_max_zoom: 0.0625 + buffer: 5 + + - id: transportation + features: + - source: osm + geometry: line + min_zoom: 4 + include_when: + highway: [motorway, motorway_link] + attributes: &motorway_attributes + - key: class + value: motorway + - key: subclass + tag_value: highway + - key: brunnel + value: &brunnel_value + - if: + bridge: ["yes", "true", "1", viaduct] + value: bridge + - if: + tunnel: ["yes", "true", "1", culvert, building_passage] + value: tunnel + - else: none + - key: ramp + value: &ramp_value + - if: + highway: "%_link" + value: 1 + - else: 0 + type: integer + - key: surface + tag_value: surface + - key: ref + tag_value: ref + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 4 + include_when: + highway: [trunk, trunk_link] + attributes: + - key: class + value: trunk + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: *ramp_value + type: integer + - key: surface + tag_value: surface + - key: ref + tag_value: ref + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 6 + include_when: + highway: [primary, primary_link] + attributes: &primary_attributes + - key: class + value: primary + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: *ramp_value + type: integer + - key: surface + tag_value: surface + - key: ref + tag_value: ref + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 8 + include_when: + highway: [secondary, secondary_link] + attributes: &secondary_attributes + - key: class + value: secondary + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: *ramp_value + type: integer + - key: surface + tag_value: surface + - key: ref + tag_value: ref + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 9 + include_when: + highway: [tertiary, tertiary_link] + attributes: &tertiary_attributes + - key: class + value: tertiary + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: *ramp_value + type: integer + - key: surface + tag_value: surface + - key: ref + tag_value: ref + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 11 + include_when: + highway: [unclassified, residential, living_street] + attributes: &minor_attributes + - key: class + value: minor + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: 0 + type: integer + - key: surface + tag_value: surface + - key: ref + tag_value: ref + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 12 + include_when: + highway: service + attributes: + - key: class + value: service + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: 0 + type: integer + - key: surface + tag_value: surface + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 12 + include_when: + highway: track + attributes: + - key: class + value: track + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: 0 + type: integer + - key: surface + tag_value: surface + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 12 + include_when: + highway: pedestrian + attributes: + - key: class + value: pedestrian + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: 0 + type: integer + - key: surface + tag_value: surface + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 13 + include_when: + highway: [path, footway, cycleway] + attributes: + - key: class + value: path + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: 0 + type: integer + - key: surface + tag_value: surface + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 13 + include_when: + highway: steps + attributes: + - key: class + value: steps + - key: subclass + tag_value: highway + - key: brunnel + value: *brunnel_value + - key: ramp + value: 0 + type: integer + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 8 + include_when: + railway: [rail, narrow_gauge] + attributes: + - key: class + value: rail + - key: subclass + tag_value: railway + - key: brunnel + value: *brunnel_value + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 9 + include_when: + railway: [light_rail, subway, tram, monorail] + attributes: + - key: class + value: transit + - key: subclass + tag_value: railway + - key: brunnel + value: *brunnel_value + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 7 + include_when: + route: ferry + attributes: + - key: class + value: ferry + - key: subclass + value: ferry + - key: brunnel + value: none + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 10 + include_when: + aerialway: [cable_car, gondola, chair_lift, drag_lift, platter, t-bar, rope_tow] + attributes: + - key: class + value: aerialway + - key: subclass + tag_value: aerialway + - key: brunnel + value: none + - key: name + tag_value: name + + - id: transportation_name + features: + - source: osm + geometry: line + min_zoom: 7 + include_when: + __all__: + - highway: [motorway, trunk] + - __any__: + name: __any__ + ref: __any__ + attributes: &transport_name_attributes + - key: class + value: + - if: + highway: [unclassified, residential, living_street] + value: minor + - else: + tag_value: highway + - key: name + tag_value: name + - key: ref + tag_value: ref + - key: brunnel + value: *brunnel_value + - source: osm + geometry: line + min_zoom: 8 + include_when: + __all__: + - highway: primary + - __any__: + name: __any__ + ref: __any__ + attributes: *transport_name_attributes + - source: osm + geometry: line + min_zoom: 10 + include_when: + __all__: + - highway: [secondary, tertiary] + - __any__: + name: __any__ + ref: __any__ + attributes: *transport_name_attributes + - source: osm + geometry: line + min_zoom: 12 + include_when: + __all__: + - highway: [unclassified, residential] + - name: __any__ + attributes: *transport_name_attributes + tile_post_process: + merge_line_strings: + min_length: 2 + min_length_at_max_zoom: 0.125 + tolerance: 0.5 + tolerance_at_max_zoom: 0.0625 + buffer: 5 + + - id: building + features: + - source: osm + geometry: polygon + min_zoom: 13 + include_when: + building: __any__ + attributes: + - key: class + tag_value: building + - key: render_height + tag_value: height_number + type: double + - key: render_min_height + tag_value: min_height_number + type: double + - key: underground + value: + - if: + location: underground + value: "true" + - else: "false" + + - id: aeroway + features: + - source: osm + geometry: line + min_zoom: 9 + include_when: + aeroway: [runway, taxiway] + attributes: + - key: class + tag_value: aeroway + - key: type + tag_value: aeroway + - source: osm + geometry: polygon + min_zoom: 10 + include_when: + aeroway: [aerodrome, runway, taxiway, helipad] + attributes: + - key: class + tag_value: aeroway + - key: type + tag_value: aeroway + - key: name + tag_value: name + + - id: aerodrome_label + features: + - source: osm + geometry: centroid + min_zoom: 8 + include_when: + aeroway: [aerodrome, heliport] + attributes: + - key: class + tag_value: aeroway + - key: name + tag_value: name + - key: iata + tag_value: iata + - key: icao + tag_value: icao + + - id: boundary + features: + - source: osm + geometry: line + min_zoom: 0 + include_when: + __all__: + boundary: administrative + admin_level: "2" + attributes: &boundary_attributes + - key: admin_level + tag_value: admin_level_number + type: integer + - key: disputed + value: &disputed_value + - if: + disputed: "yes" + value: 1 + - else: 0 + type: integer + - key: maritime + value: &maritime_value + - if: + maritime: "yes" + value: 1 + - else: 0 + type: integer + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 3 + include_when: + __all__: + boundary: administrative + admin_level: "4" + attributes: *boundary_attributes + - source: osm + geometry: line + min_zoom: 6 + include_when: + __all__: + boundary: administrative + admin_level: ["5", "6"] + attributes: *boundary_attributes + - source: osm + geometry: line + min_zoom: 8 + include_when: + __all__: + boundary: administrative + admin_level: ["7", "8"] + attributes: *boundary_attributes + + - id: place + features: + - source: osm + geometry: point + min_zoom: 0 + include_when: + place: continent + attributes: &continent_attributes + - key: class + tag_value: place + - key: name + tag_value: name + - key: name:latin + value: + coalesce: + - tag_value: name:en + - tag_value: name + - key: population + tag_value: population_number + type: long + - key: rank + value: 1 + type: integer + - source: osm + geometry: point + min_zoom: 2 + include_when: + place: country + attributes: *continent_attributes + - source: osm + geometry: point + min_zoom: 3 + include_when: + place: state + attributes: + - key: class + tag_value: place + - key: name + tag_value: name + - key: name:latin + value: + coalesce: + - tag_value: name:en + - tag_value: name + - key: population + tag_value: population_number + type: long + - key: rank + value: 2 + type: integer + - source: osm + geometry: point + min_zoom: 4 + include_when: + place: region + attributes: + - key: class + tag_value: place + - key: name + tag_value: name + - key: name:latin + value: + coalesce: + - tag_value: name:en + - tag_value: name + - key: population + tag_value: population_number + type: long + - key: rank + value: 3 + type: integer + - source: osm + geometry: point + min_zoom: 5 + include_when: + place: city + # Population is retained as an attribute; unsupported per-feature sort/grid directives were removed. + attributes: + - key: class + tag_value: place + - key: name + tag_value: name + - key: name:latin + value: + coalesce: + - tag_value: name:en + - tag_value: name + - key: population + tag_value: population_number + type: long + - key: rank + value: 4 + type: integer + - source: osm + geometry: point + min_zoom: 7 + include_when: + place: town + attributes: + - key: class + tag_value: place + - key: name + tag_value: name + - key: name:latin + value: + coalesce: + - tag_value: name:en + - tag_value: name + - key: population + tag_value: population_number + type: long + - key: rank + value: 5 + type: integer + - source: osm + geometry: point + min_zoom: 9 + include_when: + place: village + attributes: + - key: class + tag_value: place + - key: name + tag_value: name + - key: name:latin + value: + coalesce: + - tag_value: name:en + - tag_value: name + - key: population + tag_value: population_number + type: long + - key: rank + value: 6 + type: integer + - source: osm + geometry: point + min_zoom: 10 + include_when: + place: [suburb, neighbourhood, hamlet] + attributes: + - key: class + tag_value: place + - key: name + tag_value: name + - key: name:latin + value: + coalesce: + - tag_value: name:en + - tag_value: name + - key: rank + value: 7 + type: integer + + - id: poi + features: + - source: osm + geometry: point + min_zoom: 11 + include_when: + amenity: __any__ + attributes: &amenity_attributes + - key: class + tag_value: amenity + - key: subclass + tag_value: amenity + - key: name + tag_value: name + - source: osm + geometry: polygon_centroid + min_zoom: 12 + include_when: + amenity: __any__ + attributes: *amenity_attributes + - source: osm + geometry: point + min_zoom: 11 + include_when: + tourism: __any__ + attributes: &tourism_attributes + - key: class + tag_value: tourism + - key: subclass + tag_value: tourism + - key: name + tag_value: name + - source: osm + geometry: polygon_centroid + min_zoom: 12 + include_when: + tourism: __any__ + attributes: *tourism_attributes + + - id: water_name + features: + - source: osm + geometry: polygon_point_on_surface + min_zoom: 5 + include_when: + __all__: + natural: water + name: __any__ + attributes: + - key: class + value: + coalesce: + - tag_value: water + - lake + - key: name + tag_value: name + - source: osm + geometry: line + min_zoom: 6 + include_when: + __all__: + waterway: [river, canal, stream] + name: __any__ + attributes: + - key: class + tag_value: waterway + - key: name + tag_value: name + + - id: mountain_peak + features: + - source: osm + geometry: point + min_zoom: 8 + include_when: + natural: [peak, volcano] + attributes: + - key: class + tag_value: natural + - key: name + tag_value: name + - key: ele + tag_value: elevation_number + type: double + + - id: housenumber + features: + - source: osm + geometry: point + min_zoom: 16 + include_when: + addr:housenumber: __any__ + attributes: &housenumber_attributes + - key: housenumber + tag_value: addr:housenumber + - source: osm + geometry: polygon_centroid + min_zoom: 16 + include_when: + addr:housenumber: __any__ + attributes: *housenumber_attributes diff --git a/planetiler/world-build.trigger b/planetiler/world-build.trigger new file mode 100644 index 00000000..86c214fd --- /dev/null +++ b/planetiler/world-build.trigger @@ -0,0 +1,12 @@ +Occu-Med worldwide PMTiles canonical repair +release=occumed-world-v1 +requested_at=2026-07-26T17:58:30Z +scope=all-canonical-geofabrik-regions +buckets=6 +direct_pbf_limit_bytes=400000000 +target_split_pbf_bytes=250000000 +reuse_existing_release_assets=true +exclude_overlapping_convenience_bundles=true +pass_extract_bbox_to_all_matrices=true +require_zero_missing_manifest=true +merge_gate=fresno-render-success-plus-zero-missing-world-manifest diff --git a/planetiler/world-finish.trigger b/planetiler/world-finish.trigger new file mode 100644 index 00000000..fd608e0e --- /dev/null +++ b/planetiler/world-finish.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-27T02:51:30Z +mode=inventory-build-missing-publish-zero-missing-manifest diff --git a/planetiler/world-missing-repair.trigger b/planetiler/world-missing-repair.trigger new file mode 100644 index 00000000..d0651a38 --- /dev/null +++ b/planetiler/world-missing-repair.trigger @@ -0,0 +1,2 @@ +requested_at=2026-07-27T11:12:00Z +mode=pinned-canonical-only-correct-antimeridian-24-workers diff --git a/planetiler/world-repair-max.trigger b/planetiler/world-repair-max.trigger new file mode 100644 index 00000000..147b3167 --- /dev/null +++ b/planetiler/world-repair-max.trigger @@ -0,0 +1,3 @@ +repair_workflow=repair-world-pmtiles.yml +requested_at=2026-07-26T18:17:30Z +phase=isolated-uncapped-repair diff --git a/planetiler/world-repair.trigger b/planetiler/world-repair.trigger new file mode 100644 index 00000000..41f26e3f --- /dev/null +++ b/planetiler/world-repair.trigger @@ -0,0 +1,3 @@ +Repair worldwide PMTiles publication with canonical size-aware shards. +Triggered: 2026-07-26T18:05:30Z +Mode: maximum GitHub-hosted parallelism; no matrix max-parallel cap. diff --git a/scripts/build-runtime-style.mjs b/scripts/build-runtime-style.mjs index dba82d98..bfee048c 100644 --- a/scripts/build-runtime-style.mjs +++ b/scripts/build-runtime-style.mjs @@ -11,7 +11,7 @@ const reportPath = path.join(outputDir, 'compatibility-report.json'); const tilejsonUrl = process.env.OCCUMED_TILEJSON_URL || 'https://tiles.openfreemap.org/planet'; const glyphsUrl = process.env.OCCUMED_GLYPHS_URL || - 'https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf'; + 'https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf'; const terrainUrl = process.env.OCCUMED_TERRAIN_URL || 'https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/{x}/{y}.png'; @@ -26,7 +26,7 @@ const fontMap = new Map([ ['DIN Pro Medium', 'Open Sans Semibold'], ['DIN Pro Bold', 'Open Sans Bold'], ['DIN Pro Italic', 'Open Sans Italic'], - ['Arial Unicode MS Regular', 'Noto Sans Regular'] + ['Arial Unicode MS Regular', 'Open Sans Regular'] ]); const get = (key) => ['get', key]; diff --git a/scripts/build-world-manifest.mjs b/scripts/build-world-manifest.mjs new file mode 100644 index 00000000..23789a40 --- /dev/null +++ b/scripts/build-world-manifest.mjs @@ -0,0 +1,62 @@ +#!/usr/bin/env node + +import fs from 'node:fs/promises'; + +function parseArgs(argv) { + const options = {}; + for (let index = 0; index < argv.length; index += 1) { + const key = argv[index]; + if (key === '--plan') options.plan = argv[++index]; + else if (key === '--assets') options.assets = argv[++index]; + else if (key === '--repository') options.repository = argv[++index]; + else if (key === '--tag') options.tag = argv[++index]; + else if (key === '--output') options.output = argv[++index]; + } + for (const required of ['plan', 'assets', 'repository', 'tag', 'output']) { + if (!options[required]) throw new Error(`Missing --${required}.`); + } + return options; +} + +const options = parseArgs(process.argv.slice(2)); +const [plan, assetsPayload] = await Promise.all([ + fs.readFile(options.plan, 'utf8').then(JSON.parse), + fs.readFile(options.assets, 'utf8').then(JSON.parse) +]); + +const assetNames = new Set((assetsPayload.assets || []).map((asset) => asset.name)); +const planned = plan.include || []; +const available = planned.filter((region) => assetNames.has(region.asset_name)); +const missing = planned.filter((region) => !assetNames.has(region.asset_name)); +const releaseBase = `https://github.com/${options.repository}/releases/download/${options.tag}`; + +const manifest = { + version: 1, + generatedAt: new Date().toISOString(), + releaseTag: options.tag, + sourceSchema: 'planetiler/occumed-basemap.yml', + switchZoom: 6, + attribution: '© OpenStreetMap contributors', + archiveTransport: 'same-origin-release-proxy', + archiveProxyTemplate: '__OCCUMED_PUBLIC_ORIGIN__/world-tiles/{asset}', + releaseBase, + regions: available.map((region) => ({ + id: region.id, + slug: region.slug, + name: region.name, + continent: region.continent, + bounds: [region.west, region.south, region.east, region.north], + asset: region.asset_name, + url: `__OCCUMED_PUBLIC_ORIGIN__/world-tiles/${region.asset_name}`, + minzoom: 6, + maxzoom: 16 + })), + plannedRegionCount: planned.length, + availableRegionCount: available.length, + missingRegionCount: missing.length, + missingRegions: missing.map((region) => region.id) +}; + +await fs.writeFile(options.output, `${JSON.stringify(manifest, null, 2)}\n`); +console.log(`Published manifest coverage for ${available.length}/${planned.length} world shards.`); +if (missing.length) console.log(`Missing shards: ${missing.map((region) => region.id).join(', ')}`); diff --git a/scripts/capture-pmtiles-preview.mjs b/scripts/capture-pmtiles-preview.mjs new file mode 100644 index 00000000..3022b626 --- /dev/null +++ b/scripts/capture-pmtiles-preview.mjs @@ -0,0 +1,182 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { chromium } from 'playwright'; + +const origin = process.env.OCCUMED_PREVIEW_ORIGIN || 'http://127.0.0.1:4173'; +const outputDir = path.resolve(process.env.OCCUMED_PREVIEW_OUTPUT || 'artifacts/visual-preview'); +const expectedArchive = process.env.OCCUMED_PREVIEW_ARCHIVE || 'occumed-fresno.pmtiles'; +await fs.mkdir(outputDir, { recursive: true }); + +function sourceUrl(source) { + return typeof source?.url === 'string' ? source.url : ''; +} + +function assertHealthyView(name, view) { + const url = sourceUrl(view.source); + if (!url.startsWith('pmtiles://')) { + throw new Error(`${name} did not use the PMTiles protocol: ${url || 'missing source URL'}`); + } + if (!url.includes(expectedArchive)) { + throw new Error(`${name} used the wrong PMTiles archive: ${url}`); + } + if (!view.loaded) throw new Error(`${name} did not reach map.loaded().`); + if (!view.tilesLoaded) throw new Error(`${name} did not reach map.areTilesLoaded().`); + if (view.canvas.effectivePixelRatio < 1.9) { + throw new Error(`${name} rendered below the required effective 2x pixel ratio.`); + } +} + +const browser = await chromium.launch({ headless: true }); +try { + const context = await browser.newContext({ + viewport: { width: 1440, height: 1000 }, + deviceScaleFactor: 2, + colorScheme: 'dark' + }); + const page = await context.newPage(); + const consoleMessages = []; + const pageErrors = []; + const networkFailures = []; + + page.on('console', (message) => { + consoleMessages.push({ type: message.type(), text: message.text() }); + }); + page.on('pageerror', (error) => { + pageErrors.push(error.message); + }); + page.on('requestfailed', (request) => { + networkFailures.push({ + type: 'requestfailed', + url: request.url(), + method: request.method(), + error: request.failure()?.errorText || 'unknown request failure' + }); + }); + page.on('response', (response) => { + if (response.status() < 400) return; + networkFailures.push({ + type: 'http', + url: response.url(), + method: response.request().method(), + status: response.status() + }); + }); + + await page.goto(origin, { waitUntil: 'domcontentloaded', timeout: 60_000 }); + await page.waitForFunction( + () => globalThis.__OCCUMED_MAP__ && globalThis.__OCCUMED_MAP__.isStyleLoaded(), + null, + { timeout: 60_000 } + ); + + async function capture(name, center, zoom) { + await page.evaluate( + async ({ center: nextCenter, zoom: nextZoom }) => { + const map = globalThis.__OCCUMED_MAP__; + await new Promise((resolve) => { + let settled = false; + const finish = () => { + if (settled) return; + settled = true; + resolve(); + }; + map.once('idle', finish); + map.jumpTo({ center: nextCenter, zoom: nextZoom, pitch: 0, bearing: 0 }); + setTimeout(finish, 20_000); + }); + }, + { center, zoom } + ); + + await page.waitForFunction( + () => { + const map = globalThis.__OCCUMED_MAP__; + return Boolean(map?.loaded() && map.areTilesLoaded()); + }, + null, + { timeout: 60_000 } + ); + + const view = await page.evaluate(() => { + const map = globalThis.__OCCUMED_MAP__; + const canvas = map.getCanvas(); + const rect = canvas.getBoundingClientRect(); + const source = map.getStyle().sources?.['occumed-open'] || null; + return { + center: map.getCenter().toArray(), + zoom: map.getZoom(), + source, + canvas: { + cssWidth: rect.width, + cssHeight: rect.height, + backingWidth: canvas.width, + backingHeight: canvas.height, + effectivePixelRatio: rect.width ? canvas.width / rect.width : null + }, + loaded: map.loaded(), + tilesLoaded: map.areTilesLoaded(), + visibleLayers: map + .getStyle() + .layers.filter((layer) => map.getLayoutProperty(layer.id, 'visibility') !== 'none') + .map((layer) => layer.id) + }; + }); + + assertHealthyView(name, view); + await page.screenshot({ + path: path.join(outputDir, `${name}.png`), + fullPage: false + }); + return view; + } + + const views = {}; + views.fresnoRegional = await capture('fresno-regional-z8', [-119.55, 36.75], 8); + views.fresnoCity = await capture('fresno-city-z11', [-119.7871, 36.7378], 11); + views.fresnoStreet = await capture('fresno-street-z14', [-119.7871, 36.7378], 14); + views.sierraTerrain = await capture('sierra-terrain-z10', [-118.85, 36.85], 10); + + const consoleFailures = consoleMessages.filter( + (entry) => entry.type === 'error' || /failed|error|404|416/i.test(entry.text) + ); + const allowedFailure = (entry) => { + const url = entry.url || entry.text || ''; + return /\/favicon\.ico(?:$|\?)/i.test(url); + }; + const unexpectedNetworkFailures = networkFailures.filter((entry) => !allowedFailure(entry)); + const unexpectedConsoleFailures = consoleFailures.filter((entry) => !allowedFailure(entry)); + + const report = { + generatedAt: new Date().toISOString(), + origin, + browser: 'chromium', + expectedArchive, + viewport: { width: 1440, height: 1000, deviceScaleFactor: 2 }, + views, + pageErrors, + networkFailures, + consoleFailures, + unexpectedNetworkFailures, + unexpectedConsoleFailures, + consoleMessages + }; + + await fs.writeFile( + path.join(outputDir, 'preview-report.json'), + `${JSON.stringify(report, null, 2)}\n` + ); + + if (pageErrors.length) { + throw new Error(`Browser page errors: ${pageErrors.join('; ')}`); + } + if (unexpectedNetworkFailures.length) { + throw new Error(`Unexpected browser resource failures: ${JSON.stringify(unexpectedNetworkFailures)}`); + } + if (unexpectedConsoleFailures.length) { + throw new Error(`Unexpected browser console failures: ${JSON.stringify(unexpectedConsoleFailures)}`); + } + + console.log(`Captured ${Object.keys(views).length} healthy custom PMTiles browser views in ${outputDir}.`); +} finally { + await browser.close(); +} diff --git a/scripts/capture-world-fresno-preview.mjs b/scripts/capture-world-fresno-preview.mjs new file mode 100644 index 00000000..eaeba3d7 --- /dev/null +++ b/scripts/capture-world-fresno-preview.mjs @@ -0,0 +1,257 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { chromium } from 'playwright'; + +const origin = (process.env.OCCUMED_PREVIEW_ORIGIN || 'http://127.0.0.1:4173').replace(/\/$/, ''); +const outputDir = path.resolve(process.env.OCCUMED_PREVIEW_OUTPUT || 'visual-validation/fresno-world-final'); +await fs.mkdir(outputDir, { recursive: true }); + +function containsCoordinate(bounds, longitude, latitude) { + if (!Array.isArray(bounds) || bounds.length !== 4) return false; + const [west, south, east, north] = bounds.map(Number); + if (![west, south, east, north].every(Number.isFinite)) return false; + const latitudeMatch = latitude >= south && latitude <= north; + const longitudeMatch = west <= east + ? longitude >= west && longitude <= east + : longitude >= west || longitude <= east; + return latitudeMatch && longitudeMatch; +} + +function boundsArea(bounds) { + const [west, south, east, north] = bounds.map(Number); + const width = west <= east ? east - west : 360 - west + east; + return Math.max(width, 0) * Math.max(north - south, 0); +} + +function selectRegion(regions, longitude, latitude) { + return regions + .filter((region) => containsCoordinate(region.bounds, longitude, latitude)) + .sort((left, right) => boundsArea(left.bounds) - boundsArea(right.bounds))[0] || null; +} + +const manifestResponse = await fetch(`${origin}/world-manifest.json`, { + headers: { 'Cache-Control': 'no-cache' } +}); +if (!manifestResponse.ok) { + throw new Error(`Worldwide manifest proxy failed with ${manifestResponse.status}.`); +} +const manifest = await manifestResponse.json(); +if (!Array.isArray(manifest.regions) || !manifest.regions.length) { + throw new Error('Worldwide manifest contains no regions.'); +} +if (Number(manifest.missingRegionCount) !== 0) { + throw new Error(`Worldwide manifest still reports ${manifest.missingRegionCount} missing regions.`); +} + +const rangeChecks = new Map(); +async function verifyRange(asset) { + if (rangeChecks.has(asset)) return rangeChecks.get(asset); + const response = await fetch(`${origin}/world-tiles/${encodeURIComponent(asset)}`, { + headers: { Range: 'bytes=0-126' }, + redirect: 'follow' + }); + const bytes = new Uint8Array(await response.arrayBuffer()); + const magic = new TextDecoder().decode(bytes.slice(0, 7)); + const result = { + asset, + status: response.status, + returnedBytes: bytes.length, + magic, + contentRange: response.headers.get('content-range') + }; + if (response.status !== 206 || bytes.length !== 127 || magic !== 'PMTiles') { + throw new Error(`Runtime range proxy failed for ${asset}: ${JSON.stringify(result)}`); + } + rangeChecks.set(asset, result); + return result; +} + +const browser = await chromium.launch({ headless: true }); +try { + const context = await browser.newContext({ + viewport: { width: 1440, height: 1000 }, + deviceScaleFactor: 2, + colorScheme: 'dark' + }); + const page = await context.newPage(); + const consoleMessages = []; + const pageErrors = []; + const networkFailures = []; + + page.on('console', (message) => { + consoleMessages.push({ type: message.type(), text: message.text() }); + }); + page.on('pageerror', (error) => pageErrors.push(error.message)); + page.on('requestfailed', (request) => { + networkFailures.push({ + type: 'requestfailed', + url: request.url(), + method: request.method(), + error: request.failure()?.errorText || 'unknown request failure' + }); + }); + page.on('response', (response) => { + if (response.status() < 400) return; + networkFailures.push({ + type: 'http', + url: response.url(), + method: response.request().method(), + status: response.status() + }); + }); + + await page.goto(origin, { waitUntil: 'domcontentloaded', timeout: 90_000 }); + await page.waitForFunction( + () => globalThis.__OCCUMED_MAP__ && globalThis.__OCCUMED_MAP__.isStyleLoaded(), + null, + { timeout: 90_000 } + ); + + async function capture(name, center, zoom) { + const expectedRegion = selectRegion(manifest.regions, center[0], center[1]); + if (!expectedRegion) throw new Error(`${name} has no worldwide shard in the manifest.`); + await verifyRange(expectedRegion.asset); + + await page.evaluate( + ({ nextCenter, nextZoom }) => { + const map = globalThis.__OCCUMED_MAP__; + map.jumpTo({ center: nextCenter, zoom: nextZoom, pitch: 0, bearing: 0 }); + map.triggerRepaint(); + }, + { nextCenter: center, nextZoom: zoom } + ); + + await page.waitForFunction( + ({ expectedAsset }) => { + const map = globalThis.__OCCUMED_MAP__; + const source = map?.getStyle()?.sources?.['occumed-open']; + if ( + !map?.isStyleLoaded() || + typeof source?.url !== 'string' || + !source.url.startsWith('pmtiles://') || + !source.url.includes(`/world-tiles/${expectedAsset}`) + ) { + return false; + } + + try { + return map.queryRenderedFeatures().some((feature) => feature.source === 'occumed-open'); + } catch { + return false; + } + }, + { expectedAsset: expectedRegion.asset }, + { timeout: 90_000 } + ); + + await page.waitForTimeout(750); + + const view = await page.evaluate(() => { + const map = globalThis.__OCCUMED_MAP__; + const canvas = map.getCanvas(); + const rect = canvas.getBoundingClientRect(); + const source = map.getStyle().sources?.['occumed-open'] || null; + const renderedWorldFeatureCount = map + .queryRenderedFeatures() + .filter((feature) => feature.source === 'occumed-open') + .length; + return { + center: map.getCenter().toArray(), + zoom: map.getZoom(), + source, + styleLoaded: map.isStyleLoaded(), + worldSourceLoadedDiagnostic: map.isSourceLoaded('occumed-open'), + allSourcesLoadedDiagnostic: map.areTilesLoaded(), + renderedWorldFeatureCount, + canvas: { + cssWidth: rect.width, + cssHeight: rect.height, + backingWidth: canvas.width, + backingHeight: canvas.height, + effectivePixelRatio: rect.width ? canvas.width / rect.width : null + }, + visibleLayers: map + .getStyle() + .layers.filter((layer) => map.getLayoutProperty(layer.id, 'visibility') !== 'none') + .map((layer) => layer.id) + }; + }); + + if (view.canvas.effectivePixelRatio < 1.9) { + throw new Error(`${name} rendered below the required 2x effective pixel ratio.`); + } + if (!view.styleLoaded || view.renderedWorldFeatureCount <= 0) { + throw new Error(`${name} did not render features from the selected worldwide PMTiles shard.`); + } + if ( + typeof view.source?.url !== 'string' || + !view.source.url.includes(`/world-tiles/${expectedRegion.asset}`) + ) { + throw new Error(`${name} rendered from the wrong worldwide PMTiles shard.`); + } + + const screenshot = await page.screenshot({ + path: path.join(outputDir, `${name}.png`), + fullPage: false + }); + if (screenshot.length < 25_000) { + throw new Error(`${name} produced an unexpectedly empty browser render.`); + } + + return { ...view, screenshotBytes: screenshot.length, expectedRegion }; + } + + const views = { + fresnoRegional: await capture('fresno-regional-z8', [-119.55, 36.75], 8), + fresnoCity: await capture('fresno-city-z11', [-119.7871, 36.7378], 11), + fresnoStreet: await capture('fresno-street-z14', [-119.7871, 36.7378], 14), + sierraTerrain: await capture('sierra-terrain-z10', [-118.85, 36.85], 10) + }; + + const allowedFailure = (entry) => { + const url = entry.url || entry.text || ''; + const error = entry.error || ''; + return /\/favicon\.ico(?:$|\?)/i.test(url) || /ERR_ABORTED/i.test(error); + }; + const consoleFailures = consoleMessages.filter( + (entry) => entry.type === 'error' || /failed|error|404|416/i.test(entry.text) + ); + const unexpectedNetworkFailures = networkFailures.filter((entry) => !allowedFailure(entry)); + const unexpectedConsoleFailures = consoleFailures.filter((entry) => !allowedFailure(entry)); + + const report = { + generatedAt: new Date().toISOString(), + origin, + browser: 'chromium', + mode: 'worldwide-pinned-manifest-through-runtime-proxy', + viewport: { width: 1440, height: 1000, deviceScaleFactor: 2 }, + manifest: { + plannedRegionCount: manifest.plannedRegionCount, + availableRegionCount: manifest.availableRegionCount, + missingRegionCount: manifest.missingRegionCount, + regionCount: manifest.regions.length + }, + rangeChecks: [...rangeChecks.values()], + views, + pageErrors, + networkFailures, + consoleFailures, + unexpectedNetworkFailures, + unexpectedConsoleFailures, + passed: pageErrors.length === 0 && unexpectedNetworkFailures.length === 0 && unexpectedConsoleFailures.length === 0 + }; + + await fs.writeFile(path.join(outputDir, 'final-world-fresno-report.json'), `${JSON.stringify(report, null, 2)}\n`); + + if (!report.passed) { + throw new Error(`Worldwide Fresno browser validation failed: ${JSON.stringify({ + pageErrors, + unexpectedNetworkFailures, + unexpectedConsoleFailures + })}`); + } + + console.log(`Validated ${Object.keys(views).length} high-DPI Fresno/Sierra views against the completed worldwide PMTiles release.`); +} finally { + await browser.close(); +} diff --git a/scripts/check-pmtiles-integration.mjs b/scripts/check-pmtiles-integration.mjs new file mode 100644 index 00000000..35d90018 --- /dev/null +++ b/scripts/check-pmtiles-integration.mjs @@ -0,0 +1,154 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const [ + pkg, + helper, + router, + sourcePass, + sourceProfile, + profilePreparer, + buildScript, + planner, + pinnedPlanner, + manifestBuilder, + server, + workflow, + action, + capture, + readme +] = await Promise.all([ + fs.readFile(path.join(root, 'package.json'), 'utf8').then(JSON.parse), + fs.readFile(path.join(root, 'src/occumed-map.js'), 'utf8'), + fs.readFile(path.join(root, 'src/world-pmtiles-router.js'), 'utf8'), + fs.readFile(path.join(root, 'scripts/use-custom-pmtiles-source.mjs'), 'utf8'), + fs.readFile(path.join(root, 'planetiler/occumed-basemap.yml'), 'utf8'), + fs.readFile(path.join(root, 'scripts/prepare-planetiler-profile.mjs'), 'utf8'), + fs.readFile(path.join(root, 'planetiler/build-region.sh'), 'utf8'), + fs.readFile(path.join(root, 'scripts/plan-world-shards.mjs'), 'utf8'), + fs.readFile(path.join(root, 'scripts/plan-world-shards-final.mjs'), 'utf8'), + fs.readFile(path.join(root, 'scripts/build-world-manifest.mjs'), 'utf8'), + fs.readFile(path.join(root, 'server.mjs'), 'utf8'), + fs.readFile(path.join(root, '.github/workflows/repair-missing-world-pmtiles.yml'), 'utf8'), + fs.readFile(path.join(root, '.github/actions/build-pmtiles-shard-final/action.yml'), 'utf8'), + fs.readFile(path.join(root, 'scripts/capture-world-fresno-preview.mjs'), 'utf8'), + fs.readFile(path.join(root, 'README.md'), 'utf8') +]); + +const failures = []; +const fail = (message) => failures.push(message); + +if (pkg.dependencies?.pmtiles !== '4.4.1') fail('The PMTiles browser dependency is missing or unpinned.'); +if (pkg.scripts?.['tiles:plan-world'] !== 'node scripts/plan-world-shards.mjs --scope all') { + fail('The worldwide shard planning command is missing.'); +} +if (!helper.includes("import { Protocol } from 'pmtiles';")) fail('The PMTiles protocol import is missing.'); +if (!helper.includes("maplibregl.addProtocol('pmtiles', pmtilesProtocol.tile)")) fail('MapLibre does not register the PMTiles protocol.'); +if (!helper.includes("source.url.replaceAll('__OCCUMED_PUBLIC_ORIGIN__', styleOrigin)")) fail('PMTiles source URLs are not resolved against the deployed origin.'); +if (!helper.includes('installWorldPmtilesRouter')) fail('The shared map helper does not install worldwide PMTiles routing.'); +if (!helper.includes("style.metadata?.['occumed:world-manifest-url']")) fail('The shared map helper does not read the worldwide manifest URL.'); +if (!readme.includes('createOccumedMap')) fail('Reusable integration docs bypass the PMTiles-aware map helper.'); +if (!readme.includes('Directly fetching the style')) fail('Reusable integration docs do not reject unsupported raw-style construction.'); + +if (!router.includes('source.setUrl(nextUrl)')) fail('The worldwide router cannot swap regional PMTiles archives.'); +if (!router.includes('map.getZoom() >= switchZoom')) fail('The worldwide router does not preserve the low-zoom global overview.'); +if (!router.includes('occumedworldsourcechange')) fail('Worldwide source changes are not observable by consuming apps.'); +if (!router.includes('longitude >= west || longitude <= east')) fail('The worldwide router does not support antimeridian bounds.'); + +if (!sourcePass.includes('OCCUMED_PMTILES_URL')) fail('The runtime style cannot be pointed at a custom PMTiles archive.'); +if (!sourcePass.includes('OCCUMED_WORLD_MANIFEST_URL')) fail('The runtime style cannot override the worldwide PMTiles manifest.'); +if (!sourcePass.includes("'__OCCUMED_PUBLIC_ORIGIN__/world-manifest.json'")) fail('The deployed worldwide manifest endpoint is not enabled by default.'); +if (!sourcePass.includes("'occumed:vector-source-mode': 'world-sharded-planetiler-pmtiles'")) fail('Worldwide PMTiles source metadata is missing.'); + +if (!buildScript.includes('ghcr.io/onthegomap/planetiler:0.10.2')) fail('Planetiler is not pinned to the published 0.10.2 Docker image.'); +if (!buildScript.includes('prepare-planetiler-profile.mjs')) fail('PMTiles builds do not generate the corrected Planetiler profile.'); +if (!buildScript.includes('/profile/occumed-basemap.yml')) fail('PMTiles builds do not invoke the generated YAML profile directly.'); +if (buildScript.includes('generate-custom') || buildScript.includes('--schema=')) fail('PMTiles builds use unsupported custom-profile wrapper arguments.'); +if (!buildScript.includes('--osm-path="$CONTAINER_OSM_PATH"')) fail('PMTiles builds do not use Planetiler\'s supported local OSM path argument.'); +if (buildScript.includes('--osm-source-path=')) fail('PMTiles builds still use the unsupported osm-source-path argument.'); +if (!buildScript.includes('sha256sum "$OUTPUT_NAME"')) fail('PMTiles checksums are not portable across build paths.'); + +for (const marker of [ + 'version: "0.3.0"', + 'args.area.replace("/", "_")', + 'leisure: [garden, playground, golf_course, pitch]', + 'highway: [unclassified, residential, living_street]', + 'waterway: [river, canal, stream]', + 'name:latin' +]) { + if (!profilePreparer.includes(marker)) fail(`The generated Planetiler profile correction is missing: ${marker}`); +} + +if (!planner.includes('https://download.geofabrik.de/index-v1.json')) fail('The worldwide planner is not sourced from the Geofabrik index.'); +if (!planner.includes('hasDownloadableDescendant')) fail('The worldwide planner does not reject overlapping parent extracts recursively.'); +if (!planner.includes('DIRECT_PBF_LIMIT_BYTES')) fail('The worldwide planner does not identify oversized source extracts.'); +if (!planner.includes('splitRegion(region, sourceSizeBytes)')) fail('The worldwide planner cannot subdivide oversized sources.'); +if (!planner.includes("extract_bbox: `${roundedWest},${roundedSouth},${roundedEast},${roundedNorth}`")) fail('Bounded subdivision metadata is missing from the worldwide plan.'); +if (!planner.includes('coveredWidth > 300')) fail('The worldwide planner does not preserve global versus antimeridian-aware bounds.'); +if (!planner.includes('asset_name: `occumed-${slug}.pmtiles`')) fail('The worldwide planner does not produce deterministic archive names.'); + +if (!pinnedPlanner.includes('canonical-world-plan.json')) fail('The final completion planner is not pinned to the audited canonical inventory.'); +if (!pinnedPlanner.includes('forcedSplits')) fail('The final pinned planner does not preserve required oversized-parent replacements.'); +if (!pinnedPlanner.includes("antimeridian: true")) fail('The final pinned planner does not preserve the Far Eastern antimeridian split.'); +if (!pinnedPlanner.includes('extract_bbox: `${west},${south},${east},${north}`')) fail('The final pinned planner does not emit bounded child coordinates.'); +if (!pinnedPlanner.includes('plan.include.sort')) fail('The final pinned plan is not deterministically ordered.'); + +if (!manifestBuilder.includes("archiveTransport: 'same-origin-release-proxy'")) fail('The worldwide manifest does not use the release proxy transport.'); +if (!manifestBuilder.includes("url: `__OCCUMED_PUBLIC_ORIGIN__/world-tiles/${region.asset_name}`")) fail('The worldwide manifest does not route archives through the deployed origin.'); + +if (!server.includes("url.pathname === '/world-manifest.json'")) fail('The server does not proxy the worldwide manifest.'); +if (!server.includes('/^\\/world-tiles\\/(occumed-[a-z0-9-]+\\.pmtiles)$/')) fail('The server does not constrain worldwide PMTiles asset names.'); +if (!server.includes('Readable.fromWeb(upstream.body)')) fail('The server does not stream release archives.'); +if (!server.includes('if (request.headers.range) headers.Range = request.headers.range')) fail('The release proxy does not forward PMTiles byte ranges.'); + +if (!workflow.includes('Complete Only Pinned Missing Worldwide PMTiles')) fail('The pinned worldwide completion workflow is missing.'); +if (!workflow.includes('node scripts/plan-world-shards-final.mjs')) fail('The completion workflow does not generate the pinned canonical plan.'); +if ((workflow.match(/node scripts\/plan-world-shards-final\.mjs/g) || []).length !== 1) fail('The pinned canonical plan must be generated exactly once per completion run.'); +if (!workflow.includes('max-parallel: 24')) fail('The missing-only completion matrix does not request bounded concurrency.'); +if (!workflow.includes('matrix: ${{ fromJson(needs.plan.outputs.matrix) }}')) fail('The completion workflow does not schedule only the exact missing matrix.'); +if (!workflow.includes('extract-bbox: ${{ matrix.extract_bbox }}')) fail('The missing-only matrix does not pass bounded subdivision coordinates to the shard action.'); +if (!workflow.includes('uses: ./.github/actions/build-pmtiles-shard-final')) fail('The completion workflow does not use the hardened final shard action.'); +if (!workflow.includes('Publish manifest only when pinned plan has zero missing shards')) fail('The completion workflow does not publish the final manifest.'); +if (!workflow.includes('test "$missing" = "0"')) fail('The completion workflow does not reject incomplete worldwide coverage.'); +if (!workflow.includes('gh release upload "$WORLD_RELEASE_TAG" world-release/world-manifest.json')) fail('The completed manifest is not published to the release.'); + +if (!action.includes('Reuse existing nonzero release asset')) fail('Repair runs do not reuse nonzero published worldwide archives.'); +if (!action.includes('osmium extract --bbox="$EXTRACT_BBOX"')) fail('Oversized-region subdivisions are not extracted before Planetiler runs.'); +if (!action.includes("test \"$(head -c 7 \"$output\")\" = 'PMTiles'")) fail('Local shard validation does not assert the PMTiles magic header.'); +if (!action.includes('Archive exceeds GitHub Release safe file size')) fail('Shard publication does not reject unsafe oversized release assets.'); +if (!action.includes('gh release upload')) fail('Worldwide PMTiles shards are not published to GitHub Releases.'); +if (!action.includes('Release asset is still missing after upload')) fail('Shard publication does not verify a nonzero release asset after upload.'); + +for (const requiredLayer of [ + 'landcover', 'landuse', 'park', 'water', 'waterway', 'transportation', + 'transportation_name', 'building', 'aeroway', 'aerodrome_label', 'boundary', + 'place', 'poi', 'water_name', 'mountain_peak', 'housenumber' +]) { + if (!sourceProfile.includes(`- id: ${requiredLayer}`)) { + fail(`Planetiler source profile is missing layer: ${requiredLayer}`); + } +} + +for (const requiredAttribute of ['class', 'subclass', 'brunnel', 'ramp', 'ref', 'rank', 'admin_level', 'disputed']) { + if (!sourceProfile.includes(`key: ${requiredAttribute}`)) { + fail(`Planetiler source profile is missing normalized attribute: ${requiredAttribute}`); + } +} + +if (!capture.includes("fetch(`${origin}/world-manifest.json`")) fail('Final visual validation does not load the completed worldwide manifest through the runtime.'); +if (!capture.includes("headers: { Range: 'bytes=0-126' }")) fail('Final visual validation does not verify runtime PMTiles byte-range delivery.'); +if (!capture.includes("source.url.includes(`/world-tiles/${expectedAsset}`)")) fail('Final visual validation does not assert the selected worldwide shard.'); +if (!capture.includes('map.areTilesLoaded()')) fail('Final visual validation does not require all map tiles to load.'); +if (!capture.includes('effectivePixelRatio < 1.9')) fail('Final visual validation does not enforce 2x high-DPI rendering.'); +if (!capture.includes('unexpectedNetworkFailures')) fail('Final visual validation does not reject unexpected resource failures.'); +if (!capture.includes('missingRegionCount') || !capture.includes('!== 0')) fail('Final visual validation does not reject an incomplete manifest.'); + +if (failures.length) { + console.error('PMTiles integration validation failed:'); + for (const failure of failures) console.error(`- ${failure}`); + process.exit(1); +} + +console.log('PMTiles integration validated: supported Planetiler YAML invocation, audited pinned planning, antimeridian-safe bounded child shards, missing-only 24-worker completion, hardened release publication, protocol registration, worldwide routing, same-origin range proxying, strict high-DPI Fresno evidence, and zero-missing manifest publication are present.'); diff --git a/scripts/check-runtime.mjs b/scripts/check-runtime.mjs index 1f1d399a..b04fdd7f 100644 --- a/scripts/check-runtime.mjs +++ b/scripts/check-runtime.mjs @@ -23,8 +23,11 @@ if (runtime.name !== 'Occu-Med Terrain — Open') fail('Runtime style name is in if (runtime.projection?.type !== 'globe') fail('MapLibre globe projection is missing.'); if (runtimeText.includes('mapbox://')) fail('Runtime style still contains a mapbox:// endpoint.'); if (runtimeText.includes('api.mapbox.com')) fail('Runtime style still contains a Mapbox API endpoint.'); -if (!runtime.glyphs?.startsWith('https://tiles.openfreemap.org/fonts/')) { - fail('Runtime glyph endpoint is not the no-key OpenFreeMap endpoint.'); +if (Object.hasOwn(runtime, 'glyphs')) { + fail('Runtime style still depends on an external glyph endpoint instead of MapLibre local glyph rendering.'); +} +if (runtime.metadata?.['occumed:glyph-rendering'] !== 'local-maplibre') { + fail('Runtime style does not declare MapLibre local glyph rendering.'); } if (!String(runtime.sprite).includes('/sprites/occumed')) fail('Local Occu-Med sprite endpoint is missing.'); @@ -95,7 +98,7 @@ const activeFontStrings = runtime.layers.flatMap((layer) => ); const unavailableFonts = [...new Set( activeFontStrings.filter( - (font) => font.includes('DIN Pro') || font.includes('Arial Unicode MS') + (font) => font.includes('DIN Pro') || font.includes('Arial Unicode MS') || font.includes('Noto Sans') ) )]; if (unavailableFonts.length) { @@ -104,6 +107,8 @@ if (unavailableFonts.length) { if (report.originalLayerCount !== original.layers.length) fail('Compatibility report source count is stale.'); if (report.runtimeLayerCount !== runtime.layers.length) fail('Compatibility report runtime count is stale.'); +if (report.endpoints?.glyphs !== null) fail('Compatibility report still records an external glyph endpoint.'); +if (report.localGlyphRendering !== true) fail('Compatibility report does not record local glyph rendering.'); if (failures.length) { console.error('Occu-Med open basemap validation failed:'); @@ -112,5 +117,5 @@ if (failures.length) { } console.log( - `Open basemap validated: ${runtime.layers.length}/${original.layers.length} visual layers, ${runtime.layers.filter((layer) => layer.type === 'symbol').length} symbol layers, ${activeFontStrings.length} active font references, and ${spriteCount} sprite images.` + `Open basemap validated: ${runtime.layers.length}/${original.layers.length} visual layers, ${runtime.layers.filter((layer) => layer.type === 'symbol').length} symbol layers, ${activeFontStrings.length} local font references, and ${spriteCount} sprite images.` ); diff --git a/scripts/check-server-health.mjs b/scripts/check-server-health.mjs index b4d487f5..147a1f1c 100644 --- a/scripts/check-server-health.mjs +++ b/scripts/check-server-health.mjs @@ -1,8 +1,17 @@ import { spawn } from 'node:child_process'; import { once } from 'node:events'; +import fs from 'node:fs/promises'; import http from 'node:http'; +import path from 'node:path'; const port = 43173; +const testTilesDir = path.resolve('dist/tiles'); +const testArchivePath = path.join(testTilesDir, '__range-test.pmtiles'); +const testArchive = Buffer.from('0123456789abcdefghijklmnopqrstuvwxyz', 'utf8'); + +await fs.mkdir(testTilesDir, { recursive: true }); +await fs.writeFile(testArchivePath, testArchive); + const child = spawn(process.execPath, ['server.mjs'], { env: { ...process.env, PORT: String(port), HOST: '0.0.0.0' }, stdio: ['ignore', 'pipe', 'pipe'] @@ -16,27 +25,30 @@ child.stderr.on('data', (chunk) => { output += chunk.toString(); }); -async function request(method) { +async function request({ method = 'GET', pathname = '/health?render-probe=1', headers = {} } = {}) { return new Promise((resolve, reject) => { const req = http.request( { hostname: '127.0.0.1', port, - path: '/health?render-probe=1', + path: pathname, method, timeout: 3000, - headers: { Host: `map-yxjb.onrender.com:${port}` } + headers: { Host: `map-yxjb.onrender.com:${port}`, ...headers } }, (response) => { - let body = ''; - response.setEncoding('utf8'); - response.on('data', (chunk) => { - body += chunk; - }); - response.on('end', () => resolve({ status: response.statusCode, body })); + const chunks = []; + response.on('data', (chunk) => chunks.push(Buffer.from(chunk))); + response.on('end', () => + resolve({ + status: response.statusCode, + body: Buffer.concat(chunks), + headers: response.headers + }) + ); } ); - req.on('timeout', () => req.destroy(new Error(`${method} /health timed out`))); + req.on('timeout', () => req.destroy(new Error(`${method} ${pathname} timed out`))); req.on('error', reject); req.end(); }); @@ -50,17 +62,41 @@ try { await new Promise((resolve) => setTimeout(resolve, 100)); } - const get = await request('GET'); - if (get.status !== 200 || get.body !== 'ok') { - throw new Error(`GET /health returned ${get.status} with body ${JSON.stringify(get.body)}`); + const get = await request(); + if (get.status !== 200 || get.body.toString('utf8') !== 'ok') { + throw new Error(`GET /health returned ${get.status} with body ${JSON.stringify(get.body.toString('utf8'))}`); + } + + const head = await request({ method: 'HEAD' }); + if (head.status !== 200 || head.body.length !== 0) { + throw new Error(`HEAD /health returned ${head.status} with ${head.body.length} body bytes`); + } + + const range = await request({ + pathname: '/tiles/__range-test.pmtiles', + headers: { Range: 'bytes=5-14' } + }); + if (range.status !== 206) throw new Error(`PMTiles range request returned ${range.status} instead of 206.`); + if (range.body.toString('utf8') !== testArchive.subarray(5, 15).toString('utf8')) { + throw new Error('PMTiles range response returned the wrong bytes.'); + } + if (range.headers['accept-ranges'] !== 'bytes') throw new Error('PMTiles response is missing Accept-Ranges: bytes.'); + if (range.headers['content-range'] !== `bytes 5-14/${testArchive.length}`) { + throw new Error(`Unexpected PMTiles Content-Range: ${range.headers['content-range']}`); + } + if (range.headers['content-type'] !== 'application/vnd.pmtiles') { + throw new Error(`Unexpected PMTiles content type: ${range.headers['content-type']}`); } - const head = await request('HEAD'); - if (head.status !== 200 || head.body !== '') { - throw new Error(`HEAD /health returned ${head.status} with body ${JSON.stringify(head.body)}`); + const invalidRange = await request({ + pathname: '/tiles/__range-test.pmtiles', + headers: { Range: `bytes=${testArchive.length + 10}-` } + }); + if (invalidRange.status !== 416) { + throw new Error(`Invalid PMTiles range returned ${invalidRange.status} instead of 416.`); } - console.log('Server health check passed for GET and HEAD with a Render-style Host header.'); + console.log('Server checks passed: Render health GET/HEAD and PMTiles HTTP byte ranges.'); } finally { child.kill('SIGTERM'); if (child.exitCode === null) { @@ -69,4 +105,5 @@ try { new Promise((resolve) => setTimeout(resolve, 2000)) ]); } + await fs.rm(testArchivePath, { force: true }); } diff --git a/scripts/normalize-runtime-fonts.mjs b/scripts/normalize-runtime-fonts.mjs index 3c2ecd5c..cd2d0db0 100644 --- a/scripts/normalize-runtime-fonts.mjs +++ b/scripts/normalize-runtime-fonts.mjs @@ -21,8 +21,19 @@ function openFont(font) { } if (font.startsWith('Arial Unicode MS')) { - if (/Italic/i.test(font)) return 'Noto Sans Italic'; - return 'Noto Sans Regular'; + if (/Bold/i.test(font)) { + return /Italic/i.test(font) ? 'Open Sans Semibold Italic' : 'Open Sans Semibold'; + } + if (/Italic/i.test(font)) return 'Open Sans Italic'; + return 'Open Sans Regular'; + } + + if (font.startsWith('Noto Sans')) { + if (/Bold|Semibold/i.test(font)) { + return /Italic/i.test(font) ? 'Open Sans Semibold Italic' : 'Open Sans Semibold'; + } + if (/Italic/i.test(font)) return 'Open Sans Italic'; + return 'Open Sans Regular'; } return font; diff --git a/scripts/plan-world-shards-final.mjs b/scripts/plan-world-shards-final.mjs new file mode 100644 index 00000000..711d9dd9 --- /dev/null +++ b/scripts/plan-world-shards-final.mjs @@ -0,0 +1,90 @@ +#!/usr/bin/env node + +import fs from 'node:fs/promises'; + +const PINNED_PLAN_PATH = 'diagnostics/world-release-inventory/canonical-world-plan.json'; +const plan = JSON.parse(await fs.readFile(PINNED_PLAN_PATH, 'utf8')); + +const forcedSplits = new Map([ + ['northwestern-fed-district--r1-c1', { rows: 2, columns: 4, generation: 's2' }], + ['far-eastern-fed-district', { rows: 2, columns: 4, generation: 's3', antimeridian: true }], + ['siberian-fed-district--r1-c1', { rows: 2, columns: 4, generation: 's2' }], + ['ural-fed-district', { rows: 2, columns: 4, generation: 's2' }] +]); + +function round(value) { + return Number(value.toFixed(6)); +} + +function longitudeSegments(westUnwrapped, eastUnwrapped) { + if (westUnwrapped < 180 && eastUnwrapped > 180) { + return [ + [westUnwrapped, 180], + [-180, eastUnwrapped - 360] + ]; + } + if (westUnwrapped >= 180) return [[westUnwrapped - 360, eastUnwrapped - 360]]; + return [[westUnwrapped, eastUnwrapped]]; +} + +function splitTarget(target, config) { + const { rows, columns, generation, antimeridian = false } = config; + const eastUnwrapped = antimeridian && target.east < target.west ? target.east + 360 : target.east; + const longitudeStep = (eastUnwrapped - target.west) / columns; + const latitudeStep = (target.north - target.south) / rows; + const children = []; + + for (let row = 0; row < rows; row += 1) { + const south = round(target.south + latitudeStep * row); + const north = round(row === rows - 1 ? target.north : target.south + latitudeStep * (row + 1)); + + for (let column = 0; column < columns; column += 1) { + const westUnwrapped = target.west + longitudeStep * column; + const eastCellUnwrapped = column === columns - 1 + ? eastUnwrapped + : target.west + longitudeStep * (column + 1); + const segments = antimeridian + ? longitudeSegments(westUnwrapped, eastCellUnwrapped) + : [[westUnwrapped, eastCellUnwrapped]]; + + segments.forEach(([segmentWest, segmentEast], segmentIndex) => { + const segmentSuffix = segments.length > 1 ? `-s${segmentIndex + 1}` : ''; + const suffix = `--${generation}-r${row + 1}-c${column + 1}${segmentSuffix}`; + const id = `${target.id}${suffix}`; + const slug = `${target.slug}${suffix}`; + const west = round(segmentWest); + const east = round(segmentEast); + + children.push({ + ...target, + id, + slug, + name: `${target.name} split ${row + 1}.${column + 1}${segmentSuffix}`, + extract_bbox: `${west},${south},${east},${north}`, + west, + south, + east, + north, + asset_name: `occumed-${slug}.pmtiles`, + metadata_name: `occumed-${slug}.json`, + oversized_parent_id: target.id + }); + }); + } + } + + return children; +} + +for (const [targetId, config] of forcedSplits) { + const target = (plan.include || []).find((region) => region.id === targetId); + if (!target) throw new Error(`Pinned canonical target is missing: ${targetId}`); + const children = splitTarget(target, config); + plan.include = plan.include + .filter((region) => region.id !== targetId) + .concat(children); + process.stderr.write(`Pinned replacement: ${targetId} -> ${children.length} child shards.\n`); +} + +plan.include.sort((left, right) => left.id.localeCompare(right.id)); +process.stdout.write(`${JSON.stringify(plan, null, 2)}\n`); diff --git a/scripts/plan-world-shards.mjs b/scripts/plan-world-shards.mjs new file mode 100644 index 00000000..1aea6502 --- /dev/null +++ b/scripts/plan-world-shards.mjs @@ -0,0 +1,368 @@ +#!/usr/bin/env node + +import fs from 'node:fs/promises'; + +const INDEX_URL = process.env.GEOFABRIK_INDEX_URL || 'https://download.geofabrik.de/index-v1.json'; +const INDEX_FILE = process.env.GEOFABRIK_INDEX_FILE || ''; +const DEFAULT_BUCKETS = 6; +const DIRECT_PBF_LIMIT_BYTES = Number(process.env.OCCUMED_DIRECT_PBF_LIMIT_BYTES || 850_000_000); +const TARGET_SPLIT_PBF_BYTES = Number(process.env.OCCUMED_TARGET_SPLIT_PBF_BYTES || 300_000_000); +const MAX_SPLIT_CELLS = Number(process.env.OCCUMED_MAX_SPLIT_CELLS || 24); +const SIZE_PROBE_CONCURRENCY = Number(process.env.OCCUMED_SIZE_PROBE_CONCURRENCY || 16); +const SIZE_AWARE = process.env.OCCUMED_WORLD_SIZE_AWARE !== '0'; +const rootIds = new Set([ + 'africa', + 'antarctica', + 'asia', + 'australia-oceania', + 'central-america', + 'europe', + 'north-america', + 'south-america' +]); + +function parseArgs(argv) { + const options = { scope: 'all', buckets: DEFAULT_BUCKETS, bucket: null }; + for (let index = 0; index < argv.length; index += 1) { + const value = argv[index]; + if (value === '--scope') options.scope = argv[++index] || 'all'; + else if (value === '--buckets') options.buckets = Number(argv[++index]); + else if (value === '--bucket') options.bucket = Number(argv[++index]); + else if (!value.startsWith('--')) options.scope = value; + } + if (!Number.isSafeInteger(options.buckets) || options.buckets < 1 || options.buckets > 32) { + throw new Error('--buckets must be an integer from 1 to 32.'); + } + if ( + options.bucket !== null && + (!Number.isSafeInteger(options.bucket) || options.bucket < 0 || options.bucket >= options.buckets) + ) { + throw new Error('--bucket must be within the configured bucket count.'); + } + return options; +} + +function walkCoordinates(value, visit) { + if (!Array.isArray(value)) return; + if (value.length >= 2 && typeof value[0] === 'number' && typeof value[1] === 'number') { + visit(value[0], value[1]); + return; + } + for (const child of value) walkCoordinates(child, visit); +} + +function normalize360(longitude) { + return ((longitude % 360) + 360) % 360; +} + +function signedLongitude(longitude) { + const normalized = normalize360(longitude); + return normalized > 180 ? normalized - 360 : normalized; +} + +function roundCoordinate(value) { + return Number(value.toFixed(6)); +} + +function geometryBounds(geometry) { + if (!geometry?.coordinates) return null; + const longitudes = []; + let south = Infinity; + let north = -Infinity; + walkCoordinates(geometry.coordinates, (longitude, latitude) => { + if (!Number.isFinite(longitude) || !Number.isFinite(latitude)) return; + longitudes.push(normalize360(longitude)); + south = Math.min(south, latitude); + north = Math.max(north, latitude); + }); + if (!longitudes.length || !Number.isFinite(south) || !Number.isFinite(north)) return null; + + longitudes.sort((left, right) => left - right); + let largestGap = -1; + let largestGapIndex = 0; + for (let index = 0; index < longitudes.length; index += 1) { + const current = longitudes[index]; + const next = index === longitudes.length - 1 ? longitudes[0] + 360 : longitudes[index + 1]; + const gap = next - current; + if (gap > largestGap) { + largestGap = gap; + largestGapIndex = index; + } + } + + const coveredWidth = 360 - largestGap; + if (coveredWidth > 300) { + return [-180, roundCoordinate(south), 180, roundCoordinate(north)]; + } + + const start = longitudes[(largestGapIndex + 1) % longitudes.length]; + const end = longitudes[largestGapIndex]; + return [ + roundCoordinate(signedLongitude(start)), + roundCoordinate(south), + roundCoordinate(signedLongitude(end)), + roundCoordinate(north) + ]; +} + +function slugify(id) { + return String(id) + .toLowerCase() + .replaceAll('/', '--') + .replace(/[^a-z0-9-]+/g, '-') + .replace(/-{3,}/g, '--') + .replace(/^-|-$/g, ''); +} + +function ancestorRoot(id, byId) { + let current = byId.get(id); + const seen = new Set(); + while (current && !seen.has(current.id)) { + seen.add(current.id); + if (rootIds.has(current.id)) return current.id; + current = byId.get(current.parent); + } + return null; +} + +async function loadIndex() { + if (INDEX_FILE) return JSON.parse(await fs.readFile(INDEX_FILE, 'utf8')); + const response = await fetch(INDEX_URL, { + headers: { 'User-Agent': 'Occu-Med-Map/world-pmtiles-planner' } + }); + if (!response.ok) throw new Error(`Unable to load Geofabrik index (${response.status}).`); + return response.json(); +} + +function buildBasePlan(index, scope) { + const entries = (index.features || []) + .map((feature) => { + const properties = feature.properties || {}; + const id = properties.id; + const pbfUrl = properties.urls?.pbf; + if (!id) return null; + return { + id, + parent: properties.parent || null, + name: properties.name || id, + pbfUrl: typeof pbfUrl === 'string' ? pbfUrl : null, + bounds: geometryBounds(feature.geometry) + }; + }) + .filter(Boolean); + + const byId = new Map(entries.map((entry) => [entry.id, entry])); + const children = new Map(); + for (const entry of entries) { + if (!entry.parent) continue; + const list = children.get(entry.parent) || []; + list.push(entry.id); + children.set(entry.parent, list); + } + + const descendantMemo = new Map(); + function hasDownloadableDescendant(id, seen = new Set()) { + if (descendantMemo.has(id)) return descendantMemo.get(id); + if (seen.has(id)) return false; + const nextSeen = new Set(seen).add(id); + const result = (children.get(id) || []).some((childId) => { + const child = byId.get(childId); + return Boolean(child?.pbfUrl || hasDownloadableDescendant(childId, nextSeen)); + }); + descendantMemo.set(id, result); + return result; + } + + const selected = []; + for (const entry of entries) { + if (!entry.pbfUrl || !entry.bounds) continue; + const root = ancestorRoot(entry.id, byId) || entry.id; + if (scope !== 'all' && root !== scope && entry.id !== scope) continue; + + // Select true downloadable leaves, not merely entries without an immediate + // downloadable child. This removes overlapping parent archives when deeper + // regional PBFs exist anywhere below them in the Geofabrik hierarchy. + if (hasDownloadableDescendant(entry.id)) continue; + + const [west, south, east, north] = entry.bounds; + const slug = slugify(entry.id); + selected.push({ + id: entry.id, + slug, + name: entry.name, + continent: root, + pbf_url: entry.pbfUrl, + extract_bbox: '', + source_region_id: entry.id, + source_size_bytes: null, + west, + south, + east, + north, + asset_name: `occumed-${slug}.pmtiles`, + metadata_name: `occumed-${slug}.json` + }); + } + + selected.sort((left, right) => left.id.localeCompare(right.id)); + return selected; +} + +async function fetchRemoteSize(url) { + const headers = { 'User-Agent': 'Occu-Med-Map/world-pmtiles-planner' }; + for (const method of ['HEAD', 'RANGE']) { + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), 20_000); + try { + const response = await fetch(url, { + method: method === 'HEAD' ? 'HEAD' : 'GET', + redirect: 'follow', + headers: method === 'HEAD' ? headers : { ...headers, Range: 'bytes=0-0' }, + signal: controller.signal + }); + if (!response.ok && response.status !== 206) continue; + const contentRange = response.headers.get('content-range'); + if (contentRange) { + const match = contentRange.match(/\/(\d+)$/); + if (match) return Number(match[1]); + } + const contentLength = Number(response.headers.get('content-length')); + if (Number.isFinite(contentLength) && contentLength > 1) return contentLength; + if (method === 'RANGE') await response.arrayBuffer(); + } catch (error) { + console.error(`Size probe failed for ${url}: ${error.message}`); + } finally { + clearTimeout(timeout); + } + } + return null; +} + +async function mapConcurrent(items, concurrency, mapper) { + const results = new Array(items.length); + let cursor = 0; + async function worker() { + while (true) { + const index = cursor; + cursor += 1; + if (index >= items.length) return; + results[index] = await mapper(items[index], index); + } + } + await Promise.all(Array.from({ length: Math.min(concurrency, items.length) }, () => worker())); + return results; +} + +function unwrapEast(west, east) { + return west > east ? east + 360 : east; +} + +function splitLongitudeCell(west, east) { + if (west < 180 && east > 180) { + return [ + [west, 180], + [-180, east - 360] + ]; + } + if (west >= 180) return [[west - 360, east - 360]]; + return [[west, east]]; +} + +function gridDimensions(bounds, desiredCells) { + const [west, south, east, north] = bounds; + const eastUnwrapped = unwrapEast(west, east); + const longitudeSpan = Math.max(0.001, eastUnwrapped - west); + const latitudeSpan = Math.max(0.001, north - south); + const midLatitude = (south + north) / 2; + const effectiveLongitudeSpan = longitudeSpan * Math.max(0.2, Math.cos((midLatitude * Math.PI) / 180)); + const aspect = effectiveLongitudeSpan / latitudeSpan; + let columns = Math.max(1, Math.ceil(Math.sqrt(desiredCells * aspect))); + let rows = Math.max(1, Math.ceil(desiredCells / columns)); + while (rows * columns < desiredCells) { + if (columns / rows < aspect) columns += 1; + else rows += 1; + } + return { rows, columns, eastUnwrapped }; +} + +function splitRegion(region, sourceSizeBytes) { + const desiredCells = Math.min( + MAX_SPLIT_CELLS, + Math.max(4, Math.ceil(sourceSizeBytes / TARGET_SPLIT_PBF_BYTES)) + ); + const bounds = [region.west, region.south, region.east, region.north]; + const { rows, columns, eastUnwrapped } = gridDimensions(bounds, desiredCells); + const longitudeStep = (eastUnwrapped - region.west) / columns; + const latitudeStep = (region.north - region.south) / rows; + const pieces = []; + + for (let row = 0; row < rows; row += 1) { + const south = region.south + latitudeStep * row; + const north = row === rows - 1 ? region.north : region.south + latitudeStep * (row + 1); + for (let column = 0; column < columns; column += 1) { + const cellWest = region.west + longitudeStep * column; + const cellEast = column === columns - 1 ? eastUnwrapped : region.west + longitudeStep * (column + 1); + const longitudePieces = splitLongitudeCell(cellWest, cellEast); + longitudePieces.forEach(([west, east], segmentIndex) => { + const suffix = longitudePieces.length > 1 ? `-s${segmentIndex + 1}` : ''; + const id = `${region.id}--r${row + 1}-c${column + 1}${suffix}`; + const slug = slugify(id); + const roundedWest = roundCoordinate(west); + const roundedSouth = roundCoordinate(south); + const roundedEast = roundCoordinate(east); + const roundedNorth = roundCoordinate(north); + pieces.push({ + id, + slug, + name: `${region.name} ${row + 1}.${column + 1}${suffix}`, + continent: region.continent, + pbf_url: region.pbf_url, + extract_bbox: `${roundedWest},${roundedSouth},${roundedEast},${roundedNorth}`, + source_region_id: region.id, + source_size_bytes: sourceSizeBytes, + west: roundedWest, + south: roundedSouth, + east: roundedEast, + north: roundedNorth, + asset_name: `occumed-${slug}.pmtiles`, + metadata_name: `occumed-${slug}.json` + }); + }); + } + } + + console.error( + `Subdividing ${region.id}: source=${sourceSizeBytes} bytes -> ${pieces.length} bounded PMTiles shards.` + ); + return pieces; +} + +async function expandOversizedRegions(regions) { + if (!SIZE_AWARE || !regions.length) return regions; + const sizes = await mapConcurrent(regions, SIZE_PROBE_CONCURRENCY, (region) => + fetchRemoteSize(region.pbf_url) + ); + const expanded = []; + for (let index = 0; index < regions.length; index += 1) { + const region = regions[index]; + const size = sizes[index]; + if (Number.isFinite(size)) region.source_size_bytes = size; + if (Number.isFinite(size) && size > DIRECT_PBF_LIMIT_BYTES) { + expanded.push(...splitRegion(region, size)); + } else { + expanded.push(region); + } + } + expanded.sort((left, right) => left.id.localeCompare(right.id)); + return expanded; +} + +const options = parseArgs(process.argv.slice(2)); +const index = await loadIndex(); +let regions = buildBasePlan(index, options.scope); +regions = await expandOversizedRegions(regions); +if (options.bucket !== null) { + regions = regions.filter((_, indexValue) => indexValue % options.buckets === options.bucket); +} + +process.stdout.write(`${JSON.stringify({ include: regions }, null, 2)}\n`); diff --git a/scripts/prepare-planetiler-profile.mjs b/scripts/prepare-planetiler-profile.mjs new file mode 100644 index 00000000..92913505 --- /dev/null +++ b/scripts/prepare-planetiler-profile.mjs @@ -0,0 +1,146 @@ +#!/usr/bin/env node + +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const sourcePath = path.resolve(process.argv[2] || path.join(root, 'planetiler/occumed-basemap.yml')); +const outputPath = path.resolve( + process.argv[3] || path.join(root, '.planetiler-data/generated/occumed-basemap.yml') +); + +let profile = await fs.readFile(sourcePath, 'utf8'); + +const replacements = [ + ['version: "0.2.0"', 'version: "0.3.0"'], + [ + 'default: \'${ args.area + ".osm.pbf" }\'', + 'default: \'${ args.area.replace("/", "_") + ".osm.pbf" }\'' + ], + [ + 'leisure: [park, garden, playground, golf_course, pitch, nature_reserve]', + 'leisure: [garden, playground, golf_course, pitch]' + ], + [ + ' attributes: &transport_name_attributes\n' + + ' - key: class\n' + + ' tag_value: highway\n', + ' attributes: &transport_name_attributes\n' + + ' - key: class\n' + + ' value:\n' + + ' - if:\n' + + ' highway: [unclassified, residential, living_street]\n' + + ' value: minor\n' + + ' - else:\n' + + ' tag_value: highway\n' + ], + [ + ' sort_key_descending:\n' + + ' tag_value: population_number\n' + + ' point_label_grid:\n' + + ' pixel_size:\n' + + ' maxzoom: 8\n' + + ' value: 64\n' + + ' limit:\n' + + ' maxzoom: 8\n' + + ' value: 2\n', + ' # Population is retained as an attribute; unsupported per-feature sort/grid directives were removed.\n' + ], + ...['region', 'town', 'village'].map((place) => [ + ` place: ${place}\n` + + ' attributes:\n' + + ' - key: class\n' + + ' tag_value: place\n' + + ' - key: name\n' + + ' tag_value: name\n' + + ' - key: population\n', + ` place: ${place}\n` + + ' attributes:\n' + + ' - key: class\n' + + ' tag_value: place\n' + + ' - key: name\n' + + ' tag_value: name\n' + + ' - key: name:latin\n' + + ' value:\n' + + ' coalesce:\n' + + ' - tag_value: name:en\n' + + ' - tag_value: name\n' + + ' - key: population\n' + ]), + [ + ' place: [suburb, neighbourhood, hamlet]\n' + + ' attributes:\n' + + ' - key: class\n' + + ' tag_value: place\n' + + ' - key: name\n' + + ' tag_value: name\n' + + ' - key: rank\n', + ' place: [suburb, neighbourhood, hamlet]\n' + + ' attributes:\n' + + ' - key: class\n' + + ' tag_value: place\n' + + ' - key: name\n' + + ' tag_value: name\n' + + ' - key: name:latin\n' + + ' value:\n' + + ' coalesce:\n' + + ' - tag_value: name:en\n' + + ' - tag_value: name\n' + + ' - key: rank\n' + ], + [ + ' - key: name\n' + + ' tag_value: name\n\n' + + ' - id: mountain_peak\n', + ' - key: name\n' + + ' tag_value: name\n' + + ' - source: osm\n' + + ' geometry: line\n' + + ' min_zoom: 6\n' + + ' include_when:\n' + + ' __all__:\n' + + ' waterway: [river, canal, stream]\n' + + ' name: __any__\n' + + ' attributes:\n' + + ' - key: class\n' + + ' tag_value: waterway\n' + + ' - key: name\n' + + ' tag_value: name\n\n' + + ' - id: mountain_peak\n' + ] +]; + +for (const [before, after] of replacements) { + if (profile.includes(after)) continue; + const occurrences = profile.split(before).length - 1; + if (occurrences !== 1) { + throw new Error( + `Expected one source-profile match but found ${occurrences}: ${before.slice(0, 100)}` + ); + } + profile = profile.replace(before, after); +} + +const requiredMarkers = [ + 'version: "0.3.0"', + 'args.area.replace("/", "_")', + 'leisure: [garden, playground, golf_course, pitch]', + '- id: aerodrome_label', + 'highway: [unclassified, residential, living_street]', + 'waterway: [river, canal, stream]', + 'unsupported per-feature sort/grid directives were removed' +]; +for (const marker of requiredMarkers) { + if (!profile.includes(marker)) throw new Error(`Generated Planetiler profile is missing: ${marker}`); +} +if (profile.includes('sort_key_descending') || profile.includes('point_label_grid')) { + throw new Error('Generated Planetiler profile still contains unsupported feature directives.'); +} +if ((profile.match(/ - key: name:latin/g) || []).length < 7) { + throw new Error('Generated Planetiler profile does not provide name:latin across the place hierarchy.'); +} + +await fs.mkdir(path.dirname(outputPath), { recursive: true }); +await fs.writeFile(outputPath, profile); +console.log(`Prepared corrected Planetiler profile at ${outputPath}.`); diff --git a/scripts/use-custom-pmtiles-source.mjs b/scripts/use-custom-pmtiles-source.mjs new file mode 100644 index 00000000..36ed9702 --- /dev/null +++ b/scripts/use-custom-pmtiles-source.mjs @@ -0,0 +1,58 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const runtimePath = path.join(root, 'public/style/occumed-open.json'); +const runtime = JSON.parse(await fs.readFile(runtimePath, 'utf8')); + +const archiveUrl = process.env.OCCUMED_PMTILES_URL?.trim(); +const configuredWorldManifest = process.env.OCCUMED_WORLD_MANIFEST_URL?.trim(); +const worldManifestUrl = configuredWorldManifest === 'off' + ? null + : configuredWorldManifest || '__OCCUMED_PUBLIC_ORIGIN__/world-manifest.json'; +const source = runtime.sources?.['occumed-open']; + +if (!source || source.type !== 'vector') { + throw new Error('The runtime style is missing the shared Occu-Med vector source.'); +} + +if (worldManifestUrl) { + runtime.metadata = { + ...(runtime.metadata || {}), + 'occumed:vector-source-mode': 'world-sharded-planetiler-pmtiles', + 'occumed:custom-pmtiles-enabled': true, + 'occumed:world-pmtiles-enabled': true, + 'occumed:world-manifest-url': worldManifestUrl, + 'occumed:world-switch-zoom': 6 + }; +} else if (archiveUrl) { + const normalized = archiveUrl.startsWith('pmtiles://') ? archiveUrl : `pmtiles://${archiveUrl}`; + source.url = normalized.replaceAll('__OCCUMED_PUBLIC_ORIGIN__', '__OCCUMED_PUBLIC_ORIGIN__'); + delete source.tiles; + source.attribution = + '© OpenStreetMap contributors'; + + runtime.metadata = { + ...(runtime.metadata || {}), + 'occumed:vector-source-mode': 'custom-planetiler-pmtiles', + 'occumed:custom-pmtiles-enabled': true, + 'occumed:world-pmtiles-enabled': false + }; +} else { + runtime.metadata = { + ...(runtime.metadata || {}), + 'occumed:vector-source-mode': 'open-source-fallback', + 'occumed:custom-pmtiles-enabled': false, + 'occumed:world-pmtiles-enabled': false + }; +} + +await fs.writeFile(runtimePath, `${JSON.stringify(runtime, null, 2)}\n`); +console.log( + worldManifestUrl + ? `Configured worldwide PMTiles manifest: ${worldManifestUrl}` + : archiveUrl + ? `Configured custom PMTiles source: ${archiveUrl}` + : 'Custom PMTiles is disabled; retained the existing open vector fallback.' +); diff --git a/scripts/use-local-maplibre-glyphs.mjs b/scripts/use-local-maplibre-glyphs.mjs new file mode 100644 index 00000000..063822a0 --- /dev/null +++ b/scripts/use-local-maplibre-glyphs.mjs @@ -0,0 +1,74 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const runtimePath = path.join(root, 'public/style/occumed-open.json'); +const reportPath = path.join(root, 'public/style/compatibility-report.json'); + +const runtime = JSON.parse(await fs.readFile(runtimePath, 'utf8')); +const report = JSON.parse(await fs.readFile(reportPath, 'utf8')); + +const expressionOperators = new Set([ + 'array', + 'at', + 'case', + 'coalesce', + 'concat', + 'format', + 'get', + 'interpolate', + 'let', + 'literal', + 'match', + 'step', + 'to-string', + 'var' +]); + +let deduplicatedStacks = 0; + +function normalizeFontValue(value) { + if (!Array.isArray(value)) return value; + + const normalized = value.map(normalizeFontValue); + const plainFontStack = + normalized.length > 0 && + normalized.every((entry) => typeof entry === 'string') && + !expressionOperators.has(normalized[0]); + + if (!plainFontStack) return normalized; + + const unique = [...new Set(normalized)]; + if (unique.length !== normalized.length) deduplicatedStacks += 1; + return unique; +} + +for (const layer of runtime.layers || []) { + if (layer.layout?.['text-font']) { + layer.layout['text-font'] = normalizeFontValue(layer.layout['text-font']); + } +} + +// MapLibre GL JS 5.11+ renders glyphs from local browser fonts when the +// style omits the root glyphs URL. This removes the external glyph service +// as a runtime dependency and prevents remote font-stack 404s. +delete runtime.glyphs; +runtime.metadata = { + ...(runtime.metadata || {}), + 'occumed:glyph-rendering': 'local-maplibre' +}; + +report.endpoints = { + ...(report.endpoints || {}), + glyphs: null +}; +report.localGlyphRendering = true; +report.deduplicatedFontStacks = deduplicatedStacks; + +await fs.writeFile(runtimePath, `${JSON.stringify(runtime, null, 2)}\n`); +await fs.writeFile(reportPath, `${JSON.stringify(report, null, 2)}\n`); + +console.log( + `Enabled MapLibre local glyph rendering and deduplicated ${deduplicatedStacks} font stack(s).` +); diff --git a/scripts/write-world-build-status.mjs b/scripts/write-world-build-status.mjs new file mode 100644 index 00000000..f1703125 --- /dev/null +++ b/scripts/write-world-build-status.mjs @@ -0,0 +1,70 @@ +#!/usr/bin/env node + +import fs from 'node:fs/promises'; +import path from 'node:path'; + +function parseArgs(argv) { + const options = {}; + for (let index = 0; index < argv.length; index += 1) { + const key = argv[index]; + if (key === '--phase') options.phase = argv[++index]; + else if (key === '--plan') options.plan = argv[++index]; + else if (key === '--manifest') options.manifest = argv[++index]; + else if (key === '--output') options.output = argv[++index]; + } + if (!options.phase) throw new Error('Missing --phase.'); + if (!options.output) throw new Error('Missing --output.'); + return options; +} + +const options = parseArgs(process.argv.slice(2)); +const status = { + version: 1, + phase: options.phase, + updatedAt: new Date().toISOString(), + repository: process.env.GITHUB_REPOSITORY || null, + branch: process.env.GITHUB_REF_NAME || null, + runId: process.env.GITHUB_RUN_ID || null, + runAttempt: Number(process.env.GITHUB_RUN_ATTEMPT || 1), + runUrl: + process.env.GITHUB_SERVER_URL && process.env.GITHUB_REPOSITORY && process.env.GITHUB_RUN_ID + ? `${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}` + : null, + headSha: process.env.GITHUB_SHA || null, + releaseTag: process.env.WORLD_RELEASE_TAG || 'occumed-world-v1', + bucketCount: Number(process.env.WORLD_BUCKETS || 6) +}; + +if (options.plan) { + const plan = JSON.parse(await fs.readFile(options.plan, 'utf8')); + const regions = plan.include || []; + status.plannedRegionCount = regions.length; + status.plannedByContinent = Object.fromEntries( + [...regions.reduce((counts, region) => { + counts.set(region.continent, (counts.get(region.continent) || 0) + 1); + return counts; + }, new Map())].sort(([left], [right]) => left.localeCompare(right)) + ); +} + +if (options.manifest) { + const manifest = JSON.parse(await fs.readFile(options.manifest, 'utf8')); + status.plannedRegionCount = manifest.plannedRegionCount; + status.availableRegionCount = manifest.availableRegionCount; + status.missingRegionCount = manifest.missingRegionCount; + status.missingRegions = manifest.missingRegions; + status.manifestGeneratedAt = manifest.generatedAt; + status.complete = manifest.missingRegionCount === 0; +} + +for (let bucket = 0; bucket < status.bucketCount; bucket += 1) { + const value = process.env[`BUCKET_${bucket}_RESULT`]; + if (value) { + status.bucketResults ||= {}; + status.bucketResults[String(bucket)] = value; + } +} + +await fs.mkdir(path.dirname(options.output), { recursive: true }); +await fs.writeFile(options.output, `${JSON.stringify(status, null, 2)}\n`); +console.log(JSON.stringify(status, null, 2)); diff --git a/server.mjs b/server.mjs index 5e3c6bcc..6bfbeb10 100644 --- a/server.mjs +++ b/server.mjs @@ -1,11 +1,21 @@ +import { createReadStream } from 'node:fs'; import fs from 'node:fs/promises'; import http from 'node:http'; import path from 'node:path'; +import { Readable } from 'node:stream'; +import { pipeline } from 'node:stream/promises'; import { fileURLToPath } from 'node:url'; const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), 'dist'); const port = Number(process.env.PORT || 4173); const host = process.env.HOST?.trim() || '0.0.0.0'; +const worldReleaseRepository = process.env.OCCUMED_WORLD_RELEASE_REPOSITORY?.trim() || 'Occumed79/Map'; +const worldReleaseTag = process.env.OCCUMED_WORLD_RELEASE_TAG?.trim() || 'occumed-world-v1'; +const worldManifestAsset = 'world-manifest.json'; +const configuredUpstreamTimeout = Number(process.env.OCCUMED_UPSTREAM_TIMEOUT_MS || 20_000); +const upstreamTimeoutMs = Number.isFinite(configuredUpstreamTimeout) + ? Math.max(configuredUpstreamTimeout, 1_000) + : 20_000; const contentTypes = { '.css': 'text/css; charset=utf-8', @@ -14,11 +24,21 @@ const contentTypes = { '.json': 'application/json; charset=utf-8', '.map': 'application/json; charset=utf-8', '.pbf': 'application/x-protobuf', + '.pmtiles': 'application/vnd.pmtiles', '.png': 'image/png', '.svg': 'image/svg+xml; charset=utf-8', '.webp': 'image/webp' }; +const corsHeaders = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'GET, HEAD, OPTIONS', + 'Access-Control-Allow-Headers': 'Content-Type, Cache-Control, Pragma, Range', + 'Access-Control-Expose-Headers': 'Accept-Ranges, Content-Length, Content-Range', + 'Cross-Origin-Resource-Policy': 'cross-origin', + 'X-Content-Type-Options': 'nosniff' +}; + function requestOrigin(request) { const configured = process.env.PUBLIC_ORIGIN?.trim().replace(/\/$/, ''); if (configured) return configured; @@ -32,15 +52,11 @@ function requestOrigin(request) { function send(response, status, body, contentType, cacheControl = 'no-store', method = 'GET') { response.writeHead(status, { - 'Access-Control-Allow-Origin': '*', - 'Access-Control-Allow-Methods': 'GET, HEAD, OPTIONS', - 'Access-Control-Allow-Headers': 'Content-Type, Cache-Control, Pragma', + ...corsHeaders, 'Cache-Control': cacheControl, 'CDN-Cache-Control': cacheControl, 'Surrogate-Control': cacheControl, - 'Content-Type': contentType, - 'Cross-Origin-Resource-Policy': 'cross-origin', - 'X-Content-Type-Options': 'nosniff' + 'Content-Type': contentType }); if (method === 'HEAD') response.end(); else response.end(body); @@ -73,6 +89,259 @@ async function serveStyle(request, response) { ); } +function releaseAssetUrl(assetName) { + return `https://github.com/${worldReleaseRepository}/releases/download/${encodeURIComponent(worldReleaseTag)}/${encodeURIComponent(assetName)}`; +} + +function copyUpstreamHeaders(upstream, response, cacheControl) { + const headerNames = [ + 'accept-ranges', + 'content-length', + 'content-range', + 'etag', + 'last-modified' + ]; + for (const name of headerNames) { + const value = upstream.headers.get(name); + if (value) response.setHeader(name, value); + } + response.setHeader('Cache-Control', cacheControl); + response.setHeader('CDN-Cache-Control', cacheControl); + response.setHeader('Surrogate-Control', cacheControl); + for (const [name, value] of Object.entries(corsHeaders)) response.setHeader(name, value); +} + +function createUpstreamContext(request, response) { + const controller = new AbortController(); + const timeout = setTimeout(() => { + controller.abort(new Error(`Upstream request exceeded ${upstreamTimeoutMs}ms.`)); + }, upstreamTimeoutMs); + timeout.unref?.(); + + const abortForRequest = () => { + controller.abort(new Error('Client disconnected before the upstream request completed.')); + }; + const abortForResponse = () => { + if (!response.writableFinished) abortForRequest(); + }; + + request.once('aborted', abortForRequest); + response.once('close', abortForResponse); + + return { + signal: controller.signal, + cleanup() { + clearTimeout(timeout); + request.off('aborted', abortForRequest); + response.off('close', abortForResponse); + } + }; +} + +function isUpstreamAbort(error, signal) { + return Boolean( + signal.aborted || + error?.name === 'AbortError' || + error?.name === 'TimeoutError' || + error?.code === 'ABORT_ERR' + ); +} + +function handleUpstreamAbort(request, response, label) { + if (request.aborted || response.destroyed) return; + if (!response.headersSent) { + send( + response, + 504, + `${label} upstream timed out`, + 'text/plain; charset=utf-8', + 'no-store', + request.method + ); + } else { + response.destroy(); + } +} + +async function proxyReleaseAsset(request, response, assetName, contentType, cacheControl) { + const headers = { + 'User-Agent': 'Occu-Med-Map/world-pmtiles-proxy', + Accept: '*/*' + }; + if (request.headers.range) headers.Range = request.headers.range; + + const upstreamContext = createUpstreamContext(request, response); + try { + const upstream = await fetch(releaseAssetUrl(assetName), { + method: request.method, + headers, + redirect: 'follow', + signal: upstreamContext.signal + }); + + if (!upstream.ok && upstream.status !== 206 && upstream.status !== 416) { + send( + response, + upstream.status === 404 ? 404 : 502, + upstream.status === 404 ? 'Worldwide map asset not built yet' : 'Worldwide map asset upstream failed', + 'text/plain; charset=utf-8', + 'no-store', + request.method + ); + return; + } + + response.statusCode = upstream.status; + copyUpstreamHeaders(upstream, response, cacheControl); + response.setHeader('Content-Type', upstream.headers.get('content-type') || contentType); + if (request.method === 'HEAD' || !upstream.body) { + response.end(); + return; + } + await pipeline(Readable.fromWeb(upstream.body), response, { + signal: upstreamContext.signal + }); + } catch (error) { + if (isUpstreamAbort(error, upstreamContext.signal)) { + handleUpstreamAbort(request, response, 'Worldwide map asset'); + return; + } + throw error; + } finally { + upstreamContext.cleanup(); + } +} + +async function serveWorldManifest(request, response) { + const upstreamContext = createUpstreamContext(request, response); + try { + const upstream = await fetch(releaseAssetUrl(worldManifestAsset), { + headers: { + 'User-Agent': 'Occu-Med-Map/world-manifest-proxy', + Accept: 'application/json' + }, + redirect: 'follow', + signal: upstreamContext.signal + }); + if (!upstream.ok) { + send( + response, + upstream.status === 404 ? 404 : 502, + upstream.status === 404 ? 'Worldwide map manifest not built yet' : 'Worldwide map manifest upstream failed', + 'text/plain; charset=utf-8', + 'no-store', + request.method + ); + return; + } + const manifest = (await upstream.text()) + .replaceAll('__OCCUMED_PUBLIC_ORIGIN__', requestOrigin(request)); + send( + response, + 200, + manifest, + contentTypes['.json'], + 'public, max-age=300, must-revalidate', + request.method + ); + } catch (error) { + if (isUpstreamAbort(error, upstreamContext.signal)) { + handleUpstreamAbort(request, response, 'Worldwide map manifest'); + return; + } + throw error; + } finally { + upstreamContext.cleanup(); + } +} + +function parseByteRange(header, size) { + const match = /^bytes=(\d*)-(\d*)$/.exec(String(header || '').trim()); + if (!match) return null; + + const startText = match[1]; + const endText = match[2]; + if (!startText && !endText) return null; + + let start; + let end; + + if (!startText) { + const suffixLength = Number(endText); + if (!Number.isSafeInteger(suffixLength) || suffixLength <= 0) return null; + start = Math.max(size - suffixLength, 0); + end = size - 1; + } else { + start = Number(startText); + end = endText ? Number(endText) : size - 1; + } + + if ( + !Number.isSafeInteger(start) || + !Number.isSafeInteger(end) || + start < 0 || + end < start || + start >= size + ) { + return null; + } + + return { start, end: Math.min(end, size - 1) }; +} + +function pipeFile(response, absolute, options = {}) { + const stream = createReadStream(absolute, options); + stream.on('error', (error) => response.destroy(error)); + stream.pipe(response); +} + +async function servePmtiles(request, response, absolute, stat) { + const cacheControl = 'public, max-age=3600, must-revalidate'; + const rangeHeader = request.headers.range; + + if (!rangeHeader) { + response.writeHead(200, { + ...corsHeaders, + 'Accept-Ranges': 'bytes', + 'Cache-Control': cacheControl, + 'CDN-Cache-Control': cacheControl, + 'Surrogate-Control': cacheControl, + 'Content-Length': stat.size, + 'Content-Type': contentTypes['.pmtiles'] + }); + if (request.method === 'HEAD') response.end(); + else pipeFile(response, absolute); + return; + } + + const range = parseByteRange(rangeHeader, stat.size); + if (!range) { + response.writeHead(416, { + ...corsHeaders, + 'Accept-Ranges': 'bytes', + 'Content-Range': `bytes */${stat.size}`, + 'Content-Type': 'text/plain; charset=utf-8' + }); + response.end('Requested range not satisfiable'); + return; + } + + const length = range.end - range.start + 1; + response.writeHead(206, { + ...corsHeaders, + 'Accept-Ranges': 'bytes', + 'Cache-Control': cacheControl, + 'CDN-Cache-Control': cacheControl, + 'Surrogate-Control': cacheControl, + 'Content-Length': length, + 'Content-Range': `bytes ${range.start}-${range.end}/${stat.size}`, + 'Content-Type': contentTypes['.pmtiles'] + }); + + if (request.method === 'HEAD') response.end(); + else pipeFile(response, absolute, { start: range.start, end: range.end }); +} + async function serveStatic(request, response, pathname) { const requested = pathname === '/' ? '/index.html' : pathname; const decoded = decodeURIComponent(requested); @@ -86,8 +355,14 @@ async function serveStatic(request, response, pathname) { try { const stat = await fs.stat(absolute); if (!stat.isFile()) throw new Error('Not a file'); - const body = await fs.readFile(absolute); + const extension = path.extname(absolute).toLowerCase(); + if (extension === '.pmtiles') { + await servePmtiles(request, response, absolute, stat); + return; + } + + const body = await fs.readFile(absolute); const longLived = decoded.startsWith('/sprites/') || decoded.startsWith('/assets/'); send( response, @@ -115,9 +390,7 @@ async function handleRequest(request, response) { if (method === 'OPTIONS') { response.writeHead(204, { - 'Access-Control-Allow-Origin': '*', - 'Access-Control-Allow-Methods': 'GET, HEAD, OPTIONS', - 'Access-Control-Allow-Headers': 'Content-Type, Cache-Control, Pragma', + ...corsHeaders, 'Cache-Control': 'no-store' }); response.end(); @@ -136,6 +409,23 @@ async function handleRequest(request, response) { return; } + if (url.pathname === '/world-manifest.json') { + await serveWorldManifest(request, response); + return; + } + + const worldAssetMatch = /^\/world-tiles\/(occumed-[a-z0-9-]+\.pmtiles)$/.exec(url.pathname); + if (worldAssetMatch) { + await proxyReleaseAsset( + request, + response, + worldAssetMatch[1], + contentTypes['.pmtiles'], + 'public, max-age=86400, immutable' + ); + return; + } + await serveStatic(request, response, url.pathname); } diff --git a/src/main.js b/src/main.js index 399294ba..96c1347d 100644 --- a/src/main.js +++ b/src/main.js @@ -25,6 +25,10 @@ async function initialize() { styleUrl: import.meta.env.VITE_OCCUMED_STYLE_URL || '/style/occumed-open.json' }); + // Exposed only as a stable integration and visual-QA hook. Applications still + // own their overlays and should use createOccumedMap directly. + globalThis.__OCCUMED_MAP__ = map; + map.once('render', () => markReady('Occu-Med map ready')); map.once('load', () => markReady('Occu-Med map ready')); map.once('idle', () => markReady('Occu-Med map ready')); diff --git a/src/occumed-map.js b/src/occumed-map.js index d59fc936..03e22c3d 100644 --- a/src/occumed-map.js +++ b/src/occumed-map.js @@ -1,10 +1,20 @@ import * as maplibregl from 'maplibre-gl'; +import { Protocol } from 'pmtiles'; import 'maplibre-gl/dist/maplibre-gl.css'; +import { installWorldPmtilesRouter } from './world-pmtiles-router.js'; export const DEFAULT_STYLE_URL = '/style/occumed-open.json'; const MIN_RENDER_PIXEL_RATIO = 2; const MAX_RENDER_PIXEL_RATIO = 3; +const pmtilesProtocol = new Protocol(); +let protocolRegistered = false; + +function ensurePmtilesProtocol() { + if (protocolRegistered) return; + maplibregl.addProtocol('pmtiles', pmtilesProtocol.tile); + protocolRegistered = true; +} export function resolveOccumedPixelRatio() { const deviceRatio = Number(globalThis.devicePixelRatio); @@ -20,6 +30,17 @@ function resolvePublicOrigin(style, styleUrl) { resolved.sprite = resolved.sprite.replaceAll('__OCCUMED_PUBLIC_ORIGIN__', styleOrigin); } + for (const source of Object.values(resolved.sources || {})) { + if (typeof source?.url === 'string') { + source.url = source.url.replaceAll('__OCCUMED_PUBLIC_ORIGIN__', styleOrigin); + } + } + + if (typeof resolved.metadata?.['occumed:world-manifest-url'] === 'string') { + resolved.metadata['occumed:world-manifest-url'] = resolved.metadata['occumed:world-manifest-url'] + .replaceAll('__OCCUMED_PUBLIC_ORIGIN__', styleOrigin); + } + return resolved; } @@ -65,7 +86,10 @@ export async function createOccumedMap({ throw new TypeError('createOccumedMap requires a map container.'); } + ensurePmtilesProtocol(); const style = await loadOccumedStyle(styleUrl); + const fallbackUrl = style.sources?.['occumed-open']?.url; + const manifestUrl = style.metadata?.['occumed:world-manifest-url']; const map = new maplibregl.Map({ container, style, @@ -84,6 +108,11 @@ export async function createOccumedMap({ ...mapOptions }); + map.occumedWorldRouter = installWorldPmtilesRouter(map, { + manifestUrl, + fallbackUrl + }); + if (controls) { map.addControl(new maplibregl.NavigationControl({ visualizePitch: true }), 'top-right'); } diff --git a/src/world-pmtiles-router.js b/src/world-pmtiles-router.js new file mode 100644 index 00000000..f5e7a543 --- /dev/null +++ b/src/world-pmtiles-router.js @@ -0,0 +1,103 @@ +const DEFAULT_SWITCH_ZOOM = 6; +const ROUTER_SOURCE_ID = 'occumed-open'; + +function normalizePmtilesUrl(url) { + if (!url) return null; + return url.startsWith('pmtiles://') ? url : `pmtiles://${url}`; +} + +function containsCoordinate(bounds, longitude, latitude) { + if (!Array.isArray(bounds) || bounds.length !== 4) return false; + const [west, south, east, north] = bounds.map(Number); + if (![west, south, east, north].every(Number.isFinite)) return false; + const latitudeMatch = latitude >= south && latitude <= north; + const longitudeMatch = west <= east + ? longitude >= west && longitude <= east + : longitude >= west || longitude <= east; + return latitudeMatch && longitudeMatch; +} + +function boundsArea(bounds) { + if (!Array.isArray(bounds) || bounds.length !== 4) return Infinity; + const [west, south, east, north] = bounds.map(Number); + const width = west <= east ? east - west : 360 - west + east; + return Math.max(width, 0) * Math.max(north - south, 0); +} + +function selectRegion(regions, longitude, latitude) { + return regions + .filter((region) => containsCoordinate(region.bounds, longitude, latitude)) + .sort((left, right) => boundsArea(left.bounds) - boundsArea(right.bounds))[0] || null; +} + +async function fetchManifest(manifestUrl) { + const response = await fetch(manifestUrl, { + cache: 'no-store', + headers: { 'Cache-Control': 'no-cache' } + }); + if (!response.ok) throw new Error(`Unable to load worldwide PMTiles manifest (${response.status}).`); + const manifest = await response.json(); + if (!Array.isArray(manifest.regions)) throw new Error('Worldwide PMTiles manifest is missing regions.'); + return manifest; +} + +export async function installWorldPmtilesRouter(map, { + manifestUrl, + fallbackUrl, + sourceId = ROUTER_SOURCE_ID +}) { + if (!manifestUrl || !fallbackUrl) return null; + + let manifest; + try { + manifest = await fetchManifest(manifestUrl); + } catch (error) { + console.warn('Occu-Med worldwide PMTiles routing is unavailable; retaining the global fallback.', error); + return null; + } + + const switchZoom = Number.isFinite(Number(manifest.switchZoom)) + ? Number(manifest.switchZoom) + : DEFAULT_SWITCH_ZOOM; + let activeUrl = fallbackUrl; + let activeRegion = null; + + const apply = () => { + const source = map.getSource(sourceId); + if (!source || typeof source.setUrl !== 'function') return; + + const center = map.getCenter(); + const region = map.getZoom() >= switchZoom + ? selectRegion(manifest.regions, center.lng, center.lat) + : null; + const nextUrl = region ? normalizePmtilesUrl(region.url) : fallbackUrl; + if (!nextUrl || nextUrl === activeUrl) return; + + source.setUrl(nextUrl); + activeUrl = nextUrl; + activeRegion = region?.id || null; + map.fire('occumedworldsourcechange', { + region: activeRegion, + url: nextUrl, + fallback: !region + }); + }; + + const scheduleApply = () => queueMicrotask(apply); + map.on('moveend', scheduleApply); + map.on('zoomend', scheduleApply); + if (map.loaded()) apply(); + else map.once('load', apply); + + return { + manifest, + get activeRegion() { + return activeRegion; + }, + refresh: apply, + destroy() { + map.off('moveend', scheduleApply); + map.off('zoomend', scheduleApply); + } + }; +} diff --git a/visual-validation/fresno-pmtiles/README.md b/visual-validation/fresno-pmtiles/README.md new file mode 100644 index 00000000..da962a54 --- /dev/null +++ b/visual-validation/fresno-pmtiles/README.md @@ -0,0 +1,13 @@ +# Fresno custom PMTiles visual evidence + +These files were generated from the real Occu-Med Planetiler archive, served by the production Node server with HTTP byte ranges, and rendered in headless Chromium at device scale factor 2. + +- `fresno-regional-z8.png` +- `fresno-city-z11.png` +- `fresno-street-z14.png` +- `sierra-terrain-z10.png` +- `preview-report.json` +- `occumed-fresno.manifest.txt` +- `pmtiles-range.headers.txt` + +This evidence validates the Fresno/central-Sierra regional archive only. It is not evidence of full-world coverage, global Natural Earth generalization, GEBCO bathymetry, generated contours, Overture enrichment, or complete route shields. diff --git a/visual-validation/fresno-pmtiles/fresno-city-z11.png b/visual-validation/fresno-pmtiles/fresno-city-z11.png new file mode 100644 index 00000000..540fea09 Binary files /dev/null and b/visual-validation/fresno-pmtiles/fresno-city-z11.png differ diff --git a/visual-validation/fresno-pmtiles/fresno-regional-z8.png b/visual-validation/fresno-pmtiles/fresno-regional-z8.png new file mode 100644 index 00000000..46108758 Binary files /dev/null and b/visual-validation/fresno-pmtiles/fresno-regional-z8.png differ diff --git a/visual-validation/fresno-pmtiles/fresno-street-z14.png b/visual-validation/fresno-pmtiles/fresno-street-z14.png new file mode 100644 index 00000000..fe934f45 Binary files /dev/null and b/visual-validation/fresno-pmtiles/fresno-street-z14.png differ diff --git a/visual-validation/fresno-pmtiles/occumed-fresno.manifest.txt b/visual-validation/fresno-pmtiles/occumed-fresno.manifest.txt new file mode 100644 index 00000000..ed1a0de6 --- /dev/null +++ b/visual-validation/fresno-pmtiles/occumed-fresno.manifest.txt @@ -0,0 +1,7 @@ +commit=c9ce538093836aa5e071b3d7c7404bfc9e701b78 +source=https://download.geofabrik.de/north-america/us/california-latest.osm.pbf +bounds=-120.55,35.50,-118.45,37.55 +profile=planetiler/occumed-basemap.yml +built_at=2026-07-26T09:08:52Z +size_bytes=196398761 +431597c5bf19dc2c88dd109ac7478e0ae466a7343a5ce4813c29314b41379aa7 /home/runner/work/Map/Map/artifacts/occumed-fresno.pmtiles diff --git a/visual-validation/fresno-pmtiles/pmtiles-range.headers.txt b/visual-validation/fresno-pmtiles/pmtiles-range.headers.txt new file mode 100644 index 00000000..ed40134f --- /dev/null +++ b/visual-validation/fresno-pmtiles/pmtiles-range.headers.txt @@ -0,0 +1,18 @@ +HTTP/1.1 206 Partial Content +Access-Control-Allow-Origin: * +Access-Control-Allow-Methods: GET, HEAD, OPTIONS +Access-Control-Allow-Headers: Content-Type, Cache-Control, Pragma, Range +Access-Control-Expose-Headers: Accept-Ranges, Content-Length, Content-Range +Cross-Origin-Resource-Policy: cross-origin +X-Content-Type-Options: nosniff +Accept-Ranges: bytes +Cache-Control: public, max-age=3600, must-revalidate +CDN-Cache-Control: public, max-age=3600, must-revalidate +Surrogate-Control: public, max-age=3600, must-revalidate +Content-Length: 127 +Content-Range: bytes 0-126/196398761 +Content-Type: application/vnd.pmtiles +Date: Sun, 26 Jul 2026 09:06:41 GMT +Connection: keep-alive +Keep-Alive: timeout=5 + diff --git a/visual-validation/fresno-pmtiles/preview-report.json b/visual-validation/fresno-pmtiles/preview-report.json new file mode 100644 index 00000000..83674d9f --- /dev/null +++ b/visual-validation/fresno-pmtiles/preview-report.json @@ -0,0 +1,1845 @@ +{ + "generatedAt": "2026-07-26T09:08:52.743Z", + "origin": "http://127.0.0.1:4173", + "browser": "chromium", + "viewport": { + "width": 1440, + "height": 1000, + "deviceScaleFactor": 2 + }, + "views": { + "fresnoRegional": { + "center": [ + -119.55000000000001, + 36.75 + ], + "zoom": 8, + "source": { + "type": "vector", + "url": "pmtiles://http://127.0.0.1:4173/tiles/occumed-fresno.pmtiles", + "attribution": "© OpenStreetMap contributors" + }, + "canvas": { + "cssWidth": 1440, + "cssHeight": 1000, + "backingWidth": 2880, + "backingHeight": 2000, + "effectivePixelRatio": 2 + }, + "loaded": true, + "tilesLoaded": true, + "visibleLayers": [ + "land", + "occumed-shaded-relief", + "landcover", + "national-park", + "national-park_tint-band", + "landuse", + "pitch-outline", + "waterway-shadow", + "water-shadow", + "waterway", + "water", + "wetland", + "wetland-pattern", + "occumed-hillshade", + "land-structure-polygon", + "land-structure-line", + "aeroway-polygon", + "aeroway-line", + "building", + "building-underground", + "tunnel-minor-case", + "tunnel-street-case", + "tunnel-minor-link-case", + "tunnel-secondary-tertiary-case", + "tunnel-primary-case", + "tunnel-major-link-case", + "tunnel-motorway-trunk-case", + "tunnel-path-trail", + "tunnel-path-cycleway-piste", + "tunnel-path", + "tunnel-steps", + "tunnel-pedestrian", + "tunnel-construction", + "tunnel-minor", + "tunnel-minor-link", + "tunnel-major-link", + "tunnel-street", + "tunnel-street-low", + "tunnel-secondary-tertiary", + "tunnel-primary", + "tunnel-motorway-trunk", + "tunnel-oneway-arrow-blue", + "tunnel-oneway-arrow-white", + "cliff", + "ferry", + "ferry-auto", + "road-pedestrian-polygon-fill", + "road-pedestrian-polygon-pattern", + "road-path-bg", + "road-steps-bg", + "road-pedestrian-case", + "road-path-trail", + "road-path-cycleway-piste", + "road-path", + "road-steps", + "road-pedestrian", + "golf-hole-line", + "road-polygon", + "turning-feature-outline", + "road-minor-case", + "road-street-case", + "road-minor-link-case", + "road-secondary-tertiary-case", + "road-primary-case", + "road-major-link-case", + "road-motorway-trunk-case", + "turning-feature", + "road-construction", + "road-minor", + "road-minor-link", + "road-major-link", + "road-street", + "road-street-low", + "road-secondary-tertiary", + "road-primary", + "road-motorway-trunk", + "road-rail", + "road-rail-tracks", + "level-crossing", + "road-oneway-arrow-blue", + "road-oneway-arrow-white", + "crosswalks", + "gate-fence-hedge", + "bridge-path-bg", + "bridge-steps-bg", + "bridge-pedestrian-case", + "bridge-path-trail", + "bridge-path-cycleway-piste", + "bridge-path", + "bridge-steps", + "bridge-pedestrian", + "gate-label", + "bridge-minor-case", + "bridge-street-case", + "bridge-minor-link-case", + "bridge-secondary-tertiary-case", + "bridge-primary-case", + "bridge-major-link-case", + "bridge-motorway-trunk-case", + "bridge-construction", + "bridge-minor", + "bridge-minor-link", + "bridge-major-link", + "bridge-street", + "bridge-street-low", + "bridge-secondary-tertiary", + "bridge-primary", + "bridge-motorway-trunk", + "bridge-major-link-2-case", + "bridge-motorway-trunk-2-case", + "bridge-major-link-2", + "bridge-motorway-trunk-2", + "bridge-oneway-arrow-blue", + "bridge-oneway-arrow-white", + "bridge-rail", + "bridge-rail-tracks", + "aerialway", + "admin-1-boundary-bg", + "admin-0-boundary-bg", + "admin-1-boundary", + "admin-0-boundary", + "admin-0-boundary-disputed", + "building-entrance", + "building-number-label", + "block-number-label", + "road-label", + "road-intersection", + "road-number-shield", + "road-exit-shield", + "path-pedestrian-label", + "golf-hole-label", + "ferry-aerialway-label", + "waterway-label", + "natural-line-label", + "natural-point-label", + "water-line-label", + "water-point-label", + "poi-label", + "transit-label", + "airport-label", + "settlement-subdivision-label", + "settlement-minor-label", + "settlement-major-label", + "state-label", + "country-label", + "continent-label" + ] + }, + "fresnoCity": { + "center": [ + -119.78710000000001, + 36.7378 + ], + "zoom": 11, + "source": { + "type": "vector", + "url": "pmtiles://http://127.0.0.1:4173/tiles/occumed-fresno.pmtiles", + "attribution": "© OpenStreetMap contributors" + }, + "canvas": { + "cssWidth": 1440, + "cssHeight": 1000, + "backingWidth": 2880, + "backingHeight": 2000, + "effectivePixelRatio": 2 + }, + "loaded": true, + "tilesLoaded": true, + "visibleLayers": [ + "land", + "occumed-shaded-relief", + "landcover", + "national-park", + "national-park_tint-band", + "landuse", + "pitch-outline", + "waterway-shadow", + "water-shadow", + "waterway", + "water", + "wetland", + "wetland-pattern", + "occumed-hillshade", + "land-structure-polygon", + "land-structure-line", + "aeroway-polygon", + "aeroway-line", + "building", + "building-underground", + "tunnel-minor-case", + "tunnel-street-case", + "tunnel-minor-link-case", + "tunnel-secondary-tertiary-case", + "tunnel-primary-case", + "tunnel-major-link-case", + "tunnel-motorway-trunk-case", + "tunnel-path-trail", + "tunnel-path-cycleway-piste", + "tunnel-path", + "tunnel-steps", + "tunnel-pedestrian", + "tunnel-construction", + "tunnel-minor", + "tunnel-minor-link", + "tunnel-major-link", + "tunnel-street", + "tunnel-street-low", + "tunnel-secondary-tertiary", + "tunnel-primary", + "tunnel-motorway-trunk", + "tunnel-oneway-arrow-blue", + "tunnel-oneway-arrow-white", + "cliff", + "ferry", + "ferry-auto", + "road-pedestrian-polygon-fill", + "road-pedestrian-polygon-pattern", + "road-path-bg", + "road-steps-bg", + "road-pedestrian-case", + "road-path-trail", + "road-path-cycleway-piste", + "road-path", + "road-steps", + "road-pedestrian", + "golf-hole-line", + "road-polygon", + "turning-feature-outline", + "road-minor-case", + "road-street-case", + "road-minor-link-case", + "road-secondary-tertiary-case", + "road-primary-case", + "road-major-link-case", + "road-motorway-trunk-case", + "turning-feature", + "road-construction", + "road-minor", + "road-minor-link", + "road-major-link", + "road-street", + "road-street-low", + "road-secondary-tertiary", + "road-primary", + "road-motorway-trunk", + "road-rail", + "road-rail-tracks", + "level-crossing", + "road-oneway-arrow-blue", + "road-oneway-arrow-white", + "crosswalks", + "gate-fence-hedge", + "bridge-path-bg", + "bridge-steps-bg", + "bridge-pedestrian-case", + "bridge-path-trail", + "bridge-path-cycleway-piste", + "bridge-path", + "bridge-steps", + "bridge-pedestrian", + "gate-label", + "bridge-minor-case", + "bridge-street-case", + "bridge-minor-link-case", + "bridge-secondary-tertiary-case", + "bridge-primary-case", + "bridge-major-link-case", + "bridge-motorway-trunk-case", + "bridge-construction", + "bridge-minor", + "bridge-minor-link", + "bridge-major-link", + "bridge-street", + "bridge-street-low", + "bridge-secondary-tertiary", + "bridge-primary", + "bridge-motorway-trunk", + "bridge-major-link-2-case", + "bridge-motorway-trunk-2-case", + "bridge-major-link-2", + "bridge-motorway-trunk-2", + "bridge-oneway-arrow-blue", + "bridge-oneway-arrow-white", + "bridge-rail", + "bridge-rail-tracks", + "aerialway", + "admin-1-boundary-bg", + "admin-0-boundary-bg", + "admin-1-boundary", + "admin-0-boundary", + "admin-0-boundary-disputed", + "building-entrance", + "building-number-label", + "block-number-label", + "road-label", + "road-intersection", + "road-number-shield", + "road-exit-shield", + "path-pedestrian-label", + "golf-hole-label", + "ferry-aerialway-label", + "waterway-label", + "natural-line-label", + "natural-point-label", + "water-line-label", + "water-point-label", + "poi-label", + "transit-label", + "airport-label", + "settlement-subdivision-label", + "settlement-minor-label", + "settlement-major-label", + "state-label", + "country-label", + "continent-label" + ] + }, + "fresnoStreet": { + "center": [ + -119.78710000000001, + 36.7378 + ], + "zoom": 14, + "source": { + "type": "vector", + "url": "pmtiles://http://127.0.0.1:4173/tiles/occumed-fresno.pmtiles", + "attribution": "© OpenStreetMap contributors" + }, + "canvas": { + "cssWidth": 1440, + "cssHeight": 1000, + "backingWidth": 2880, + "backingHeight": 2000, + "effectivePixelRatio": 2 + }, + "loaded": true, + "tilesLoaded": true, + "visibleLayers": [ + "land", + "occumed-shaded-relief", + "landcover", + "national-park", + "national-park_tint-band", + "landuse", + "pitch-outline", + "waterway-shadow", + "water-shadow", + "waterway", + "water", + "wetland", + "wetland-pattern", + "occumed-hillshade", + "land-structure-polygon", + "land-structure-line", + "aeroway-polygon", + "aeroway-line", + "building", + "building-underground", + "tunnel-minor-case", + "tunnel-street-case", + "tunnel-minor-link-case", + "tunnel-secondary-tertiary-case", + "tunnel-primary-case", + "tunnel-major-link-case", + "tunnel-motorway-trunk-case", + "tunnel-path-trail", + "tunnel-path-cycleway-piste", + "tunnel-path", + "tunnel-steps", + "tunnel-pedestrian", + "tunnel-construction", + "tunnel-minor", + "tunnel-minor-link", + "tunnel-major-link", + "tunnel-street", + "tunnel-street-low", + "tunnel-secondary-tertiary", + "tunnel-primary", + "tunnel-motorway-trunk", + "tunnel-oneway-arrow-blue", + "tunnel-oneway-arrow-white", + "cliff", + "ferry", + "ferry-auto", + "road-pedestrian-polygon-fill", + "road-pedestrian-polygon-pattern", + "road-path-bg", + "road-steps-bg", + "road-pedestrian-case", + "road-path-trail", + "road-path-cycleway-piste", + "road-path", + "road-steps", + "road-pedestrian", + "golf-hole-line", + "road-polygon", + "turning-feature-outline", + "road-minor-case", + "road-street-case", + "road-minor-link-case", + "road-secondary-tertiary-case", + "road-primary-case", + "road-major-link-case", + "road-motorway-trunk-case", + "turning-feature", + "road-construction", + "road-minor", + "road-minor-link", + "road-major-link", + "road-street", + "road-street-low", + "road-secondary-tertiary", + "road-primary", + "road-motorway-trunk", + "road-rail", + "road-rail-tracks", + "level-crossing", + "road-oneway-arrow-blue", + "road-oneway-arrow-white", + "crosswalks", + "gate-fence-hedge", + "bridge-path-bg", + "bridge-steps-bg", + "bridge-pedestrian-case", + "bridge-path-trail", + "bridge-path-cycleway-piste", + "bridge-path", + "bridge-steps", + "bridge-pedestrian", + "gate-label", + "bridge-minor-case", + "bridge-street-case", + "bridge-minor-link-case", + "bridge-secondary-tertiary-case", + "bridge-primary-case", + "bridge-major-link-case", + "bridge-motorway-trunk-case", + "bridge-construction", + "bridge-minor", + "bridge-minor-link", + "bridge-major-link", + "bridge-street", + "bridge-street-low", + "bridge-secondary-tertiary", + "bridge-primary", + "bridge-motorway-trunk", + "bridge-major-link-2-case", + "bridge-motorway-trunk-2-case", + "bridge-major-link-2", + "bridge-motorway-trunk-2", + "bridge-oneway-arrow-blue", + "bridge-oneway-arrow-white", + "bridge-rail", + "bridge-rail-tracks", + "aerialway", + "admin-1-boundary-bg", + "admin-0-boundary-bg", + "admin-1-boundary", + "admin-0-boundary", + "admin-0-boundary-disputed", + "building-entrance", + "building-number-label", + "block-number-label", + "road-label", + "road-intersection", + "road-number-shield", + "road-exit-shield", + "path-pedestrian-label", + "golf-hole-label", + "ferry-aerialway-label", + "waterway-label", + "natural-line-label", + "natural-point-label", + "water-line-label", + "water-point-label", + "poi-label", + "transit-label", + "airport-label", + "settlement-subdivision-label", + "settlement-minor-label", + "settlement-major-label", + "state-label", + "country-label", + "continent-label" + ] + }, + "sierraTerrain": { + "center": [ + -118.85, + 36.85 + ], + "zoom": 10, + "source": { + "type": "vector", + "url": "pmtiles://http://127.0.0.1:4173/tiles/occumed-fresno.pmtiles", + "attribution": "© OpenStreetMap contributors" + }, + "canvas": { + "cssWidth": 1440, + "cssHeight": 1000, + "backingWidth": 2880, + "backingHeight": 2000, + "effectivePixelRatio": 2 + }, + "loaded": true, + "tilesLoaded": true, + "visibleLayers": [ + "land", + "occumed-shaded-relief", + "landcover", + "national-park", + "national-park_tint-band", + "landuse", + "pitch-outline", + "waterway-shadow", + "water-shadow", + "waterway", + "water", + "wetland", + "wetland-pattern", + "occumed-hillshade", + "land-structure-polygon", + "land-structure-line", + "aeroway-polygon", + "aeroway-line", + "building", + "building-underground", + "tunnel-minor-case", + "tunnel-street-case", + "tunnel-minor-link-case", + "tunnel-secondary-tertiary-case", + "tunnel-primary-case", + "tunnel-major-link-case", + "tunnel-motorway-trunk-case", + "tunnel-path-trail", + "tunnel-path-cycleway-piste", + "tunnel-path", + "tunnel-steps", + "tunnel-pedestrian", + "tunnel-construction", + "tunnel-minor", + "tunnel-minor-link", + "tunnel-major-link", + "tunnel-street", + "tunnel-street-low", + "tunnel-secondary-tertiary", + "tunnel-primary", + "tunnel-motorway-trunk", + "tunnel-oneway-arrow-blue", + "tunnel-oneway-arrow-white", + "cliff", + "ferry", + "ferry-auto", + "road-pedestrian-polygon-fill", + "road-pedestrian-polygon-pattern", + "road-path-bg", + "road-steps-bg", + "road-pedestrian-case", + "road-path-trail", + "road-path-cycleway-piste", + "road-path", + "road-steps", + "road-pedestrian", + "golf-hole-line", + "road-polygon", + "turning-feature-outline", + "road-minor-case", + "road-street-case", + "road-minor-link-case", + "road-secondary-tertiary-case", + "road-primary-case", + "road-major-link-case", + "road-motorway-trunk-case", + "turning-feature", + "road-construction", + "road-minor", + "road-minor-link", + "road-major-link", + "road-street", + "road-street-low", + "road-secondary-tertiary", + "road-primary", + "road-motorway-trunk", + "road-rail", + "road-rail-tracks", + "level-crossing", + "road-oneway-arrow-blue", + "road-oneway-arrow-white", + "crosswalks", + "gate-fence-hedge", + "bridge-path-bg", + "bridge-steps-bg", + "bridge-pedestrian-case", + "bridge-path-trail", + "bridge-path-cycleway-piste", + "bridge-path", + "bridge-steps", + "bridge-pedestrian", + "gate-label", + "bridge-minor-case", + "bridge-street-case", + "bridge-minor-link-case", + "bridge-secondary-tertiary-case", + "bridge-primary-case", + "bridge-major-link-case", + "bridge-motorway-trunk-case", + "bridge-construction", + "bridge-minor", + "bridge-minor-link", + "bridge-major-link", + "bridge-street", + "bridge-street-low", + "bridge-secondary-tertiary", + "bridge-primary", + "bridge-motorway-trunk", + "bridge-major-link-2-case", + "bridge-motorway-trunk-2-case", + "bridge-major-link-2", + "bridge-motorway-trunk-2", + "bridge-oneway-arrow-blue", + "bridge-oneway-arrow-white", + "bridge-rail", + "bridge-rail-tracks", + "aerialway", + "admin-1-boundary-bg", + "admin-0-boundary-bg", + "admin-1-boundary", + "admin-0-boundary", + "admin-0-boundary-disputed", + "building-entrance", + "building-number-label", + "block-number-label", + "road-label", + "road-intersection", + "road-number-shield", + "road-exit-shield", + "path-pedestrian-label", + "golf-hole-label", + "ferry-aerialway-label", + "waterway-label", + "natural-line-label", + "natural-point-label", + "water-line-label", + "water-point-label", + "poi-label", + "transit-label", + "airport-label", + "settlement-subdivision-label", + "settlement-minor-label", + "settlement-major-label", + "state-label", + "country-label", + "continent-label" + ] + } + }, + "pageErrors": [], + "resourceFailures": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 ()" + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 ()" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0041 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0043 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0046 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0049 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0052 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0020 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+002E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+002F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0030 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0031 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0032 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0033 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0034 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0035 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0036 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0037 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0038 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0039 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0042 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0043 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0044 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0045 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0048 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0050 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0052 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0053 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0054 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0056 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0061 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0063 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0064 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0065 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0066 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0067 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0068 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0069 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0070 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0071 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0072 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0073 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0074 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0075 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0076 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0077 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0079 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+007A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0041 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0046 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0049 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0057 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0062 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0078 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 ()" + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 ()" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0020 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0031 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0041 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0042 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0043 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0044 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0045 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0046 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0047 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0048 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0049 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0050 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0052 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0053 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0054 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0056 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0057 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0059 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0061 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0062 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0063 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0064 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0065 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0066 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0067 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0068 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0069 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0070 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0071 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0072 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0073 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0074 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0075 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0076 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0077 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0079 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+007A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0027 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0033 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0039 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0055 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0035 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0038 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+003B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+002F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0030 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0032 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0037 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 32, 8192-8447. Rendering codepoint U+2013 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/8192-8447.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0051 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0034 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0036 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+002D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+005A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0026 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + } + ], + "consoleMessages": [ + { + "type": "warning", + "text": "[GroupMarkerNotSet(crbug.com/242999)!:A0301F00143A0000]Automatic fallback to software WebGL has been deprecated. Please use the --enable-unsafe-swiftshader (about:flags#enable-unsafe-swiftshader) flag to opt in to lower security guarantees for trusted content." + }, + { + "type": "warning", + "text": "[.WebGL-0x1aec000ea300]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels" + }, + { + "type": "warning", + "text": "[.WebGL-0x1aec000ea300]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels" + }, + { + "type": "warning", + "text": "[.WebGL-0x1aec000ea300]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels" + }, + { + "type": "warning", + "text": "[.WebGL-0x1aec000ea300]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)" + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 ()" + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 ()" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0041 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0043 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0046 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0049 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0052 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Semibold,Noto Sans Semibold/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0020 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+002E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+002F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0030 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0031 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0032 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0033 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0034 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0035 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0036 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0037 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0038 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0039 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0042 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0043 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0044 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0045 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0048 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0050 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0052 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0053 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0054 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0056 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0061 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0063 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0064 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0065 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0066 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0067 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0068 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0069 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0070 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0071 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0072 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0073 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0074 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0075 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0076 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0077 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0079 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+007A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0041 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0046 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0049 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0057 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0062 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0078 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Italic,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 ()" + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 ()" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0020 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0031 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0041 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0042 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0043 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0044 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0045 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0046 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0047 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0048 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0049 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+004F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0050 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0052 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0053 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0054 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0056 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0057 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0059 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0061 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0062 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0063 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0064 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0065 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0066 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0067 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0068 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0069 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006C locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006E locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+006F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0070 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0071 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0072 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0073 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0074 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0075 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0076 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0077 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0079 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+007A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0027 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0033 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0039 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0055 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0035 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0038 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+003B locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+002F locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0030 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0032 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0037 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 32, 8192-8447. Rendering codepoint U+2013 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/8192-8447.pbf" + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "warning", + "text": "Expected value to be of type number, but found null instead." + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0051 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0034 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0036 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+002D locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+005A locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + }, + { + "type": "warning", + "text": "Unable to load glyph range 0, 0-255. Rendering codepoint U+0026 locally instead. Error: AJAXError: (404): https://tiles.openfreemap.org/fonts/Open Sans Regular,Noto Sans Regular/0-255.pbf" + } + ] +} diff --git a/visual-validation/fresno-pmtiles/sierra-terrain-z10.png b/visual-validation/fresno-pmtiles/sierra-terrain-z10.png new file mode 100644 index 00000000..4bc931cd Binary files /dev/null and b/visual-validation/fresno-pmtiles/sierra-terrain-z10.png differ