Skip to content

Diff: applications/app-orchestration-gis.es

From 1ef6cba to 1ef6cba

+0 / −1 lines
BeforeAfter
--- ---
schema: foundry-doc-v1 schema: foundry-doc-v1
title: "app-orchestration-gis" title: "app-orchestration-gis"
slug: app-orchestration-gis slug: app-orchestration-gis
category: applications category: applications
type: topic type: topic
quality: complete quality: complete
status: active status: active
audience: public audience: public
bcsc_class: public-disclosure-safe bcsc_class: public-disclosure-safe
language_protocol: PROSE-TOPIC language_protocol: PROSE-TOPIC
last_edited: 2026-05-06 last_edited: 2026-05-06
editor: pointsav-engineering editor: pointsav-engineering
paired_with: app-orchestration-gis.es.md paired_with: app-orchestration-gis.es.md
cites: cites:
- pmtiles-spec - pmtiles-spec
- maplibre-gl-js - maplibre-gl-js
--- ---
# app-orchestration-gis
`app-orchestration-gis` is the stateless spatial analytics engine of the PointSav GIS platform. It performs linear-geometry calculations and coordinate mapping to produce the Woodfine co-location rankings and the interactive map surface at [gis.woodfinegroup.com](https://gis.woodfinegroup.com). `app-orchestration-gis` is the stateless spatial analytics engine of the PointSav GIS platform. It performs linear-geometry calculations and coordinate mapping to produce the Woodfine co-location rankings and the interactive map surface at [gis.woodfinegroup.com](https://gis.woodfinegroup.com).
## Scoring Algorithm ## Scoring Algorithm
The engine implements a linear geometric decay model using the Haversine formula. For every Alpha Anchor in the cleansed data layers, it calculates two proximity scores: The engine implements a linear geometric decay model using the Haversine formula. For every Alpha Anchor in the cleansed data layers, it calculates two proximity scores:
- **Secondary proximity (3.0 km radius):** score = max(0, 100 × (3.0 − distance_km) / 3.0) - **Secondary proximity (3.0 km radius):** score = max(0, 100 × (3.0 − distance_km) / 3.0)
- **Tertiary proximity (5.0 km radius):** score = max(0, 100 × (5.0 − distance_km) / 5.0) - **Tertiary proximity (5.0 km radius):** score = max(0, 100 × (5.0 − distance_km) / 5.0)
The two scores combine to produce a continuous co-location score ranging from 0 to 400. Higher scores reflect greater convergence of capital-intensive operators within the defined catchment radii. The two scores combine to produce a continuous co-location score ranging from 0 to 400. Higher scores reflect greater convergence of capital-intensive operators within the defined catchment radii.
## Tile Generation ## Tile Generation
The engine compiles scored output into vector tile assets for delivery to the interactive map: The engine compiles scored output into vector tile assets for delivery to the interactive map:
- **Vector tiles:** PMTiles format for client-side rendering without a dedicated tile server [pmtiles-spec] - **Vector tiles:** PMTiles format for client-side rendering without a dedicated tile server [pmtiles-spec]
- **Rendering:** MapLibre GL JS processes the tiles client-side at high performance [maplibre-gl-js] - **Rendering:** MapLibre GL JS processes the tiles client-side at high performance [maplibre-gl-js]
- **Visual tiers:** Spatial convergence across anchor categories (primary, hardware, warehouse, civic) maps to a four-tier visual classification on the map surface - **Visual tiers:** Spatial convergence across anchor categories (primary, hardware, warehouse, civic) maps to a four-tier visual classification on the map surface
## Stateless Architecture ## Stateless Architecture
The application holds no canonical data. It operates as a pure function: cleansed cluster files enter, ranked geo-tiles exit. If the application instance is lost, the entire analytics environment can be re-provisioned by pointing a fresh instance at the immutable data layer — no state migration required. The application holds no canonical data. It operates as a pure function: cleansed cluster files enter, ranked geo-tiles exit. If the application instance is lost, the entire analytics environment can be re-provisioned by pointing a fresh instance at the immutable data layer — no state migration required.
## See Also ## See Also
- [[pointsav-gis-engine]] - [[pointsav-gis-engine]]
- [[service-business-clustering]] - [[service-business-clustering]]
- [[service-places-filtering]] - [[service-places-filtering]]
--- ---
## Provenance ## Provenance
- **Source:** `app-orchestration-gis` service documentation (project-gis cluster) - **Source:** `app-orchestration-gis` service documentation (project-gis cluster)
- **Refinement:** 2026-05-06 by project-editorial Task - **Refinement:** 2026-05-06 by project-editorial Task
- **Verification:** Scoring algorithm, tile format, and stateless design confirmed against build configuration. - **Verification:** Scoring algorithm, tile format, and stateless design confirmed against build configuration.
- **BCSC Posture:** Current-fact description of operational service. - **BCSC Posture:** Current-fact description of operational service.