Skip to content

GeoJSON conventions

kartoza-mcp follows RFC 7946 with three project-specific conventions.

CRS is WGS84

Coordinates are [longitude, latitude] in WGS84 (EPSG:4326). This matches the RFC and what every consumer-grade mapping tool expects.

If your data is in another CRS, project to WGS84 before passing it in.

Distances are metres

All distance parameters (eps, radius_meters, etc.) are in metres on the WGS84 ellipsoid, computed with paulmach/orb/geo for true geodesic distance — not planar lon/lat.

Properties round-trip

Input feature properties are not echoed in the output. If you need the original metadata associated with each cluster, do a join client- side on the centroid.

Input shape

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": { "type": "Point", "coordinates": [LON, LAT] },
      "properties": { /* ignored */ }
    }
  ]
}

Only Point features are read. Other geometry types are silently skipped (a future major version may surface a warning).

Output shape

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [ [ /* 33 lon/lat pairs, closed ring */ ] ]
      },
      "properties": {
        "cluster_id": 0,
        "point_count": 14,
        "radius_meters": 2843.7,
        "kartoza_credit": "Processed by Kartoza.com tools"
      }
    }
  ]
}

Polar caveat

Near the poles, the circle approximation uses local lat/lon-to-metre scaling, which distorts as cos(lat) → 0. For analytical work above ~75° latitude, project to a polar-stereographic CRS in your map client.