AR1/docs/api/datasets.md

4.8 KiB

Datasets API

Endpoints for managing and querying spatial datasets.

List Datasets

Endpoint: GET /api/datasets/list.php

List all datasets accessible to the current user.

Parameters

  • has_geometry (optional): Filter datasets with geometry (0 or 1)

Response

{
  "success": true,
  "data": [
    {
      "id": 123,
      "name": "Sample Dataset",
      "original_name": "sample.geojson",
      "file_type": "geojson",
      "metadata": { ... }
    }
  ]
}

Example

curl -X GET "https://example.com/api/datasets/list.php?has_geometry=1" \
  -H "Cookie: PHPSESSID=..."

Get Dataset

Endpoint: GET /api/datasets/get.php

Get detailed information about a specific dataset.

Parameters

  • id (required): Dataset ID

Response

{
  "success": true,
  "data": {
    "id": 123,
    "name": "Sample Dataset",
    "original_name": "sample.geojson",
    "file_type": "geojson",
    "file_size": 1024000,
    "description": "Dataset description",
    "metadata": {
      "feature_count": 1000,
      "geometry_type": "Point",
      "bbox": [-180, -90, 180, 90]
    },
    "uploaded_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z"
  }
}

Example

curl -X GET "https://example.com/api/datasets/get.php?id=123" \
  -H "Cookie: PHPSESSID=..."

Query Dataset

Endpoint: GET /api/basic/index.php/datasets/{id}/query

Query features from a dataset with filtering and pagination.

Parameters

  • page (optional): Page number (default: 1)
  • limit (optional): Items per page (default: 100, max: 1000)
  • bbox (optional): Bounding box filter (minX,minY,maxX,maxY)
  • properties (optional): Property filters (JSON object)
  • geometry_type (optional): Filter by geometry type

Response

{
  "success": true,
  "data": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "id": 1,
        "properties": { ... },
        "geometry": { ... }
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 100,
      "total": 1000,
      "pages": 10
    }
  }
}

Example

curl -X GET "https://example.com/api/basic/index.php/datasets/123/query?page=1&limit=50&bbox=-180,-90,180,90" \
  -H "Cookie: PHPSESSID=..."

Get Dataset Properties

Endpoint: GET /api/datasets/get_properties.php

Get all unique property keys from a dataset.

Parameters

  • id (required): Dataset ID

Response

{
  "success": true,
  "data": ["property1", "property2", "property3"]
}

Get Property Values

Endpoint: GET /api/datasets/get_property_values.php

Get unique values for a specific property.

Parameters

  • id (required): Dataset ID
  • property (required): Property name

Response

{
  "success": true,
  "data": ["value1", "value2", "value3"]
}

Dataset Filters

Endpoint: GET /api/datasets/filters.php

Get saved filters for a dataset.

Parameters

  • id (required): Dataset ID

Response

{
  "success": true,
  "data": {
    "filters": [
      {
        "id": 1,
        "name": "Filter Name",
        "conditions": { ... }
      }
    ]
  }
}

Save Dataset Filters

Endpoint: POST /api/datasets/save_filters.php

Save filter configuration for a dataset.

Request Body

{
  "id": 123,
  "filters": [
    {
      "name": "Filter Name",
      "conditions": {
        "property": "value",
        "operator": "equals"
      }
    }
  ]
}

Response

{
  "success": true,
  "message": "Filters saved successfully"
}

Dataset Legend

Endpoint: GET /api/datasets/legend.php

Get legend configuration for a dataset.

Parameters

  • id (required): Dataset ID

Response

{
  "success": true,
  "data": {
    "type": "graduated",
    "property": "value",
    "stops": [
      { "value": 0, "color": "#0000ff" },
      { "value": 100, "color": "#ff0000" }
    ]
  }
}

Save Dataset Legend

Endpoint: POST /api/datasets/save_legend.php

Save legend configuration for a dataset.

Request Body

{
  "id": 123,
  "legend": {
    "type": "graduated",
    "property": "value",
    "stops": [ ... ]
  }
}

Response

{
  "success": true,
  "message": "Legend saved successfully"
}

Update Dataset Name

Endpoint: POST /api/update_dataset_name.php

Update the display name of a dataset.

Request Body

{
  "id": 123,
  "name": "New Dataset Name"
}

Response

{
  "success": true,
  "message": "Dataset name updated"
}

Background Jobs

Dataset operations that may take time (imports, analysis) are processed as background jobs. See Jobs API for job management.