## Query features by spatial predicate, bounding box, or H3 cell `$client->elements->queryPost(?string bbox, ?string contains, ?string crosses, ?string cursor, ?string format, ?string h3, ?string intersects, ?int limit, ?string near, ?float outputBuffer, ?bool outputCentroid, ?string outputFields, ?bool outputGeometry, ?string outputInclude, ?int outputPrecision, ?float outputSimplify, ?string outputSort, ?float radius, ?string touches, ?string type, ?string within): FeatureCollection` **post** `/api/v1/features` Query features by spatial predicate, bounding box, or H3 cell ### Parameters - `bbox?:optional string` Legacy shorthand. Bounding box: south,west,north,east. Use spatial predicates (near, within, intersects) instead. - `contains?:optional string` Geometry that features must contain - `crosses?:optional string` Geometry that features must cross - `cursor?:optional string` Cursor for pagination - `format?:optional string` Response format. json (default) returns paginated GeoJSON. geojson/csv/ndjson stream via chunked transfer encoding. - `h3?:optional string` Legacy shorthand. H3 cell index. Use spatial predicates instead. - `intersects?:optional string` Geometry that features must intersect - `limit?:optional int` Maximum results (default 100, max 10000) - `near?:optional string` Point geometry for proximity search (lat,lng). Requires radius. - `outputBuffer?:optional float` Buffer geometry by meters - `outputCentroid?:optional bool` Replace geometry with centroid - `outputFields?:optional string` Comma-separated property fields to include - `outputGeometry?:optional bool` Include geometry (default true) - `outputInclude?:optional string` Extra computed fields: bbox, distance, center - `outputPrecision?:optional int` Coordinate decimal precision (1-15, default 7) - `outputSimplify?:optional float` Simplify geometry tolerance in meters - `outputSort?:optional string` Sort by: distance, name, osm_id - `radius?:optional float` Search radius in meters (for near) or buffer distance (for other predicates) - `touches?:optional string` Geometry that features must touch - `type?:optional string` Element types (comma-separated: node,way,relation) - `within?:optional string` Geometry that features must be within ### Returns - `FeatureCollection` - `list features` Array of GeoJSON Feature objects - `Type type` Always `FeatureCollection` ### Example ```php elements->queryPost( bbox: 'bbox', contains: 'contains', crosses: 'crosses', cursor: 'cursor', format: 'format', h3: 'h3', intersects: 'intersects', limit: 0, near: 'near', outputBuffer: 0, outputCentroid: true, outputFields: 'output[fields]', outputGeometry: true, outputInclude: 'output[include]', outputPrecision: 0, outputSimplify: 0, outputSort: 'output[sort]', radius: 0, touches: 'touches', type: 'type', within: 'within', ); var_dump($featureCollection); ``` #### Response ```json { "features": [ { "geometry": { "coordinates": [ 2.3522, 48.8566 ], "type": "Point" }, "properties": { "@id": "bar", "@type": "bar", "amenity": "bar", "cuisine": "bar", "name": "bar" }, "type": "Feature", "id": "node/21154906" } ], "type": "FeatureCollection" } ```