← LalGeo Maps

Create a map. Share a link.

Use a public GeoJSON URL, an Open Calgary dataset link, or your own GeoJSON to create a saved map snapshot. No API key, account, or Dropbox connection is required.

In the map editor, open Tools → Share map to share your visible layers, or Tools → Map from URL to build a new map from public data.

For assistants and API clients

Read the OpenAPI schema to configure an API-capable assistant or a custom action. This is an HTTP API; a chatbot must have an HTTP/action tool configured to call it.

  1. Find a dataset: GET /api/v1/datasets?q=community boundaries. Search currently covers Open Calgary. A portal homepage alone is not a dataset.
  2. Choose a result’s sourceUrl. POST a title and that URL to /api/v1/maps.
  3. Give the user the returned shareUrl. Keep deleteToken private; it can revoke the link.
curl https://maps.lalgeo.com/api/v1/maps \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Calgary community boundaries",
    "sourceUrl": "https://data.calgary.ca/d/ab7m-fwn6",
    "labelField": "name"
  }'

A successful request returns HTTP 201 with id, shareUrl, apiUrl, featureCount, createdAt, and deleteToken.

Multiple layers and supplied data

Use layers instead of the top-level source URL. Each layer accepts name, sourceUrl or geojson, labelField, color (red, blue, green, orange, purple), opacity (0–1), visible, labelsVisible, and popoutsVisible. Polygon and line layers default to readable text labels with zoom-based thinning and no clustered popout pins; set those booleans when you want a different behavior. If GeoJSON is supplied, the source URL is retained only for attribution. Supported geometries include points, lines, polygons with holes, multi-geometries, and geometry collections in WGS84 longitude/latitude.

Sharing and limits

Anyone with the link can read the map and its attributes. Links are unlisted, not private. Share only data you intend to disclose. Snapshots do not refresh automatically and cannot be overwritten. Create a new link after editing. Attached images, hidden layers, archived records, and features excluded by an editor filter are not included by the Share map button.

Limits: 3 MB per request, source response, or saved map; 12 layers; 10,000 features or expanded geometry parts per layer; 25,000 parts per map; 150,000 coordinate positions per layer and 300,000 per map. Maximum 100 fields per feature. Anonymous creation is limited to 20 attempts per connecting IP per hour; dataset search to 60. Large datasets are rejected rather than silently truncated. Use a filtered endpoint or simplify geometry first.

Public HTTPS sources only. Private networks, credential-bearing URLs, and non-JSON responses are rejected. Other open-data portals are supported through direct GeoJSON URLs; automatic dataset-page resolution currently covers Calgary.

Read or revoke a link

GET /api/v1/maps/ID retrieves the saved snapshot. DELETE /api/v1/maps/ID with Authorization: Bearer DELETE_TOKEN revokes it. There is no public listing or update endpoint. The browser keeps the deletion token locally; open the shared map on the same browser and choose Tools → Shared link → Stop sharing. Losing that token removes your self-service ability to revoke the link.

Errors return JSON with error: 400 invalid input, 413 limits exceeded, 415 incorrect content type, 422 unusable data, 429 rate limit, 503 temporary storage/service failure, or 504 upstream timeout.