TXTWRK LOCAL MAPLIBRE BUNDLE
============================

UPLOAD
------
Extract this ZIP over your TXTWRK web root.

It contains:

/system/core/obj/maps/txtwrk.maps.js
/system/core/obj/maps/install_maplibre.php
/system/core/obj/maps/lib/

ONE-TIME INSTALL
----------------
Visit:

https://txtwrk.com/system/core/obj/maps/install_maplibre.php

It downloads MapLibre GL JS 5.12.0 once and creates:

/system/core/obj/maps/lib/maplibre-gl.js
/system/core/obj/maps/lib/maplibre-gl.css

When both lines say [OK], DELETE:

/system/core/obj/maps/install_maplibre.php

Then Ctrl+F5 your map page.

RUNTIME
-------
txtwrk.maps.js now loads:

/system/core/obj/maps/lib/maplibre-gl.js
/system/core/obj/maps/lib/maplibre-gl.css

There is no UNPKG/CDN browser dependency after installation.

MAP DATA
--------
TXTWRK's existing map.php/cache.php system remains responsible for:

- OpenFreeMap style JSON
- vector tiles
- building geometry / height data used for 3D extrusions
- glyph PBFs
- sprites
- reverse-geocode cache

A fully warmed area can therefore render using only TXTWRK-hosted resources.

Cold/missing/expired resources can still cause TXTWRK's SERVER to fetch
OpenFreeMap/Nominatim upstream. To guarantee no upstream dependency even for
uncached areas, self-host the complete tile/geocoder datasets as a later step.

TERRAIN
-------
Current 3D buildings are vector extrusion. True terrain/elevation requires a
separate DEM dataset. That is not automatically included merely by caching
OpenFreeMap vector tiles.
