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 IDproperty(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.
PostGIS
Mobile
QGIS
MapBender
GeoServer
GeoNode
GeoNetwork
Novella
Solutions