Alghafat MarketAlghafat MarketUAE

Maps

MapSpec, area anchors and the SVG renderer.

market_map returns a MapSpec: areas as points for one metric, optional roles against a price ceiling, and the same required provenance and attribution as every chart.

MapSpec

type MapSpec = {
  kind: "area-map"; version: 1; id: string; title: string;
  metric: { key: "price_psf" | "sale_median" | "rent_median" | "gross_yield" | "txn_12m" | "offplan_share"; label: string; unit: string; scale: "sqrt" | "rank" };
  areas: { id: string; name: string; lng: number; lat: number; value: number | null; n: number;
           role: "anchor" | "fits" | "exceeds" | "other"; overCeiling?: boolean; priceForCeiling?: number | null; distanceKm?: number | null }[];
  suppressed: { count: number; reasons: ("n<5" | "n<10" | "no-anchor")[]; names: string[] };
  ceiling: { value: number; basis: string } | null;
  view: { mode: "2d"; bbox: [number, number, number, number] };
  provenance: Provenance;                         // required
  attribution: { data: string; basemap?: string }; // required
  synthetic: boolean;
};

toGeoJSON(spec) (in packages/core) exports the same points, and MCP results include that GeoJSON so other agents can draw their own map.

Area anchors

  • One point per area. Synthetic anchors are invented points around 0°N 0°E.
  • A licensed source must supply its own anchors (for example, the median of registered project coordinates per area); none ship with this repository.
  • Areas without an anchor stay in tables, are marked "not mapped" and are counted on the map.
  • Transaction rows carry no coordinates, so there are no heatmaps or density surfaces.

Renderer

  • The renderer is SVG written for this project, with no basemap or map tiles: an equirectangular projection over the bounding box, square-root-scaled bubbles, role colours with a legend, and a data table underneath.
  • Colour is never the only signal: every role has a legend entry, a label and a table column.
  • The attribution is drawn inside the SVG, and synthetic maps carry a watermark.
  • Clicking an area in live mode asks the agent to add it to the comparison.

Code: Apache-2.0. Original docs text and diagrams: CC BY 4.0. Excluded from both: data, figures and charts derived from DLD or Data.Dubai (governed by DATA_LICENSE.md and any DLD grant); EIBOR values (CBUAE terms); third-party names and logos; and the product and operator names and logos (no trademark licence).

The default data is SYNTHETIC – not Dubai data. Nothing here is financial, legal or investment advice.

On this page