Monochrome GeoJSON Format,
Standard Specification

The Monochrome GeoJSON format
The Monochrome GeoJSON format is the official and unified structure used across all Monochrome systems for representing geographic data. This format defines how locations, boundaries, and spatial zones are stored, transmitted, and rendered within the platform. It is designed to be simple, consistent, and scalable, ensuring that all mapping-related features behave reliably across mobile apps, backend systems, and analytics layers.
At its core, the Monochrome GeoJSON format follows the standard GeoJSON specification, but with strict conventions that make it predictable and easy to work with across all Monochrome services.
1. Structure Overview
The format is built around a top-level object called a FeatureCollection. This acts as a container for multiple geographic elements.
Each FeatureCollection contains:
A
typefield, always set to"FeatureCollection"A
featuresarray, which holds one or more geographic features
Each item inside the features array is a Feature, and every Feature represents a single geographic entity.
2. Feature Definition
Every Feature has three key components:
type: Always"Feature"properties: An object used to store metadata (currently empty but reserved for future use)geometry: The actual geographic shape or location
This separation allows Monochrome to:
Store visual/map data in
geometryStore business logic or metadata in
properties
3. Geometry Types
The Monochrome GeoJSON format supports multiple geometry types, with the two primary ones being:
a. Point
A Point represents a single location on the map.
Example:
A pickup location
A driver position
A hotspot
Structure:
"type": "Point""coordinates": [longitude, latitude]
Important rule:
Coordinates are always ordered as:
[longitude, latitude], not the other way around.
b. Polygon
A Polygon represents an enclosed boundary or area.
Example:
Service areas
Pickup zones
Congestion zones
Geo-fenced regions
Structure:
"type": "Polygon""coordinates": [[[lng, lat], [lng, lat], ...]]
Key characteristics:
The coordinates form a closed loop
The first and last coordinate should match to complete the boundary
Multiple nested arrays allow support for complex shapes
4. Example Breakdown
The format can contain multiple features at once. For example:
One Feature can represent a Point (e.g. a location)
Another Feature can represent a Polygon (e.g. a service boundary)
This allows a single payload to define:
A user’s position
The allowed service area around them
All within one consistent structure.
5. Design Principles of the Monochrome Format
The Monochrome GeoJSON format is built on the following principles:
Consistency
Every geographic dataset follows the exact same structure, making it easy for frontend and backend systems to parse and render data without special handling.
Simplicity
Only essential fields are included. The structure avoids unnecessary nesting or complexity, allowing developers to quickly understand and use the data.
Scalability
The format supports:
Multiple features
Multiple geometry types
Future expansion through the
propertiesfield
Interoperability
Because it adheres to GeoJSON standards, it works seamlessly with:
Google Maps
Mapbox
GIS tools
Backend geospatial systems
6. Usage Across Monochrome
This format will be used across all Monochrome systems, including:
Map rendering (iOS, Android, Web)
Driver and rider geofencing
Service area validation (pickup/drop-off eligibility)
Pricing zones and surge areas
Heatmaps and demand analysis
Route overlays and stop definitions
By standardising this format, all teams — mobile, backend, and data — operate on the same geographic language.
7. Key Rules to Follow
To maintain consistency, the following rules must always be respected:
Coordinates must always be in
[longitude, latitude]formatGeometry types must be explicitly defined (
Point,Polygon, etc.)All data must be wrapped inside a
FeatureCollectionEach geographic entity must be a
FeatureThe
propertiesobject should remain present, even if empty
8. Future Expansion
The properties field is intentionally included to support future enhancements, such as:
Zone names (e.g. “Central London”)
Pricing multipliers
Busyness levels
Zone types (pickup, drop-off, restricted)
Metadata for analytics
