PattayaEngine geographic map asset — snapshot 2026-10-02
Project class: UNVERIFIED PROPOSAL. Mode: IMPLEMENTATION.
Canonical standard: TP-NETWORK-2026-08-04.1. Both manifest hashes verified.

Production data:
  pattaya-mapdata.geojson — 2,124,217 bytes; 2,683 features.
  pattaya-landmarks.geojson — 5,956 bytes; 15 point features.
  Map extent: west 100.82, south 12.83, east 101.01, north 13.04.
  Coordinates: WGS84 longitude/latitude (RFC 7946 GeoJSON).
  Snapshot source timestamps: roads/coast 2026-10-02T05:17:35Z; landmarks 2026-10-02T05:12:35Z.

Layer contract:
  properties.kind = land: one MultiPolygon with nine land cells derived from exact coastline.
  properties.kind = coastline: one MultiLineString of nine disconnected mapped shoreline components.
  properties.kind = road: 2,681 features representing every 17,524 extracted road way.
  Road properties.class: major, secondary, minor. properties.highway retains the OSM road class.
  Named road ways retain their OSM numeric IDs and source names. Unnamed ways are grouped by highway
  class into disconnected MultiLineStrings. The complete per-class OSM way IDs remain in provenance.
  Landmarks have source URLs, exact OSM IDs, source English name when available, original local name,
  category, checked date, and point method. Overpass bounds centers are label points, not entrances.

Suggested MapLibre use:
  Host the two GeoJSON files as local public assets. Add ordinary type=geojson sources.
  Paint map background as sea. Add land fill filtered on kind=land, coast line on kind=coastline,
  road line layers filtered on kind=road and class, and optional symbol layers for nonempty name.
  Add the landmark file as another source for circles and labels. The file has real geographic
  coordinates; it is not a screen-coordinate image. No tile server or live Overpass request is needed.
  Constrain map maxBounds to the exact extraction bbox to avoid implying coverage outside the snapshot.
  Main application integration, style, interactions, packaging, and release are outside this asset task.

Derivations:
  Roads clipped to bounds; simplified with a 3 metre tolerance in a local equirectangular metre
  approximation at latitude 12.935; coordinates rounded to seven decimals. Disconnected road geometry
  remains disconnected. Source way geometry, tags and IDs are preserved in the raw local snapshot.
  Coastlines are not simplified. They are clipped, joined, and polygonized against the rectangle.
  Every polygonized cell is classified from the direction of the original OSM coastline segments:
  OSM maps land on the left. Nine land cells are retained; the single sea cell is omitted.
  The rectangle edges used to close clipped polygons are artificial export boundaries.
  No invented road, coast, or POI geometry was introduced. Inland lakes/rivers, buildings, footpaths,
  pedestrian streets and private/public access status are not comprehensive in this overview asset.

Verification:
  GeoJSON parse, unique feature IDs, valid geometry, every coordinate inside bbox, and <=3 MB size passed.
  Mainland east-side sample (100.95,12.92) is land; west-side sample (100.83,12.92) is sea.
  An independent OSM Overpass coastline query returned identical geometry for all fifteen coast ways.
  The geographic inspection image was viewed; source coastline follows Pattaya/Jomtien/Wong Amat and
  the mapped offshore land components. It is a QA illustration, not a production tile or field survey.

License / attribution:
  Geographic data © OpenStreetMap contributors, Open Database License (ODbL) 1.0.
  Attribution page: https://www.openstreetmap.org/copyright
  License: https://opendatacommons.org/licenses/odbl/1-0/
  Guidelines: https://osmfoundation.org/wiki/Licence/Attribution_Guidelines
  The derived GeoJSON database is supplied under ODbL 1.0. Keep the GeoJSON and its provenance
  available if distributing it, and give accessible OpenStreetMap attribution on the interactive map.
  Suggested source attribution HTML: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>
  Provide a nearby data-license notice linking ODbL 1.0; the copyright page also explains that license.
  This is a dated community map snapshot. Current accuracy, businesses, prices, opening hours, crowd
  levels, access rights, recommendations, editorial visits, and routing safety are not verified.

Reproduction / provenance:
  extract_osm.py caches raw responses and saves request time, endpoint, query and response SHA256.
  build_mapdata.py rebuilds from the raw local snapshot using Shapely 2.1.2 (local deps/ only) and Pillow.
  document_snapshot.py creates the evidence ledger and performs final independent-data checks.
  mapdata-provenance.json contains complete source IDs, snapshot timestamps, counts and file hashes.
  *.ql, *-request.json, raw snapshots and evidence-ledger-2026-10-02.json preserve the evidence.
  Extraction retries: overpass-api.de gave two HTTP 504 responses for the broad road query;
  overpass.private.coffee timed out. The final roads/coast snapshot came from the documented public
  maps.mail.ru Overpass endpoint. The landmark and independent-coast snapshots came from overpass-api.de.
  No paid account, worldwide extract, community tile service, code push, deployment, or indexing change.

Amenity extension — 2026-10-02:
  pattaya-amenities.geojson contains 200 selected named mapped places.
  Core-city bbox: [100.83,12.86,100.97,13.00].
  Categories: food, fitness, shopping; subtype retains the actual OSM amenity/leisure/shop tag.
  Counts: {"food": 120, "fitness": 30, "shopping": 50}
  Selection: Named source entities only; exact-name+category records within 40m deduplicated, nodes preferred. Up to 200 selected using subtype quotas restaurant80/cafe40/fitness_centre15/sports_centre15/mall10/supermarket15/convenience25, filling any unused quotas from remaining source records; 7x7-cell round-robin geographic spread in stable OSM ID order within each subtype.
  One bounded read extraction only. No completeness, actual-occupancy or open-now claim.
  The same OSM ODbL license, attribution and seven-decimal source coordinate precision apply.
